Openbravo Issue Tracking System - Retail Modules
View Issue Details
0037304Retail ModulesWeb POSpublic2017-11-16 07:392017-12-22 13:52
guillermogil 
marvintm 
immediatemajorsometimes
closedfixed 
5
 
RR17Q4RR17Q4 
migueldejuana
Production - Confirmed Stable
2016-01-05
RR16Q2
https://code.openbravo.com/erp/pmods/org.openbravo.mobile.core/rev/727a4f04e3e023624bbdc36cdb682e95304129ad [^]
No
0037304: Java Heap Memory can rise on login if batch size is big
Java Heap Memory can rise on login if batch size is big and you have a big batch size and an small xmx.
With a lot of products, big batch size (> 60000) and an small xmx in CATALINA_OPTS (1GB)
Try to login in WebPOS
You will have a Java heap memory.
No tags attached.
blocks defect 0037301 closed marvintm Java Heap Memory can rise on login if batch size is big 
Issue History
2017-11-16 10:27marvintmTypedesign defect => backport
2017-11-16 10:27marvintmTarget Version => RR17Q4
2017-12-19 18:40marvintmAssigned ToRetail => marvintm
2017-12-19 18:49hgbotCheckin
2017-12-19 18:49hgbotNote Added: 0101148
2017-12-19 18:49hgbotStatusscheduled => resolved
2017-12-19 18:49hgbotResolutionopen => fixed
2017-12-19 18:49hgbotFixed in SCM revision => http://code.openbravo.com/retail/backports/3.0RR17Q4/org.openbravo.mobile.core/rev/7f1679d434938af59b75e26c1197476aef624cab [^]
2017-12-22 13:52migueldejuanaReview Assigned To => migueldejuana
2017-12-22 13:52migueldejuanaNote Added: 0101239
2017-12-22 13:52migueldejuanaStatusresolved => closed
2017-12-22 13:52migueldejuanaFixed in Version => RR17Q4

Notes
(0101148)
hgbot   
2017-12-19 18:49   
Repository: retail/backports/3.0RR17Q4/org.openbravo.mobile.core
Changeset: 7f1679d434938af59b75e26c1197476aef624cab
Author: Antonio Moreno <antonio.moreno <at> openbravo.com>
Date: Tue Dec 19 18:49:11 2017 +0100
URL: http://code.openbravo.com/retail/backports/3.0RR17Q4/org.openbravo.mobile.core/rev/7f1679d434938af59b75e26c1197476aef624cab [^]

Fixed issue 37304. Avoid usage of intermediate StringWriters so that response doesn't take too much heap.
The main problem is that the two intermediate StringWriters accumulate the whole response before it is sent back to the client. This causes Java Heap memory problems in case the batching is set to a big amount, and concurrency is high.
The solution is to remove these intermediate StringWriters. We have verified that the messages are not lost even in the case of low level database problems, because the client correctly detects the problem, and doesn't remove the records, and instead tries to send them again in the next synchronization.

---
M src/org/openbravo/mobile/core/process/MobileService.java
M src/org/openbravo/mobile/core/process/MobileServiceProcessor.java
---
(0101239)
migueldejuana   
2017-12-22 13:52   
Reviewed