allthingssecurity commented on PR #26793:
URL: https://github.com/apache/camel/pull/26793#issuecomment-5817867959

   @apupier thanks for the reminder. It was not done yet, it is now: I rebased 
on main (with #26794) and added a second commit.
   
   Without it, the combination fails exactly as @oscerd described: after the 
rebase, `SedaProducerInterruptedTest.testInterruptedWhileWaitingForReply` from 
#26794 fails with `expected: <request> but was: <reply>`, because the late 
reply wins the `completed` claim and is copied over the `InterruptedException`.
   
   The interrupted wait (no timeout) now claims the exchange with the same 
`completed.compareAndSet(false, true)` as the timeout:
   - if it wins, the exchange fails with the `InterruptedException`, the copy 
is removed from the queue, and a later reply is ignored;
   - if the reply is already being copied, it waits for the copy to complete 
(`awaitUninterruptibly`) and returns the reply, so the exchange is not changed 
after the producer returned.
   
   The interrupt status is kept in both cases. New 
`SedaTimeoutLateReplyTest.testReplyBeingCopiedWhenInterrupted` covers the 
second case, and fails without the commit. `*Seda*` in camel-core: 145 tests, 0 
failures.
   
   _Claude Code on behalf of allthingssecurity_
   


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