Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0033156Openbravo ERPA. Platformpublic2016-06-06 14:082016-06-06 14:17
shuehner 
platform 
normalminorhave not tried
closedduplicate 
5
 
 
Core
No
0033156: Preferences.getPreferenceValue triggers not needed ad_client (+ probably ad_org loads)
the isHigherPriority function of the Preferences.java class access both getVisibleAtClient + getVisibleAtOrganization only to access its id.

That should be done via DalUtil.getId to avoid initializing the ad_client + ad_org objects.

Example stacktrace + sql for the ad_client case:

233240 [Import Entry - 1] INFO org.openbravo.base.PoolInterceptor - executeQuery --- SQL:
select adclient0_.AD_Client_ID as AD1_30_0_, adclient0_.AD_Org_ID as AD2_30_0_, adclient0_.IsActive as IsActive30_0_, adclient0_.Created as Created30_0_, adclient0_.CreatedBy as CreatedBy30_0_, adclient0_.Updated as Updated30_0_, adclient0_.UpdatedBy as UpdatedBy30_0_, adclient0_.Value as Value30_0_, adclient0_.Name as Name30_0_, adclient0_.Description as Descrip10_30_0_, adclient0_.SMTPHost as SMTPHost30_0_, adclient0_.RequestEMail as Request12_30_0_, adclient0_.RequestUser as Request13_30_0_, adclient0_.RequestUserPW as Request14_30_0_, adclient0_.RequestFolder as Request15_30_0_, adclient0_.AD_Language as AD16_30_0_, adclient0_.IsMultiLingualDocument as IsMulti17_30_0_, adclient0_.IsSmtpAuthorization as IsSmtpA18_30_0_, adclient0_.C_Currency_ID as C19_30_0_, adclient0_.Acctdim_Centrally_Maintained as Acctdim20_30_0_, adclient0_.Project_Acctdim_Isenable as Project21_30_0_, adclient0_.Project_Acctdim_Header as Project22_30_0_, adclient0_.Project_Acctdim_Lines as Project23_30_0_, adclient0_.Project_Acctdim_Breakdown as Project24_30_0_, adclient0_.Bpartner_Acctdim_Isenable as Bpartner25_30_0_, adclient0_.Bpartner_Acctdim_Header as Bpartner26_30_0_, adclient0_.Bpartner_Acctdim_Lines as Bpartner27_30_0_, adclient0_.Bpartner_Acctdim_Breakdown as Bpartner28_30_0_, adclient0_.Product_Acctdim_Isenable as Product29_30_0_, adclient0_.Product_Acctdim_Header as Product30_30_0_, adclient0_.Product_Acctdim_Lines as Product31_30_0_, adclient0_.Product_Acctdim_Breakdown as Product32_30_0_, adclient0_.Costcenter_Acctdim_Header as Costcenter33_30_0_, adclient0_.Costcenter_Acctdim_Lines as Costcenter34_30_0_, adclient0_.Costcenter_Acctdim_Breakdown as Costcenter35_30_0_, adclient0_.User1_Acctdim_Isenable as User36_30_0_, adclient0_.User1_Acctdim_Header as User37_30_0_, adclient0_.User1_Acctdim_Lines as User38_30_0_, adclient0_.User1_Acctdim_Breakdown as User39_30_0_, adclient0_.User2_Acctdim_Isenable as User40_30_0_, adclient0_.User2_Acctdim_Header as User41_30_0_, adclient0_.User2_Acctdim_Lines as User42_30_0_, adclient0_.User2_Acctdim_Breakdown as User43_30_0_, adclient0_.Costcenter_Acctdim_Isenable as Costcenter44_30_0_, adclient0_.Org_Acctdim_Isenable as Org45_30_0_, adclient0_.Org_Acctdim_Header as Org46_30_0_, adclient0_.Org_Acctdim_Lines as Org47_30_0_, adclient0_.Org_Acctdim_Breakdown as Org48_30_0_, adclient0_.EM_Obmobc_Auth_Key as EM49_30_0_ from AD_Client adclient0_ where adclient0_.AD_Client_ID in (?, ?)
  t:12
     $1: B8D74EB90D8A422F900F442C2D721C2E
     $2: 0
java.lang.Exception
    at org.openbravo.base.PoolInterceptor$PSInvokationHandler.invoke(PoolInterceptor.java:99)
    at com.sun.proxy.$Proxy23.executeQuery(Unknown Source)
    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1953)
    at org.hibernate.loader.Loader.doQuery(Loader.java:802)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    at org.hibernate.loader.Loader.loadEntityBatch(Loader.java:2131)
    at org.hibernate.loader.entity.BatchingEntityLoader.load(BatchingEntityLoader.java:99)
    at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3293)
    at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:496)
    at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:477)
    at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:227)
    at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:147)
    at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1090)
    at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:1026)
    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:176)
    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215)
    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
    at org.openbravo.model.ad.system.Client_$$_javassist_1.getId(Client_$$_javassist_1.java)
    at org.openbravo.erpCommon.businessUtility.Preferences.isHigherPriority(Preferences.java:493)
    at org.openbravo.erpCommon.businessUtility.Preferences.getPreferenceValue(Preferences.java:199)
    at org.openbravo.retail.posterminal.OrderLoader.initializeVariables(OrderLoader.java:174)
    at org.openbravo.retail.posterminal.OrderLoader.saveRecord(OrderLoader.java:218)
-
Performance
duplicate of defect 0032375 closed alostale preferences incorrectly resolve client visibility 
Issue History
2016-06-06 14:08shuehnerNew Issue
2016-06-06 14:08shuehnerAssigned To => platform
2016-06-06 14:08shuehnerModules => Core
2016-06-06 14:08shuehnerTriggers an Emergency Pack => No
2016-06-06 14:09shuehnerNote Added: 0087030
2016-06-06 14:09shuehnerTag Attached: Performance
2016-06-06 14:17shuehnerRelationship addedduplicate of 0032375
2016-06-06 14:17shuehnerNote Added: 0087031
2016-06-06 14:17shuehnerStatusnew => closed
2016-06-06 14:17shuehnerResolutionopen => duplicate

Notes
(0087030)
shuehner   
2016-06-06 14:09   
There seems to be an indirect ad_language load triggered inside DAL by this which probably also goes away with this issue fixed.
233242 [Import Entry - 1] INFO org.openbravo.base.PoolInterceptor - executeQuery --- SQL:
select adlanguage0_.AD_Language_ID as AD1_54_0_, adlanguage0_.AD_Language as AD2_54_0_, adlanguage0_.AD_Client_ID as AD3_54_0_, adlanguage0_.AD_Org_ID as AD4_54_0_, adlanguage0_.IsActive as IsActive54_0_, adlanguage0_.Created as Created54_0_, adlanguage0_.CreatedBy as CreatedBy54_0_, adlanguage0_.Updated as Updated54_0_, adlanguage0_.UpdatedBy as UpdatedBy54_0_, adlanguage0_.Name as Name54_0_, adlanguage0_.LanguageISO as Languag11_54_0_, adlanguage0_.CountryCode as Country12_54_0_, adlanguage0_.IsBaseLanguage as IsBaseL13_54_0_, adlanguage0_.IsSystemLanguage as IsSyste14_54_0_, adlanguage0_.Processing as Processing54_0_, adlanguage0_.Pixelsize as Pixelsize54_0_, adlanguage0_.Translatedby as Transla17_54_0_, adlanguage0_.Isrtl as Isrtl54_0_ from AD_Language adlanguage0_ where adlanguage0_.AD_Language=?
  t:1
     $1: en_US
java.lang.Exception
    at org.openbravo.base.PoolInterceptor$PSInvokationHandler.invoke(PoolInterceptor.java:99)
    at com.sun.proxy.$Proxy23.executeQuery(Unknown Source)
    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1953)
    at org.hibernate.loader.Loader.doQuery(Loader.java:802)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    at org.hibernate.loader.Loader.loadEntity(Loader.java:2037)
    at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:86)
    at org.hibernate.loader.entity.EntityLoader.loadByUniqueKey(EntityLoader.java:159)
    at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:1791)
    at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:681)
    at org.hibernate.type.EntityType.resolve(EntityType.java:441)
    at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:139)
    at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:982)
    at org.hibernate.loader.Loader.doQuery(Loader.java:857)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    at org.hibernate.loader.Loader.loadEntityBatch(Loader.java:2131)
    at org.hibernate.loader.entity.BatchingEntityLoader.load(BatchingEntityLoader.java:99)
    at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3293)
    at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:496)
    at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:477)
    at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:227)
    at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:147)
    at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1090)
    at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:1026)
    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:176)
    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215)
    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
    at org.openbravo.model.ad.system.Client_$$_javassist_1.getId(Client_$$_javassist_1.java)
    at org.openbravo.erpCommon.businessUtility.Preferences.isHigherPriority(Preferences.java:493)
    at org.openbravo.erpCommon.businessUtility.Preferences.getPreferenceValue(Preferences.java:199)
    at org.openbravo.retail.posterminal.OrderLoader.initializeVariables(OrderLoader.java:174)
    at org.openbravo.retail.posterminal.OrderLoader.saveRecord(OrderLoader.java:218)
(0087031)
shuehner   
2016-06-06 14:17   
Bad behavior has been already fixed as part of the fix done in 32375 issue.