davsclaus opened a new pull request, #24733: URL: https://github.com/apache/camel/pull/24733
## Summary _Claude Code on behalf of davsclaus_ - Fix `transferException=true` silently swallowing processing failures (and committing the transaction) when the incoming JMS message has no `JMSReplyTo` header - The `transferException` feature was designed for request-reply (InOut) only — it suppresses the exception to transfer it as a reply body. When no reply destination exists, the exception must flow through normally so the transaction rolls back and the message is redelivered - Applied the same fix to both `camel-jms` and `camel-sjms` ## What changed **camel-jms** `EndpointMessageListener.evaluateExchangeResult()`: changed condition from `!endpoint.isTransferException()` to `!(endpoint.isTransferException() && sendReply)` — only suppress the exception when a reply will actually be sent. **camel-sjms** `EndpointMessageListener.done()`: added `&& sendReply` to the `endpoint.isTransferException()` guard — same logical fix in the pre-refactoring code style. ## Test plan - [x] New `JmsTransferExceptionNoReplyToIT` — sends a fire-and-forget message (InOnly, no JMSReplyTo) to a transacted queue with `transferException=true`; verifies the processor is invoked more than once (redelivery) and the message reaches the dead letter channel - [x] Existing `JmsTransferExceptionIT` — verifies InOut request-reply with `transferException=true` still works (exception transferred as reply body) - [x] Full camel-jms test suite (81 tests pass) - [x] camel-sjms compiles successfully 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.6 <[email protected]> -- 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]
