|
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 );
|