From: <hib...@li...> - 2006-05-03 00:03:06
|
Author: epbernard Date: 2006-05-02 20:03:03 -0400 (Tue, 02 May 2006) New Revision: 9860 Modified: trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/transaction/JoinableCMTTransaction.java Log: EJB-168 Check that the transaction is not marked for rollback before considering it as in progress. This will avoid any Synchronization registration issue Modified: trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/transaction/JoinableCMTTransaction.java =================================================================== --- trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/transaction/JoinableCMTTransaction.java 2006-05-02 23:33:15 UTC (rev 9859) +++ trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/transaction/JoinableCMTTransaction.java 2006-05-03 00:03:03 UTC (rev 9860) @@ -2,6 +2,7 @@ package org.hibernate.ejb.transaction; import javax.transaction.SystemException; +import javax.transaction.Transaction; import org.hibernate.HibernateException; import org.hibernate.TransactionException; @@ -41,9 +42,10 @@ private boolean isTransactionInProgress() { try { + Transaction transaction = transactionContext.getFactory().getTransactionManager().getTransaction(); return JTAHelper.isTransactionInProgress( - transactionContext.getFactory().getTransactionManager().getTransaction() - ); + transaction + ) && ! JTAHelper.isRollback( transaction.getStatus() ); } catch (SystemException se) { throw new TransactionException( "Unable to check transaction status", se ); |