Croway opened a new pull request, #26553:
URL: https://github.com/apache/camel/pull/26553

   Fixes [CAMEL-24800](https://issues.apache.org/jira/browse/CAMEL-24800).
   
   With exchange pooling enabled, `DefaultPooledExchange(Exchange parent)` 
reused the parent's `ResetableClock` instance. Splitter children are pooled 
copies of the Splitter's working copy, so parent and child shared one clock. 
When the working copy was released first, its `done()` unset the created time, 
and the child's `done()` then skipped the reset entirely (guarded by `created > 
0`). The dirty child was offered back to the pool, so exchange properties and 
exchange-scoped variables set by one message's split children showed up in the 
next message's split children.
   
   Fix: every pooled copy gets its own `ResetableClock`. No behaviour change 
outside pooled mode.
   
   Test: `PooledExchangeSplitLeakTest` reproduces the leak (fails on main, 
passes with the fix); existing `PooledExchange*` and Splitter tests pass.
   
   Present since 4.4 (CAMEL-20225), so a backport to the LTS branches is worth 
considering once merged.
   
   _Claude Code on behalf of Croway_
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to