Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0033812Openbravo ERPA. Platformpublic2016-08-24 11:412016-08-29 15:13
shuehner 
aferraz 
normalminorhave not tried
closedfixed 
5
 
3.0PR16Q2.33.0PR16Q2.3 
caristu
Core
No
0033812: Accidental double query in PriceListVersionFilterExpressionName (order lines, product selector dropdown)
That class has double query m_pricelist_version and also is missing a limit 1 so could lead to high mem usage.

Note: Code seems to be very similar or identical to the change reported in issue 33705
with debugging code from https://issues.openbravo.com/view.php?id=33767 [^]

Open Sales Order
create new header
In lines tab
Create new record in grid view
Click on product selector drop down and see debugging code fire
No tags attached.
blocks defect 0033790 closed shuehner Accidental double query in PriceListVersionFilterExpressionName (order lines, product selector dropdown) 
Issue History
2016-08-25 14:25aferrazTypedefect => backport
2016-08-25 14:25aferrazTarget Version => 3.0PR16Q2.3
2016-08-29 13:09aferrazAssigned Toshuehner => aferraz
2016-08-29 14:20hgbotCheckin
2016-08-29 14:20hgbotNote Added: 0089498
2016-08-29 14:20hgbotStatusscheduled => resolved
2016-08-29 14:20hgbotResolutionopen => fixed
2016-08-29 14:20hgbotFixed in SCM revisionhttp://code.openbravo.com/erp/devel/pi/rev/c35e5b050f0baa6289ac1cb8c4b17fac389591c3 [^] => http://code.openbravo.com/erp/backports/3.0PR16Q2.3/rev/f4d5cad9480cbfca055032ab1f86d7ff4e7e310f [^]
2016-08-29 15:13caristuNote Added: 0089506
2016-08-29 15:13caristuStatusresolved => closed
2016-08-29 15:13caristuFixed in Version => 3.0PR16Q2.3

Notes
(0089498)
hgbot   
2016-08-29 14:20   
Repository: erp/backports/3.0PR16Q2.3
Changeset: f4d5cad9480cbfca055032ab1f86d7ff4e7e310f
Author: Alvaro Ferraz <alvaro.ferraz <at> openbravo.com>
Date: Thu Aug 25 15:16:24 2016 +0200
URL: http://code.openbravo.com/erp/backports/3.0PR16Q2.3/rev/f4d5cad9480cbfca055032ab1f86d7ff4e7e310f [^]

Fixed 33812. Avoid double query with .count() + .list(). Add limit 1 to query

Query did .count() + then retrieve 1 record after adding extra order by.

This change removes the count as it only adds extra overhead and directly
does the real .list() query.
As the code only uses single row of result add extra limit 1 to reduce
number of result rows loaded into memory if many match the filter.
Simply code to use .uniqueResult() instead of .list().get(0)

---
M src/org/openbravo/erpCommon/info/PriceListVersionFilterExpressionName.java
---
(0089506)
caristu   
2016-08-29 15:13   
Code reviewed