oscerd opened a new issue, #9056:
URL: https://github.com/apache/camel-quarkus/issues/9056

   `extensions/jta/.../TransactionalJtaTransactionPolicy.java`
   
   Two sites swallow failures in the shared policy base class used by all six 
`PROPAGATION_*` beans registered by `JtaProcessor`.
   
   **`rollback(boolean isNew)`, lines 72-82**
   
   ```java
   try {
       if (isNew) {
           transactionManager.rollback();
       } else {
           transactionManager.setRollbackOnly();
       }
   } catch (Throwable e) {
       LOG.warn("Could not rollback transaction!", e);
   }
   ```
   
   In the participating case (`isNew=false`, i.e. 
`PROPAGATION_REQUIRED`/`MANDATORY` joining an existing transaction) a failed 
`setRollbackOnly()` is logged and discarded, so the outer transaction continues 
as though it had been marked for rollback.
   
   **`resumeTransaction(...)`, lines 88-98**
   
   Same pattern — a failed `transactionManager.resume(...)` is logged and 
discarded, leaving subsequent work running outside the transaction the caller 
believes was resumed.
   
   **Suggested fix**
   
   Rethrow (or wrap and rethrow) in both places so a failed rollback, 
rollback-marking, or resume does not allow subsequent work to proceed as if 
transactional integrity were intact.
   


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