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

   ## Summary
   
   _Claude Code on behalf of gnodet_
   
   Fix flaky `JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionIT` and 
`JmsTransactedDeadLetterChannelNotHandlerRollbackOnExceptionIT` integration 
tests.
   
   **Develocity data** (last 10 days on CI):
   - `HandlerRollbackOnExceptionIT`: 41 failures + 5 flaky out of 517 runs 
(**8.9% failure rate**)
   - `NotHandlerRollbackOnExceptionIT`: 11 failures + 14 flaky
   
   **Root cause**: Both tests check the DLQ contents immediately after 
`template.sendBody()`, without waiting for the transacted route to fully 
process the exchange and commit/rollback the transaction. Under CI load, the 
route processing may not complete before the DLQ assertion runs, causing the 
test to see the message in the DLQ when the transaction hasn't committed yet 
(Handler test), or not see it when the rollback hasn't completed yet 
(NotHandler test).
   
   **Fix**: Use `NotifyBuilder.whenDone(1)` to wait until the exchange is fully 
processed (including transaction commit/rollback) before checking the DLQ 
contents. This eliminates the race condition between the asynchronous route 
processing and the test assertion. The `receiveBody` timeout is also adjusted 
since `NotifyBuilder` already ensures the exchange is done.
   
   ## Test plan
   - [x] `JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionIT` passes 
locally
   - [x] `JmsTransactedDeadLetterChannelNotHandlerRollbackOnExceptionIT` passes 
locally
   - [ ] CI build passes
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
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