[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