[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