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

   When a route marks the exchange rollback only (`markRollbackOnly()`, 
`markRollbackOnlyLast()`), there is no exception on the exchange, and these 
consumers treated it as a success:
   
   - **camel-jpa**: the consumer deleted the entity (or called `@Consumed`) and 
committed the poll. Now the entity is not consumed. With `transacted=true` a 
`RollbackExchangeException` rolls back the whole poll, as a failed exchange 
does. With `transacted=false` the entity is skipped quietly (DEBUG log, no WARN 
for a deliberate rollback) and the rest of the batch is still consumed; the 
next poll consumes it again.
   - **camel-hazelcast** (seda, `transacted=true`): the transaction was 
committed, so the message was removed from the queue. Now the transaction is 
rolled back.
   
   Same semantics as CAMEL-25511 (camel-jooq) and CAMEL-25527 (camel-mybatis / 
camel-sql, #27677).
   
   Tests: `JpaConsumerRollbackOnlyTest` (non-transacted, transacted, 
`@Consumed`; embedded Derby, `poll()` called directly) and 
`HazelcastSedaTransactedRollbackOnlyTest` (mocked transaction context); all 
fail without the fix. Docs: jpa component doc + 4.23 upgrade guide.
   
   Fixes [CAMEL-25550](https://issues.apache.org/jira/browse/CAMEL-25550)
   
   _Claude Code on behalf of davsclaus_
   
   🤖 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