[jboss-svn-commits] JBL Code SVN: r37578 - labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Oct 17 12:53:10 EDT 2011


Author: tomjenkinson
Date: 2011-10-17 12:53:10 -0400 (Mon, 17 Oct 2011)
New Revision: 37578

Modified:
   labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/SubordinateAtomicAction.java
   labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/TransactionImple.java
Log:
JBTM-927 updated to ensure that if a transaction is already aborted then we do not try to prepare or re roll it back

Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/SubordinateAtomicAction.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/SubordinateAtomicAction.java	2011-10-17 15:19:12 UTC (rev 37577)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/SubordinateAtomicAction.java	2011-10-17 16:53:10 UTC (rev 37578)
@@ -121,6 +121,11 @@
 	public int doPrepare ()
 	{
         int status = super.status();
+        
+        // JBTM-927 it is possible this transaction has been aborted by the TransactionReaper
+        if (status == ActionStatus.ABORTED) {
+        	return TwoPhaseOutcome.PREPARE_NOTOK;
+        }
 
         // In JTA spec, beforeCompletions are run on commit attempts only, not rollbacks.
         // We attempt to mimic that here, even though we are outside the scope of the spec.

Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/TransactionImple.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/TransactionImple.java	2011-10-17 15:19:12 UTC (rev 37577)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/TransactionImple.java	2011-10-17 16:53:10 UTC (rev 37578)
@@ -208,7 +208,8 @@
                 jtaLogger.i18NLogger.warn_transaction_arjunacore_endsuspendfailed1();
 			}
 
-			int res = subAct.doRollback();
+			// JBTM-927 the transaction reaper may have aborted this transaction already
+			int res = subAct.status() == ActionStatus.ABORTED ? ActionStatus.ABORTED : subAct.doRollback();
 
 			switch (res)
 			{



More information about the jboss-svn-commits mailing list