Openbravo Issue Tracking System - Openbravo ERP | |||||||||||||||||||||||||||||||||
View Issue Details | |||||||||||||||||||||||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||||||||||||||||||||||
0033138 | Openbravo ERP | A. Platform | public | 2016-06-05 14:54 | 2016-08-26 08:07 | ||||||||||||||||||||||||||||
Reporter | shuehner | ||||||||||||||||||||||||||||||||
Assigned To | alostale | ||||||||||||||||||||||||||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | ||||||||||||||||||||||||||||
Status | closed | Resolution | fixed | ||||||||||||||||||||||||||||||
Platform | OS | 5 | OS Version | ||||||||||||||||||||||||||||||
Product Version | |||||||||||||||||||||||||||||||||
Target Version | Fixed in Version | 3.0PR16Q3 | |||||||||||||||||||||||||||||||
Merge Request Status | |||||||||||||||||||||||||||||||||
Review Assigned To | caristu | ||||||||||||||||||||||||||||||||
OBNetwork customer | |||||||||||||||||||||||||||||||||
Web browser | |||||||||||||||||||||||||||||||||
Modules | Core | ||||||||||||||||||||||||||||||||
Support ticket | |||||||||||||||||||||||||||||||||
Regression level | |||||||||||||||||||||||||||||||||
Regression date | |||||||||||||||||||||||||||||||||
Regression introduced in release | |||||||||||||||||||||||||||||||||
Regression introduced by commit | |||||||||||||||||||||||||||||||||
Triggers an Emergency Pack | No | ||||||||||||||||||||||||||||||||
Summary | 0033138: OBCriteria.initialize() is not protected against multiple calls per instance | ||||||||||||||||||||||||||||||||
Description | OBCriteria has an internal initialize() method which adds the usual client,org,isactive filters. However that initialize() method is not protected against multiple calls per instance. So calling it more than once adds those filters also multiple times. Several are at least 2 sequences triggering this a.) call .count() + .uniqueResult() manually from application as seen i.e. in WebPOS OrderLoader: final OBCriteria<Locator> locators = OBDal.getInstance().createCriteria(Locator.class); locators.add(Restrictions.eq(Locator.PROPERTY_ACTIVE, true)); locators.add(Restrictions.eq(Locator.PROPERTY_WAREHOUSE, shipment.getWarehouse())); // note the count causes a query but the good thing is that it doesn't cause loading // additional bin locations if there are too many if (locators.count() == 1) { foundSingleBin = (Locator) locators.uniqueResult(); b.) But also .count() implementation itself calls initialize() and then uniqueResult() (calling it again). | ||||||||||||||||||||||||||||||||
Steps To Reproduce | Trace all SQL's done by OrderLoader starting at part in createShipmentLines if (locators.count() == 1) { foundSingleBin = (Locator) locators.uniqueResult(); That SQL run by the .count() already has 3 blocks of the client+org filters happening (2 copies by this bug) + additional one reported as issue 33132. Then the next SQL run by the manual uniqueResult added 2 more copies of the filters. (one by itself and maybe 2nd one because of that same 33132). | ||||||||||||||||||||||||||||||||
Proposed Solution | Add isInitialized boolean or similar to OBCriteria.initialize() | ||||||||||||||||||||||||||||||||
Additional Information | |||||||||||||||||||||||||||||||||
Tags | Performance | ||||||||||||||||||||||||||||||||
Relationships |
| ||||||||||||||||||||||||||||||||
Attached Files | |||||||||||||||||||||||||||||||||
Issue History | |||||||||||||||||||||||||||||||||
Date Modified | Username | Field | Change | ||||||||||||||||||||||||||||||
2016-06-05 14:54 | shuehner | New Issue | |||||||||||||||||||||||||||||||
2016-06-05 14:54 | shuehner | Assigned To | => platform | ||||||||||||||||||||||||||||||
2016-06-05 14:54 | shuehner | Modules | => Core | ||||||||||||||||||||||||||||||
2016-06-05 14:54 | shuehner | Triggers an Emergency Pack | => No | ||||||||||||||||||||||||||||||
2016-06-05 14:54 | shuehner | Relationship added | related to 0033132 | ||||||||||||||||||||||||||||||
2016-06-05 15:14 | shuehner | Tag Attached: page data grid | |||||||||||||||||||||||||||||||
2016-06-05 15:14 | shuehner | Tag Attached: Performance | |||||||||||||||||||||||||||||||
2016-06-05 15:14 | shuehner | Tag Detached: page data grid | |||||||||||||||||||||||||||||||
2016-06-06 15:13 | shuehner | Note Added: 0087034 | |||||||||||||||||||||||||||||||
2016-06-08 13:33 | shuehner | Relationship replaced | has duplicate 0033132 | ||||||||||||||||||||||||||||||
2016-06-10 09:54 | alostale | Assigned To | platform => alostale | ||||||||||||||||||||||||||||||
2016-06-10 09:54 | alostale | Review Assigned To | => caristu | ||||||||||||||||||||||||||||||
2016-06-10 09:59 | hgbot | Checkin | |||||||||||||||||||||||||||||||
2016-06-10 09:59 | hgbot | Note Added: 0087147 | |||||||||||||||||||||||||||||||
2016-06-10 09:59 | hgbot | Status | new => resolved | ||||||||||||||||||||||||||||||
2016-06-10 09:59 | hgbot | Resolution | open => fixed | ||||||||||||||||||||||||||||||
2016-06-10 09:59 | hgbot | Fixed in SCM revision | => http://code.openbravo.com/erp/devel/pi/rev/ec3e4492a91c88e84d09e34b9e3e487f13ad3cb8 [^] | ||||||||||||||||||||||||||||||
2016-06-17 09:26 | caristu | Note Added: 0087380 | |||||||||||||||||||||||||||||||
2016-06-17 09:26 | caristu | Status | resolved => closed | ||||||||||||||||||||||||||||||
2016-06-17 09:26 | caristu | Fixed in Version | => 3.0PR16Q3 | ||||||||||||||||||||||||||||||
2016-06-17 19:38 | hudsonbot | Checkin | |||||||||||||||||||||||||||||||
2016-06-17 19:38 | hudsonbot | Note Added: 0087601 | |||||||||||||||||||||||||||||||
2016-08-25 13:10 | caristu | Relationship added | causes 0033797 | ||||||||||||||||||||||||||||||
2016-08-25 15:56 | shuehner | Relationship added | causes 0033814 | ||||||||||||||||||||||||||||||
2016-08-25 16:18 | caristu | Issue cloned | 0033816 | ||||||||||||||||||||||||||||||
2016-08-25 17:24 | shuehner | Issue Monitored: shuehner | |||||||||||||||||||||||||||||||
2016-08-26 08:07 | caristu | Relationship added | related to 0033816 |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|