[ https://issues.apache.org/jira/browse/ARIES-1497?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian Schneider reassigned ARIES-1497: ------------------------------------------ Assignee: Christian Schneider > jpa-support XAJpaTemplate does not properly handle RollbackException > -------------------------------------------------------------------- > > Key: ARIES-1497 > URL: https://issues.apache.org/jira/browse/ARIES-1497 > Project: Aries > Issue Type: Bug > Components: JPA > Affects Versions: jpa-2.3.0 > Reporter: Matthew Pitts > Assignee: Christian Schneider > Attachments: jpa-support-RollbackException-handling.patch > > > There are a couple of problems addressed here: > 1. No checked exceptions ever reach the safeRollback method in XAJpaTemplate. > This is due to the fact that safeFinish catches and wraps via wrapThrowable. > This means that the shouldRollback logic will always (or almost always) be > true, because no checked exceptions have the opportunity to bubble-up as-is > from safeFinish. > 2. Because of the above problem, javax.transaction.RollbackException events > are not properly handled since they result in another rollback attempt. > The proposed fix (and patch) is to allow RollbackExceptions to bubble up from > safeFinish, thus allowing for their direct passing to safeRollback. > Basically, because this is a checked exception, shouldRollback will be false > during safeRollback handling, thus preventing a rollback attempt while this > exception is propagating. Additionally, because safeRollback calls safeFinish > which ultimately calls the corresponding TransactionAttribute.finish method, > then the logic therein to issue a rollback in the event of > STATUS_MARKED_ROLLBACK will be executed when this exception is propagating. > Thus, no other special handling is really required. > Please validate and correct my statement of the problem and my fix. -- This message was sent by Atlassian JIRA (v6.3.4#6332)