[jboss-svn-commits] JBL Code SVN: r38452 - in labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692: ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 29 05:24:24 EDT 2015
Author: raggz
Date: 2015-06-29 05:24:24 -0400 (Mon, 29 Jun 2015)
New Revision: 38452
Modified:
labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java
labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
Log:
Back port of JBTM-692
Modified: labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java 2015-06-25 14:54:29 UTC (rev 38451)
+++ labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java 2015-06-29 09:24:24 UTC (rev 38452)
@@ -278,6 +278,8 @@
* @message com.arjuna.ats.arjuna.coordinator.BasicAction_71
* [com.arjuna.ats.arjuna.coordinator.BasicAction_71] - Deactivation of
* atomic action with id {0} and type {1} unexpectedly failed
+ * @message com.arjuna.ats.arjuna.coordinator.norecordfound
+ * [com.arjuna.ats.arjuna.coordinator.norecordfound] - Could not recreate abstract record {0}
*/
public class BasicAction extends StateManager
@@ -1479,10 +1481,13 @@
RecordType.typeToClassName(record_type), record_type,
true);
- res = (record.restore_state(os, ot) && heuristicList.insert(record));
+
try
{
+
+ res = (record.restore_state(os, ot) && heuristicList.insert(record));
+
record_type = os.unpackInt();
if (tsLogger.arjLoggerI18N.debugAllowed())
@@ -1495,6 +1500,13 @@
{
res = false;
}
+ catch (final NullPointerException ex)
+ {
+ if (tsLogger.arjLoggerI18N.isWarnEnabled())
+ tsLogger.arjLoggerI18N.warn("com.arjuna.ats.arjuna.coordinator.norecordfound", new Object[] { record_type});
+
+ res = false;
+ }
}
}
Modified: labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java 2015-06-25 14:54:29 UTC (rev 38451)
+++ labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java 2015-06-29 09:24:24 UTC (rev 38452)
@@ -621,12 +621,10 @@
return TwoPhaseOutcome.HEURISTIC_HAZARD; // something terminated the transaction!
case XAException.XAER_PROTO:
case XAException.XA_RETRY:
+ case XAException.XAER_RMFAIL: // resource manager failed, did it rollback?
+ _committed = true;
return TwoPhaseOutcome.FINISH_ERROR;
case XAException.XAER_INVAL:
- case XAException.XAER_RMFAIL: // resource manager
- // failed, did it
- // rollback?
- return TwoPhaseOutcome.HEURISTIC_HAZARD;
default:
return TwoPhaseOutcome.HEURISTIC_HAZARD;
}
@@ -844,6 +842,7 @@
return TwoPhaseOutcome.HEURISTIC_HAZARD; // something committed or rolled back without asking us!
case XAException.XAER_PROTO:
case XAException.XAER_INVAL:
+ return TwoPhaseOutcome.HEURISTIC_HAZARD;
case XAException.XAER_RMFAIL: // resource manager failed,
// did it rollback?
return TwoPhaseOutcome.FINISH_ERROR;
@@ -898,6 +897,8 @@
{
if ((_theXAResource != null) && (_tranID != null))
{
+ _heuristic = TwoPhaseOutcome.FINISH_OK;
+
try
{
_theXAResource.forget(_tranID);
@@ -1215,6 +1216,12 @@
_theTransaction = null;
_recovered = true;
}
+
+ public String toString ()
+ {
+ return "XAResourceRecord < resource:"+_theXAResource+", txid:"+_tranID+", heuristic"+TwoPhaseOutcome.stringForm(_heuristic)+" "+super.toString()+" >";
+ }
+
/**
* For those objects where the original XAResource could not be saved.
Modified: labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java 2015-06-25 14:54:29 UTC (rev 38451)
+++ labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP13_JBTM-1481_JBTM-1509_JBTM-692/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java 2015-06-29 09:24:24 UTC (rev 38452)
@@ -592,12 +592,10 @@
throw new TRANSACTION_ROLLEDBACK();
case XAException.XA_RETRY:
- throw new UNKNOWN();
- case XAException.XAER_INVAL:
- case XAException.XAER_RMFAIL: // resource manager
- // failed, did it
- // rollback?
- throw new org.omg.CosTransactions.HeuristicHazard();
+ case XAException.XAER_RMFAIL:
+ _committed = true; // remember for recovery later.
+ throw new UNKNOWN(); // will cause log to be rewritten.
+ case XAException.XAER_INVAL: // resource manager failed, did it rollback?
default:
throw new org.omg.CosTransactions.HeuristicHazard();
}
@@ -855,11 +853,11 @@
// presumed abort (or we could be really paranoid and throw a heuristic)
throw new TRANSACTION_ROLLEDBACK();
- case XAException.XAER_INVAL:
- case XAException.XAER_RMFAIL: // resource manager failed,
- // did it rollback?
- throw new UNKNOWN();
+ case XAException.XAER_INVAL: // resource manager failed, did it rollback?
+ throw new org.omg.CosTransactions.HeuristicHazard();
+ case XAException.XAER_RMFAIL:
default:
+ _committed = true; // will cause log to be rewritten
throw new UNKNOWN();
}
}
@@ -916,6 +914,9 @@
{
if ((_theXAResource != null) && (_tranID != null))
{
+
+ _heuristic = TwoPhaseOutcome.FINISH_OK;
+
try
{
_theXAResource.forget(_tranID);
@@ -1179,6 +1180,11 @@
return _recoveryCoordinator;
}
+ public String toString ()
+ {
+ return "XAResourceRecord < resource:"+_theXAResource+", txid:"+_tranID+", heuristic"+TwoPhaseOutcome.stringForm(_heuristic)+" "+super.toString()+" >";
+ }
+
protected XAResourceRecord(Uid u)
{
_theXAResource = null;
More information about the jboss-svn-commits
mailing list