Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0040017Openbravo ERPA. Platformpublic2019-01-23 12:362019-01-25 12:30
caristu 
caristu 
highminorhave not tried
closedfixed 
5
 
3.0PR18Q3.53.0PR18Q3.5 
alostale
Core
No
0040017: Concurrency problems in MyOpenbravoActionHandler
The MyOpenbravoActionHandler execution can fail if it is accessed by several threads at the same time.

This is caused by [1]. As part of the changes done to decrease the time spent to load the widgets after login, the definition of the WidgetProviders is cached[2]. This kind of classes has a private field named widgetClass (a DAL object) which can cause exceptions when accessing to some of its properties in a concurrent way (See error.txt attached).

[1] https://code.openbravo.com/erp/devel/pi/rev/2a1a09ee6e6852cb977efa1a987e27d2811e9127 [^]
[2] https://code.openbravo.com/erp/devel/pi/rev/2a1a09ee6e6852cb977efa1a987e27d2811e9127#l1.178 [^]
1) Start Tomcat
2) Run the attached MyOpenbravoActionHandlerConcurrencyTest.test that performs several requests to MyOpenbravoActionHandler in parallel
3) The test fails because not all the requests are executed successfully
No tags attached.
blocks defect 0040009 closed caristu Concurrency problems in MyOpenbravoActionHandler 
Issue History
2019-01-23 17:33caristuTypedefect => backport
2019-01-23 17:33caristuTarget Version => 3.0PR18Q3.5
2019-01-24 11:24hgbotCheckin
2019-01-24 11:24hgbotNote Added: 0109153
2019-01-24 11:24hgbotCheckin
2019-01-24 11:24hgbotNote Added: 0109154
2019-01-24 11:24hgbotStatusscheduled => resolved
2019-01-24 11:24hgbotResolutionopen => fixed
2019-01-24 11:24hgbotFixed in SCM revision => http://code.openbravo.com/erp/backports/3.0PR18Q3.5/rev/042161b9b6e66cdc38d37aa2dac9d9440ee0775a [^]
2019-01-25 08:15caristuReview Assigned To => alostale
2019-01-25 12:30alostaleNote Added: 0109251
2019-01-25 12:30alostaleStatusresolved => closed
2019-01-25 12:30alostaleFixed in Version => 3.0PR18Q3.5

Notes
(0109153)
hgbot   
2019-01-24 11:24   
Repository: erp/backports/3.0PR18Q3.5
Changeset: f869a80044fec8ce9a4f8a7baa86754905c2c89f
Author: Carlos Aristu <carlos.aristu <at> openbravo.com>
Date: Thu Jan 24 11:23:40 2019 +0100
URL: http://code.openbravo.com/erp/backports/3.0PR18Q3.5/rev/f869a80044fec8ce9a4f8a7baa86754905c2c89f [^]

related to issue 40017: apply new Java formatting

---
M modules/org.openbravo.client.myob/src/org/openbravo/client/myob/WidgetProvider.java
---
(0109154)
hgbot   
2019-01-24 11:24   
Repository: erp/backports/3.0PR18Q3.5
Changeset: 042161b9b6e66cdc38d37aa2dac9d9440ee0775a
Author: Carlos Aristu <carlos.aristu <at> openbravo.com>
Date: Thu Jan 24 11:10:47 2019 +0100
URL: http://code.openbravo.com/erp/backports/3.0PR18Q3.5/rev/042161b9b6e66cdc38d37aa2dac9d9440ee0775a [^]

fixes issue 40017: Concurrency problems in MyOpenbravoActionHandler

As part of the changes done to decrease the time spent to load the widgets after login, the WidgetProviders are cached[1]. This kind of classes had a private field named widgetClass (a DAL object) which could cause errors when accessing to some of its properties in a concurrent way.

To fix this issue we are now keeping in cache the properties of the WidgetClass instead of keeping the reference to the DAL object.

[1] https://code.openbravo.com/erp/devel/pi/rev/2a1a09ee6e6852cb977efa1a987e27d2811e9127#l1.178 [^]

---
M modules/org.openbravo.client.myob/src/org/openbravo/client/myob/WidgetProvider.java
---
(0109251)
alostale   
2019-01-25 12:30   
reviewed + tested