Openbravo Issue Tracking System - Modules
View Issue Details
0058307ModulesExternal Data Integrationpublic2025-03-21 10:112025-03-24 10:20
alostale 
caristu 
highmajorhave not tried
closedfixed 
5
 
 
approved
Gold
0058307: 24Q4 backport - NonUniqueObjectException thrown in EDL non blocking processes under some circumstances
When executing non blocking EDL processes, there is a random failure that may happen at the beginning of the "non blocking" execution:

2025-03-19 15:23:53,653 [NonBlocking - 0] ERROR org.openbravo.externaldata.integration.process.ProcessRequest - Unhandled exception processing request line
org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [OBEDL_Process#17B50CF4701240868D03BDF047F9B1F3]
    at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:700) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
1) Apply the provided patch which forces an scenario to reproduce the error by not cleaning the SessionHandler in the non-blocking thread
2) Trigger a Push API event
3) Trigger again another Push API event, the error will be thrown
No tags attached.
blocks defect 0058301 closed caristu NonUniqueObjectException thrown in EDL non blocking processes under some circumstances 
Issue History
2025-03-21 10:11alostaleNew Issue
2025-03-21 10:11alostaleAssigned To => caristu
2025-03-21 10:11alostaleOBNetwork customer => Gold
2025-03-21 10:11alostaleIssue generated from0058301
2025-03-21 10:11alostaleRelationship addedblocks 0058301
2025-03-24 08:40hgbotMerge Request Status => open
2025-03-24 08:40hgbotNote Added: 0177153
2025-03-24 10:20hgbotMerge Request Statusopen => approved
2025-03-24 10:20hgbotResolutionopen => fixed
2025-03-24 10:20hgbotStatusnew => closed
2025-03-24 10:20hgbotNote Added: 0177163
2025-03-24 10:20hgbotNote Added: 0177164

Notes
(0177153)
hgbot   
2025-03-24 08:40   
Merge Request created: https://gitlab.com/orisha-group/bu-commerce/openbravo/product/pmods/org.openbravo.externaldata.integration/-/merge_requests/51 [^]
(0177163)
hgbot   
2025-03-24 10:20   
Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/orisha-group/bu-commerce/openbravo/product/pmods/org.openbravo.externaldata.integration [^]
Changeset: 2e8491f2628d46f2ce6760a017db4afd6d082b80
Author: Carlos Aristu <c.aristu@orisha.com>
Date: 24-03-2025 08:43:46
URL: https://gitlab.com/orisha-group/bu-commerce/openbravo/product/pmods/org.openbravo.externaldata.integration/-/commit/2e8491f2628d46f2ce6760a017db4afd6d082b80 [^]

fixes ISSUE-58307: SessionHandler is leaked in non-blocking threads

  A NonUniqueObjectException exception was being thrown sometimes when
the line and its linked objects are re-attached into the session of the
non-blocking thread in the nonBlockingEDLCompleted method.

  Although we have not been able to find a real scenario to force the
problem yet, this error indicates that non-blocking threads may be
leaking the SessionHandler thread local.

  So, to try to avoid this problem, now when we start the execution of
the non blocking part we close the SessionHandler to ensure that we
continue with a fresh new session, instead of using a leaked one.

---
M src-test/org/openbravo/externaldata/integration/process/AsynchronousProcessorTest.java
M src/org/openbravo/externaldata/integration/process/AsynchronousProcessor.java
M src/org/openbravo/externaldata/integration/process/ItemProcessor.java
M src/org/openbravo/externaldata/integration/process/ProcessRequest.java
---
(0177164)
hgbot   
2025-03-24 10:20   
Merge request merged: https://gitlab.com/orisha-group/bu-commerce/openbravo/product/pmods/org.openbravo.externaldata.integration/-/merge_requests/51 [^]