Claus Ibsen created CAMEL-25588:
-----------------------------------

             Summary: camel-sql, camel-mybatis, camel-jooq - an exchange marked 
rollback only last is not consumed either
                 Key: CAMEL-25588
                 URL: https://issues.apache.org/jira/browse/CAMEL-25588
             Project: Camel
          Issue Type: Bug
          Components: camel-jooq, camel-mybatis, camel-sql
            Reporter: Claus Ibsen
             Fix For: 4.24.0


CAMEL-25550 makes the JPA and Hazelcast SEDA consumers leave a message 
unconsumed when the route marks the exchange rollback only, with 
{{markRollbackOnly()}} or {{markRollbackOnlyLast()}}. The earlier fixes for the 
SQL, MyBatis and jOOQ consumers check only {{isRollbackOnly()}} 
({{SqlConsumer}}, {{MyBatisConsumer}}, {{JooqConsumer}}), so an exchange marked 
with {{markRollbackOnlyLast()}} is still treated as a success there and the row 
is consumed.

{{markRollbackOnlyLast()}} reaches the consumer only when no {{transacted()}} 
EIP has consumed the flag ({{TransactionErrorHandler}} clears it), and then the 
consumer's own transaction is the last one, so it should be rolled back as well.

Found in the review of https://github.com/apache/camel/pull/27681



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to