[jboss-cvs] jboss-seam/src/main/org/jboss/seam/util ...

Gavin King gavin.king at jboss.com
Fri Jun 22 11:28:57 EDT 2007


  User: gavin   
  Date: 07/06/22 11:28:57

  Modified:    src/main/org/jboss/seam/util  Work.java
  Log:
  a basic TransactionListener that works all the time
  javadoc
  
  Revision  Changes    Path
  1.7       +15 -0     jboss-seam/src/main/org/jboss/seam/util/Work.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Work.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/Work.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- Work.java	30 May 2007 20:16:00 -0000	1.6
  +++ Work.java	22 Jun 2007 15:28:57 -0000	1.7
  @@ -2,6 +2,8 @@
   
   import javax.transaction.UserTransaction;
   
  +import org.jboss.seam.core.BasicTransactionListener;
  +import org.jboss.seam.core.TransactionListener;
   import org.jboss.seam.log.LogProvider;
   import org.jboss.seam.log.Logging;
   import org.jboss.seam.transaction.Transaction;
  @@ -27,19 +29,24 @@
         boolean transactionActive = Transaction.instance().isActiveOrMarkedRollback();
         boolean begin = isNewTransactionRequired(transactionActive);
         UserTransaction userTransaction = begin ? Transaction.instance() : null;
  +      TransactionListener transactionListener = BasicTransactionListener.instance();
  +      boolean success=false;
         
         if (begin) 
         {
            log.debug("beginning transaction");
            userTransaction.begin();
         }
  +      
         try
         {
            T result = work();
            if (begin) 
            {
               log.debug("committing transaction");
  +            transactionListener.beforeSeamManagedTransactionCompletion();
               userTransaction.commit();
  +            success = true;
            }
            return result;
         }
  @@ -52,5 +59,13 @@
            }
            throw e;
         }
  +      finally
  +      {
  +         if (begin)
  +         {
  +            transactionListener.afterSeamManagedTransactionCompletion(success);
  +         }
  +      }
  +      
      }
   }
  
  
  



More information about the jboss-cvs-commits mailing list