Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0040015Openbravo ERPA. Platformpublic2019-01-23 12:362019-01-25 10:53
caristu 
caristu 
highminorhave not tried
closedfixed 
5
 
3.0PR19Q13.0PR19Q1 
alostale
Core
No
0040015: 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.0PR19Q1
2019-01-24 11:03hgbotCheckin
2019-01-24 11:03hgbotNote Added: 0109148
2019-01-24 11:03hgbotCheckin
2019-01-24 11:03hgbotNote Added: 0109149
2019-01-24 11:03hgbotStatusscheduled => resolved
2019-01-24 11:03hgbotResolutionopen => fixed
2019-01-24 11:03hgbotFixed in SCM revision => http://code.openbravo.com/erp/backports/3.0PR19Q1/rev/9cf8c26a4b1750ec5165a70f07671b4001a2d689 [^]
2019-01-24 11:12hgbotCheckin
2019-01-24 11:12hgbotNote Added: 0109150
2019-01-24 11:12caristuNote Deleted: 0109150
2019-01-25 08:15caristuReview Assigned To => alostale
2019-01-25 10:53alostaleNote Added: 0109247
2019-01-25 10:53alostaleStatusresolved => closed
2019-01-25 10:53alostaleFixed in Version => 3.0PR19Q1

Notes
(0109148)
hgbot   
2019-01-24 11:03   
Repository: erp/backports/3.0PR19Q1
Changeset: 4928dadd5d57906a0fe03bc7221caf556f391cab
Author: Carlos Aristu <carlos.aristu <at> openbravo.com>
Date: Thu Jan 24 10:54:34 2019 +0100
URL: http://code.openbravo.com/erp/backports/3.0PR19Q1/rev/4928dadd5d57906a0fe03bc7221caf556f391cab [^]

related to issue 40015: apply new Java formatting

---
M modules/org.openbravo.client.myob/src/org/openbravo/client/myob/WidgetProvider.java
---
(0109149)
hgbot   
2019-01-24 11:03   
Repository: erp/backports/3.0PR19Q1
Changeset: 9cf8c26a4b1750ec5165a70f07671b4001a2d689
Author: Carlos Aristu <carlos.aristu <at> openbravo.com>
Date: Thu Jan 24 10:05:04 2019 +0100
URL: http://code.openbravo.com/erp/backports/3.0PR19Q1/rev/9cf8c26a4b1750ec5165a70f07671b4001a2d689 [^]

fixes issue 40015: 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
---
(0109247)
alostale   
2019-01-25 10:53   
reviewed + tested