[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