[jboss-cvs] jboss-seam/src/main/org/jboss/seam/transaction ...
Gavin King
gavin.king at jboss.com
Sat Jul 21 01:41:37 EDT 2007
User: gavin
Date: 07/07/21 01:41:37
Modified: src/main/org/jboss/seam/transaction
CMTTransaction.java EjbSynchronizations.java
EntityTransaction.java SeSynchronizations.java
Synchronizations.java UTTransaction.java
Log:
JBSEAM-1604
Revision Changes Path
1.6 +4 -4 jboss-seam/src/main/org/jboss/seam/transaction/CMTTransaction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: CMTTransaction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/CMTTransaction.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- CMTTransaction.java 19 Jul 2007 10:45:44 -0000 1.5
+++ CMTTransaction.java 21 Jul 2007 05:41:37 -0000 1.6
@@ -38,7 +38,7 @@
public void begin() throws NotSupportedException, SystemException
{
ejbContext.getUserTransaction().begin();
- getSynchronizations().afterBegin();
+ getSynchronizations().afterTransactionBegin();
}
public void commit() throws RollbackException, HeuristicMixedException,
@@ -47,7 +47,7 @@
UserTransaction userTransaction = ejbContext.getUserTransaction();
boolean success = false;
Synchronizations synchronizations = getSynchronizations();
- synchronizations.beforeCommit();
+ synchronizations.beforeTransactionCommit();
try
{
userTransaction.commit();
@@ -55,7 +55,7 @@
}
finally
{
- synchronizations.afterCommit(success);
+ synchronizations.afterTransactionCommit(success);
}
}
@@ -68,7 +68,7 @@
}
finally
{
- getSynchronizations().afterRollback();
+ getSynchronizations().afterTransactionRollback();
}
}
1.3 +30 -4 jboss-seam/src/main/org/jboss/seam/transaction/EjbSynchronizations.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: EjbSynchronizations.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/EjbSynchronizations.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- EjbSynchronizations.java 20 Jul 2007 07:40:32 -0000 1.2
+++ EjbSynchronizations.java 21 Jul 2007 05:41:37 -0000 1.3
@@ -18,6 +18,8 @@
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.intercept.BypassInterceptors;
+import org.jboss.seam.log.LogProvider;
+import org.jboss.seam.log.Logging;
/**
* Receives JTA transaction completion notifications from
@@ -38,6 +40,8 @@
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
public class EjbSynchronizations implements LocalEjbSynchronizations, SessionSynchronization
{
+ private static final LogProvider log = Logging.getLogProvider(EjbSynchronizations.class);
+
//maintain two lists to work around a bug in JBoss EJB3 where a new SessionSynchronization
//gets registered each time the bean is called
protected LinkedList<SynchronizationRegistry> synchronizations = new LinkedList<SynchronizationRegistry>();
@@ -45,11 +49,13 @@
public void afterBegin()
{
+ log.debug("afterBegin");
synchronizations.addLast( new SynchronizationRegistry() );
}
public void beforeCompletion() throws EJBException, RemoteException
{
+ log.debug("beforeCompletion");
SynchronizationRegistry sync = synchronizations.removeLast();
sync.beforeTransactionCompletion();
committing.addLast(sync);
@@ -57,25 +63,45 @@
public void afterCompletion(boolean success) throws EJBException, RemoteException
{
+ log.debug("afterCompletion");
+ if ( committing.isEmpty() )
+ {
+ if (success)
+ {
+ throw new IllegalStateException("beforeCompletion was never called");
+ }
+ else
+ {
+ synchronizations.removeLast().afterTransactionCompletion(false);
+ }
+ }
+ else
+ {
committing.removeFirst().afterTransactionCompletion(success);
}
+ }
public boolean isAwareOfContainerTransactions()
{
return true;
}
- public void afterCommit(boolean success)
+ public void afterTransactionBegin()
+ {
+ //noop, let JTA notify us
+ }
+
+ public void afterTransactionCommit(boolean success)
{
//noop, let JTA notify us
}
- public void afterRollback()
+ public void afterTransactionRollback()
{
//noop, let JTA notify us
}
- public void beforeCommit()
+ public void beforeTransactionCommit()
{
//noop, let JTA notify us
}
1.9 +4 -4 jboss-seam/src/main/org/jboss/seam/transaction/EntityTransaction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: EntityTransaction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/EntityTransaction.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- EntityTransaction.java 19 Jul 2007 10:45:44 -0000 1.8
+++ EntityTransaction.java 21 Jul 2007 05:41:37 -0000 1.9
@@ -79,7 +79,7 @@
try
{
getDelegate().begin();
- getSynchronizations().afterBegin();
+ getSynchronizations().afterTransactionBegin();
}
catch (RuntimeException re)
{
@@ -105,14 +105,14 @@
}
else
{
- getSynchronizations().beforeCommit();
+ getSynchronizations().beforeTransactionCommit();
delegate.commit();
success = true;
}
}
finally
{
- getSynchronizations().afterCommit(success);
+ getSynchronizations().afterTransactionCommit(success);
}
}
@@ -129,7 +129,7 @@
}
finally
{
- getSynchronizations().afterRollback();
+ getSynchronizations().afterTransactionRollback();
}
}
1.2 +4 -4 jboss-seam/src/main/org/jboss/seam/transaction/SeSynchronizations.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SeSynchronizations.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/SeSynchronizations.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- SeSynchronizations.java 19 Jul 2007 10:45:44 -0000 1.1
+++ SeSynchronizations.java 21 Jul 2007 05:41:37 -0000 1.2
@@ -30,22 +30,22 @@
{
protected Stack<SynchronizationRegistry> synchronizations = new Stack<SynchronizationRegistry>();
- public void afterBegin()
+ public void afterTransactionBegin()
{
synchronizations.push( new SynchronizationRegistry() );
}
- public void afterCommit(boolean success)
+ public void afterTransactionCommit(boolean success)
{
synchronizations.pop().afterTransactionCompletion(success);
}
- public void afterRollback()
+ public void afterTransactionRollback()
{
synchronizations.pop().afterTransactionCompletion(false);
}
- public void beforeCommit()
+ public void beforeTransactionCommit()
{
synchronizations.peek().beforeTransactionCompletion();
}
1.2 +4 -4 jboss-seam/src/main/org/jboss/seam/transaction/Synchronizations.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Synchronizations.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/Synchronizations.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- Synchronizations.java 19 Jul 2007 10:45:44 -0000 1.1
+++ Synchronizations.java 21 Jul 2007 05:41:37 -0000 1.2
@@ -10,10 +10,10 @@
*/
public interface Synchronizations
{
- public void afterBegin();
- public void afterCommit(boolean success);
- public void afterRollback();
- public void beforeCommit();
+ public void afterTransactionBegin();
+ public void afterTransactionCommit(boolean success);
+ public void afterTransactionRollback();
+ public void beforeTransactionCommit();
public void registerSynchronization(Synchronization sync);
public boolean isAwareOfContainerTransactions();
}
\ No newline at end of file
1.8 +11 -4 jboss-seam/src/main/org/jboss/seam/transaction/UTTransaction.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UTTransaction.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/transaction/UTTransaction.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- UTTransaction.java 19 Jul 2007 10:45:44 -0000 1.7
+++ UTTransaction.java 21 Jul 2007 05:41:37 -0000 1.8
@@ -7,6 +7,9 @@
import javax.transaction.Synchronization;
import javax.transaction.SystemException;
+import org.jboss.seam.log.LogProvider;
+import org.jboss.seam.log.Logging;
+
/**
* Wraps JTA transaction management in a Seam UserTransaction
* interface.
@@ -17,6 +20,7 @@
*/
public class UTTransaction extends AbstractUserTransaction
{
+ private static final LogProvider log = Logging.getLogProvider(UTTransaction.class);
private final javax.transaction.UserTransaction delegate;
@@ -31,16 +35,18 @@
public void begin() throws NotSupportedException, SystemException
{
+ log.debug("beginning JTA transaction");
delegate.begin();
- getSynchronizations().afterBegin();
+ getSynchronizations().afterTransactionBegin();
}
public void commit() throws RollbackException, HeuristicMixedException,
HeuristicRollbackException, SecurityException, IllegalStateException, SystemException
{
+ log.debug("committing JTA transaction");
boolean success = false;
Synchronizations synchronizations = getSynchronizations();
- synchronizations.beforeCommit();
+ synchronizations.beforeTransactionCommit();
try
{
delegate.commit();
@@ -48,19 +54,20 @@
}
finally
{
- synchronizations.afterCommit(success);
+ synchronizations.afterTransactionCommit(success);
}
}
public void rollback() throws IllegalStateException, SecurityException, SystemException
{
+ log.debug("rolling back JTA transaction");
try
{
delegate.rollback();
}
finally
{
- getSynchronizations().afterRollback();
+ getSynchronizations().afterTransactionRollback();
}
}
More information about the jboss-cvs-commits
mailing list