Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0045429Openbravo ERPA. Platformpublic2020-11-11 18:212020-11-12 09:44
shuehner 
shuehner 
normalmajorhave not tried
closedfixed 
5
 
PR21Q1 
alostale
Core
No
0045429: Code to detect+warn about Unbalanced adminMode in OBBaseTest should be improved
OBBaseTest class used by as basis for all unit tests has code to detect case that adminMode was not reset after running a testCase and warns in that case.

That code is conceptually similar to code in OBContext.java (method: clearAdminModeStack) called and the end of an http request.

However code in OBBaseTest has two problems:
a.) It is not integrated with existing ADMIN_TRACE_SIZE debugging code from OBContext (which helps to find out root-cause of those issues)
b.) It does not reset/fix the problem.
So after having 1 test-case having the problem it reports the error for every test-case running after it (even if those tests themselves are fine)

Cause and Unbalanced AdminMode problem in one junit test case
Run i.e. ant run.all.tests
Notice that
a.) the problem is not just reported in the test-cause having the issue but all later tests
b.) Activate debugging code in OBContext.java (ADMIN_TRACE_SIZE=100 for example) and notice that the debugging does not work.

Example issue causing this situation is reported here:
https://issues.openbravo.com/view.php?id=45428 [^]
Replace/enhance existing code in OBBaseTest by calling/re-using the existing OBContext code.
No tags attached.
depends on backport 0045430PR20Q4 closed shuehner Openbravo ERP Code to detect+warn about Unbalanced adminMode in OBBaseTest should be improved 
related to defect 0045428 closed Mery Anelo Localization Pack: Spain FacturasEventHandler -> SIIUtils.getLegalOrganization has setAdminMode but never calls restorePreviousMode 
Issue History
2020-11-11 18:21shuehnerNew Issue
2020-11-11 18:21shuehnerAssigned To => platform
2020-11-11 18:21shuehnerModules => Core
2020-11-11 18:21shuehnerTriggers an Emergency Pack => No
2020-11-11 18:27shuehnerRelationship addedrelated to 0045428
2020-11-12 07:32hgbotNote Added: 0124291
2020-11-12 07:40alostaleAssigned Toplatform => shuehner
2020-11-12 07:40alostaleStatusnew => scheduled
2020-11-12 09:43hgbotNote Added: 0124296
2020-11-12 09:43hgbotResolutionopen => fixed
2020-11-12 09:43hgbotStatusscheduled => resolved
2020-11-12 09:43hgbotFixed in Version => PR21Q1
2020-11-12 09:43hgbotNote Added: 0124297
2020-11-12 09:43hgbotNote Added: 0124298
2020-11-12 09:44alostaleReview Assigned To => alostale
2020-11-12 09:44alostaleStatusresolved => closed

Notes
(0124291)
hgbot   
2020-11-12 07:32   
Merge Request created: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/225 [^]
(0124296)
hgbot   
2020-11-12 09:43   
Merge request merged: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/225 [^]
(0124297)
hgbot   
2020-11-12 09:43   
Repository: https://gitlab.com/openbravo/product/openbravo [^]
Changeset: ec48f7cfe1b6f5dfefab7101c3d97393400882ee
Author: Stefan Huehner <stefan.huehner@openbravo.com>
Date: 2020-11-12T08:40:11+00:00
URL: https://gitlab.com/openbravo/product/openbravo/-/commit/ec48f7cfe1b6f5dfefab7101c3d97393400882ee [^]

Fixes ISSUE-45429: Improve unbalanced adminMode warnings in OBBaseTest.

OBBaseTest did already check if a test-case left adminMode enabled
instead of handling it properly.
However that detection was not integration with the existing OBContext
code for doing the same logic at the end of an http-request.

Reuse that existing code allows to reuse the debugging ADMIN_TRACE_SIZE
logic from OBContext also to debug Junit test issues.

---
M src-test/src/org/openbravo/test/base/OBBaseTest.java
M src/org/openbravo/dal/core/OBContext.java
---
(0124298)
hgbot   
2020-11-12 09:43   
Repository: https://gitlab.com/openbravo/product/openbravo [^]
Changeset: 675440a9683d83f9576656aaee0e060bcff51218
Author: Asier Lostalé <asier.lostale@openbravo.com>
Date: 2020-11-12T08:40:11+00:00
URL: https://gitlab.com/openbravo/product/openbravo/-/commit/675440a9683d83f9576656aaee0e060bcff51218 [^]

related to ISSUE-45429: small cleanup in OBContext

This commit changes:
  * Warn message in case of unbalanced admin calls was mentioning
    enableAsAdminContext and resetAsAdminContext which are deprecated.
  * Replace ThreadLocal.set(null) with ThreadLocal.remove(), see [1] for
    reference.

[1] https://www.baeldung.com/java-memory-leaks#7-using-threadlocals [^]

---
M src/org/openbravo/dal/core/OBContext.java
---