Transaction.rollback method also calls beforeCompletion - GERONIMO-4449, pull from branch 2.1
git-svn-id: https://svn.apache.org/repos/asf/geronimo/components/txmanager/trunk@725403 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionImpl.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionImpl.java
index 4c27359..d72c8fa 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionImpl.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionImpl.java
@@ -470,7 +470,6 @@
rms = resourceManagers;
}
- beforeCompletion();
endResources();
try {
rollbackResources(rms);
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TestTransactionManager.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TestTransactionManager.java
index 78c91f3..558b183 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TestTransactionManager.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TestTransactionManager.java
@@ -18,7 +18,6 @@
package org.apache.geronimo.transaction.manager;
import javax.transaction.Status;
-import javax.transaction.InvalidTransactionException;
import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import javax.transaction.xa.XAResource;
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java
index f487887..d1e6345 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java
@@ -78,20 +78,25 @@
assertTrue("interposedSync afterCompletion was not called", interposedSync.getAfterCount() != -1);
}
+ private void checkInterposedSyncCalledOnRollback() {
+ assertTrue("interposedSync afterCompletion was not called", interposedSync.getAfterCount() != -1);
+ }
+
public void testInterposedSynchIsCalledOnRollback() throws Exception {
setUpInterposedSync();
tm.rollback();
- checkInterposedSyncCalled();
+ checkInterposedSyncCalledOnRollback();
}
- /*public void testNormalSynchIsNotCalledOnRollback() throws Exception {
+ // check normal synch before completion is not called on rollback
+ public void testNormalSynchBeforeCompletion() throws Exception {
normalSync = new CountingSync();
tm.begin();
tm.getTransaction().registerSynchronization(normalSync);
tm.rollback();
assertFalse(normalSync.beforeCompletionCalled());
assertTrue(normalSync.afterCompletionCalled());
- }*/
+ }
public void testInterposedSynchIsCalledOnMarkRollback() throws Exception {
setUpInterposedSync();
@@ -126,11 +131,16 @@
assertTrue("interposedSync beforeCompletion was not called after normalSync beforeCompletion", interposedSync.getBeforeCount() > normalSync.getBeforeCount());
assertTrue("interposedSync afterCompletion was not called before normalSync beforeCompletion", interposedSync.getAfterCount() < normalSync.getAfterCount());
}
+
+ private void checkSyncCallOrderOnRollback() {
+ checkInterposedSyncCalledOnRollback();
+ assertTrue("interposedSync afterCompletion was not called before normalSync beforeCompletion", interposedSync.getAfterCount() < normalSync.getAfterCount());
+ }
public void testSynchCallOrderOnRollback() throws Exception {
setUpSyncs();
tm.rollback();
- checkSyncCallOrder();
+ checkSyncCallOrderOnRollback();
}
public void testSynchCallOrderOnMarkRollback() throws Exception {
@@ -163,12 +173,12 @@
private boolean afterCalled = false;
public void beforeCompletion() {
- beforeCalled = true;
+ beforeCalled = true;
beforeCount = beforeCounter++;
}
public void afterCompletion(int i) {
- afterCalled = true;
+ afterCalled = true;
afterCount = afterCounter++;
}