[
https://issues.apache.org/jira/browse/GERONIMO-4449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lin Sun resolved GERONIMO-4449.
-------------------------------
Resolution: Fixed
see subversion commit tab. fixes in 2.1.2 and 2.2 (txmanager)
> Transaction.rollback method also calls beforeCompletion
> -------------------------------------------------------
>
> Key: GERONIMO-4449
> URL: https://issues.apache.org/jira/browse/GERONIMO-4449
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Components: transaction manager
> Affects Versions: 2.2
> Reporter: Lin Sun
> Assignee: Lin Sun
>
> Per JTA 1.1 spec, page 33:
> The beforeCompletion method is called by the transaction manager prior to the
> start of the two-phase
> transaction commit process.This call is executed with the transaction context
> of the transaction that is being
> committed. An unchecked exception thrown by a registered Synchronization
> object causes the transaction to
> be aborted. That is, upon encountering an unchecked exception thrown by a
> registered synchronization
> object, the transaction manager must mark the transaction for rollback.
> The spec seems to indicate that beforeCompletion is not called during
> rollback, but afterCompletion is called during(or after) both rollback and
> commit.
> So I expect the following to pass:
> {code}
> public void testNormalSynchIsNotCalledOnRollback() throws Exception {
> normalSync = new CountingSync();
> tm.begin();
> tm.getTransaction().registerSynchronization(normalSync);
> tm.rollback();
> assertFalse(normalSync.beforeCompletionCalled());
> assertTrue(normalSync.afterCompletionCalled());
> }
> {code}
> In geronimo, we call beforeCompletion inside of the rollback method in
> TransactionImpl.java, which seems incorrect to me.
> Thoughts?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.