[jboss-cvs] jboss-seam/src/main/org/jboss/seam/transaction ...
Gavin King
gavin.king at jboss.com
Mon Jun 25 23:26:37 EDT 2007
User: gavin
Date: 07/06/25 23:26:37
Modified: src/main/org/jboss/seam/transaction EjbTransaction.java
Transaction.java
Log:
support nested and suspended transactions and work around a bug in JBoss EJB3
Revision Changes Path
1.3 +2 -2 jboss-seam/src/main/org/jboss/seam/transaction/EjbTransaction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: EjbTransaction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/EjbTransaction.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- EjbTransaction.java 24 Jun 2007 23:57:18 -0000 1.2
+++ EjbTransaction.java 26 Jun 2007 03:26:37 -0000 1.3
@@ -40,12 +40,12 @@
public void beforeCompletion() throws EJBException, RemoteException
{
- getSynchronizations().beforeTransactionCompletion();
+ synchronizations.peek().beforeTransactionCompletion();
}
public void afterCompletion(boolean success) throws EJBException, RemoteException
{
- getSynchronizations().afterTransactionCompletion(success);
+ synchronizations.pop().afterTransactionCompletion(success);
}
@Override
1.12 +8 -13 jboss-seam/src/main/org/jboss/seam/transaction/Transaction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Transaction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/Transaction.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- Transaction.java 24 Jun 2007 23:57:18 -0000 1.11
+++ Transaction.java 26 Jun 2007 03:26:37 -0000 1.12
@@ -2,6 +2,8 @@
import static org.jboss.seam.annotations.Install.BUILT_IN;
+import java.util.Stack;
+
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
import javax.transaction.Synchronization;
@@ -40,33 +42,26 @@
private static String userTransactionName = "UserTransaction";
- private SynchronizationRegistry synchronizations;
-
- protected SynchronizationRegistry getSynchronizations()
- {
- return synchronizations;
- }
+ protected Stack<SynchronizationRegistry> synchronizations = new Stack<SynchronizationRegistry>();
public void afterBegin()
{
- synchronizations = new SynchronizationRegistry();
+ synchronizations.push( new SynchronizationRegistry() );
}
protected void afterCommit(boolean success)
{
- synchronizations.afterTransactionCompletion(success);
- synchronizations = null;
+ synchronizations.pop().afterTransactionCompletion(success);
}
protected void afterRollback()
{
- synchronizations.afterTransactionCompletion(false);
- synchronizations = null;
+ synchronizations.pop().afterTransactionCompletion(false);
}
protected void beforeCommit()
{
- synchronizations.beforeTransactionCompletion();
+ synchronizations.peek().beforeTransactionCompletion();
}
protected void registerSynchronization(Synchronization sync)
@@ -77,7 +72,7 @@
}
else
{
- synchronizations.registerSynchronization(sync);
+ synchronizations.peek().registerSynchronization(sync);
}
}
More information about the jboss-cvs-commits
mailing list