[jboss-svn-commits] JBL Code SVN: r32031 - in labs/jbosstm/trunk/XTS: WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore and 8 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 11 05:33:26 EST 2010


Author: adinn
Date: 2010-03-11 05:33:25 -0500 (Thu, 11 Mar 2010)
New Revision: 32031

Modified:
   labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/coordinator/LocalFactory.java
   labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ATCoordinator.java
   labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorControl.java
   labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/subordinate/SubordinateATCoordinator.java
   labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/at/ContextFactoryImple.java
   labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/at/ContextFactoryImple.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/SubordinateATCoordinatorRecoveryModule.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/bridge/at/BridgeWrapper.java
   labs/jbosstm/trunk/XTS/sar/tests/build.xml
   labs/jbosstm/trunk/XTS/sar/tests/dd/scripts/ATSubordinateCrashDuringCommit.txt
Log:
modified subordinate recovery to operate by subordinate coordinator type and exposed methods for creating, recovering and scanning bridged subordinate coordinators in AT BridgeWrapper library. also corrected recovery class names in AT subordinate crash test script -- fixes JBTM-725

Modified: labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/coordinator/LocalFactory.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/coordinator/LocalFactory.java	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/coordinator/LocalFactory.java	2010-03-11 10:33:25 UTC (rev 32031)
@@ -50,13 +50,18 @@
 {
 
 	/**
-	 * Create a new subordinate coordinator instance.
+	 * Create a new subordinate coordinator instance with the default subordinate type.
 	 * 
 	 * @return a new coordinator instance.
 	 */
-	
 	public Object createSubordinate () throws NoActivityException, InvalidProtocolException, SystemException;
-    
+    /**
+     * Create a new subordinate coordinator instance with the supplied subordinate type.
+     *
+     * @return a new coordinator instance.
+     */
+    public Object createSubordinate (String subordinateType) throws NoActivityException, InvalidProtocolException, SystemException;
+
 }
 
 

Modified: labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ATCoordinator.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ATCoordinator.java	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ATCoordinator.java	2010-03-11 10:33:25 UTC (rev 32031)
@@ -288,7 +288,8 @@
 					wscfLogger.arjLoggerI18N.getString("com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ATCoordinator_3"));
 	}
 
-	public String type ()
+    @Override
+    public String type ()
 	{
 		return "/StateManager/BasicAction/AtomicAction/TwoPhaseCoordinator/TwoPhase/ATCoordinator";
 	}

Modified: labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorControl.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorControl.java	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/CoordinatorControl.java	2010-03-11 10:33:25 UTC (rev 32031)
@@ -437,11 +437,11 @@
 	 * @throws SystemException throw if any error occurs.
 	 */
 	
-	public final ATCoordinator createSubordinate () throws SystemException
+	public final ATCoordinator createSubordinate (String subordinateType) throws SystemException
 	{	
 		try
 		{
-			SubordinateATCoordinator coord = new SubordinateATCoordinator();
+			SubordinateATCoordinator coord = new SubordinateATCoordinator(subordinateType);
 			int status = coord.start(null);
 
 			if (status != ActionStatus.RUNNING)

Modified: labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/subordinate/SubordinateATCoordinator.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/subordinate/SubordinateATCoordinator.java	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/subordinate/SubordinateATCoordinator.java	2010-03-11 10:33:25 UTC (rev 32031)
@@ -34,6 +34,8 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.coordinator.*;
 
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
 import com.arjuna.mw.wsas.activity.Outcome;
 
 import com.arjuna.mw.wsas.completionstatus.CompletionStatus;
@@ -44,6 +46,7 @@
 
 import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ATCoordinator;
 
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.Collection;
 
@@ -61,7 +64,6 @@
 
 public class SubordinateATCoordinator extends ATCoordinator
 {
-
     /**
      * normal constructor
      */
@@ -72,6 +74,16 @@
 	}
 
     /**
+     * bridge wrapper constructor
+     */
+	public SubordinateATCoordinator(String subordinateType)
+	{
+		super();
+        activated = true;
+        this.subordinateType = subordinateType;
+	}
+
+    /**
      * constructor for recovered coordinator
      * @param recovery
      */
@@ -79,6 +91,7 @@
 	{
 		super(recovery);
         activated = false;
+        subordinateType = null;
 	}
 
     /**
@@ -262,9 +275,14 @@
     {
     }
 
+    /**
+     * type string used to locate TX log records in the tx object store hierarchy
+     */
+    public final static String TRANSACTION_TYPE = "/StateManager/BasicAction/AtomicAction/TwoPhaseCoordinator/TwoPhase/SubordinateATCoordinator";
+
     public String type ()
     {
-        return "/StateManager/BasicAction/AtomicAction/TwoPhaseCoordinator/TwoPhase/SubordinateATCoordinator";
+        return TRANSACTION_TYPE;
     }
 
     /**
@@ -360,6 +378,44 @@
     }
 
     /**
+     * standard AT subordinate tx type for an AT subordinate created below another AT transaction
+     */
+    public static final String SUBORDINATE_TX_TYPE_AT_AT = "org.jboss.jbossts.xts.at.at.subordinate";
+
+    public String getSubordinateType()
+    {
+        return subordinateType;
+    }
+    
+    @Override
+    public boolean save_state(OutputObjectState os, int ot) {
+        // also need to save the subordinate type
+        if (super.save_state(os, ot)) {
+            try {
+                os.packString(subordinateType);
+                return true;
+            } catch (IOException ioe) {
+            }
+        }
+
+        return false;
+    }
+
+    @Override
+    public boolean restore_state(InputObjectState os, int ot) {
+        // also need to restore the subordinate type
+        if (super.restore_state(os, ot)) {
+            try {
+                subordinateType = os.unpackString();
+                return true;
+            } catch (IOException ioe) {
+            }
+        }
+        
+        return false;
+    }
+
+    /**
      * this saves the status after the subtransaction commit or rollback so it can be referred to during
      * afterCompletion processing.
      */
@@ -371,6 +427,16 @@
      */
     private boolean activated;
 
+    /**
+     * string identifying which type of subordinate transaction this is. the standard subordinate type is
+     * XTSATRecoveryManager.SUBORDINATE_TX_TYPE_AT_AT which identifies a subordinate of another AT transaction.
+     * Alternative types can occur as a result of transaction bridging e.g. the AT transaction may be a
+     * subordinate of an XA transaction. different types of subordinate can be scanned and rolled back
+     * independently from other subordinate types.
+     */
+
+    private String subordinateType;
+
     private static final HashMap<String, SubordinateATCoordinator> recoveredCoordinators = new HashMap<String, SubordinateATCoordinator>();
 
     private static final HashMap<String, Boolean> activeProxies = new HashMap<String, Boolean>();

Modified: labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/at/ContextFactoryImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/at/ContextFactoryImple.java	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/at/ContextFactoryImple.java	2010-03-11 10:33:25 UTC (rev 32031)
@@ -63,6 +63,7 @@
 import com.arjuna.wst.stub.SubordinateVolatile2PCStub;
 import com.arjuna.wst.stub.SubordinateDurable2PCStub;
 import com.arjuna.wst.messaging.engines.ParticipantEngine;
+import org.jboss.jbossts.xts.recovery.participant.at.XTSATRecoveryManager;
 
 public class ContextFactoryImple implements ContextFactory, LocalFactory
 {
@@ -277,13 +278,18 @@
 		// we don't use this as one implementation is registered per type
 	}
 
-	public final Object createSubordinate () throws NoActivityException, InvalidProtocolException, SystemException
-	{
+    public final Object createSubordinate () throws NoActivityException, InvalidProtocolException, SystemException
+    {
+        return createSubordinate(SubordinateATCoordinator.SUBORDINATE_TX_TYPE_AT_AT);
+    }
+    
+    public final Object createSubordinate (String subordinateType) throws NoActivityException, InvalidProtocolException, SystemException
+    {
 		try
 		{
 			CoordinatorServiceImple coordManager = (CoordinatorServiceImple) _coordManager;
 			CoordinatorControl theControl = coordManager.coordinatorControl();
-			ATCoordinator subordinateTransaction = theControl.createSubordinate();
+			ATCoordinator subordinateTransaction = theControl.createSubordinate(subordinateType);
 			
 			/*
 			 * Now add the registrar for this specific coordinator to the

Modified: labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/at/ContextFactoryImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/at/ContextFactoryImple.java	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/at/ContextFactoryImple.java	2010-03-11 10:33:25 UTC (rev 32031)
@@ -58,6 +58,7 @@
 import com.arjuna.wst11.messaging.engines.ParticipantEngine;
 import com.arjuna.wst11.stub.SubordinateVolatile2PCStub;
 import com.arjuna.wst11.stub.SubordinateDurable2PCStub;
+import org.jboss.jbossts.xts.recovery.participant.at.XTSATRecoveryManager;
 import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext;
 import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
 import org.oasis_open.docs.ws_tx.wscoor._2006._06.Expires;
@@ -282,18 +283,24 @@
      * create a bridged to subordinate WS-AT 1.1 transaction, associate it with the registrar and create and return
      * a coordination context for it. n.b. this is a private, behind-the-scenes method for use by the JTA-AT
      * transaction bridge code.
+     * @param subordinateType a unique string which groups subordinates for the benefit of their parent tx/app and
+     * allows them to be identified and retrieved as a group during recovery
      * @param expires the timeout for the bridged to AT transaction
      * @param isSecure true if the registration cooridnator URL should use a secure address, otherwise false.
      * @return a coordination context for the bridged to transaction
      */
-    public BridgeTxData createBridgedTransaction (final Long expires, final boolean isSecure)
+    public BridgeTxData createBridgedTransaction (String subordinateType, final Long expires, final boolean isSecure)
     {
+        // we must have a type and it must not be the AT-AT subordinate type
+        if (subordinateType == null || SubordinateATCoordinator.SUBORDINATE_TX_TYPE_AT_AT.equals(subordinateType)) {
+            return null;
+        }
         // we need to create a subordinate transaction and register it as both a durable and volatile
         // participant with the registration service defined in the current context
 
         SubordinateATCoordinator subTx = null;
         try {
-            subTx = (SubordinateATCoordinator) createSubordinate();
+            subTx = (SubordinateATCoordinator) createSubordinate(subordinateType);
         } catch (NoActivityException e) {
             // will not happen
             return null;
@@ -387,13 +394,18 @@
 		// we don't use this as one implementation is registered per type
 	}
 
-	public final Object createSubordinate () throws NoActivityException, InvalidProtocolException, SystemException
+    public final Object createSubordinate () throws NoActivityException, InvalidProtocolException, SystemException
+    {
+        return createSubordinate(SubordinateATCoordinator.SUBORDINATE_TX_TYPE_AT_AT);
+    }
+    
+	public final Object createSubordinate (String subordinateType) throws NoActivityException, InvalidProtocolException, SystemException
 	{
 		try
 		{
 			CoordinatorServiceImple coordManager = (CoordinatorServiceImple) _coordManager;
 			CoordinatorControl theControl = coordManager.coordinatorControl();
-			ATCoordinator subordinateTransaction = theControl.createSubordinate();
+			ATCoordinator subordinateTransaction = theControl.createSubordinate(subordinateType);
 
 			/*
 			 * Now add the registrar for this specific coordinator to the

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/SubordinateATCoordinatorRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/SubordinateATCoordinatorRecoveryModule.java	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/SubordinateATCoordinatorRecoveryModule.java	2010-03-11 10:33:25 UTC (rev 32031)
@@ -332,7 +332,7 @@
     }
 
     // 'type' within the Object Store for ACCoordinator.
-    private String _transactionType = new SubordinateATCoordinator().type() ;
+    private String _transactionType = SubordinateATCoordinator.TRANSACTION_TYPE ;
 
     // Array of transactions found in the object store of the
     // ACCoordinator type.

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java	2010-03-11 10:33:25 UTC (rev 32031)
@@ -279,7 +279,7 @@
 
         SubordinateATCoordinator[] coordinators = SubordinateATCoordinator.listRecoveredCoordinators();
         for (SubordinateATCoordinator coordinator : coordinators) {
-            if (coordinator.isOrphaned()) {
+            if (coordinator.getSubordinateType() == SubordinateATCoordinator.SUBORDINATE_TX_TYPE_AT_AT && coordinator.isOrphaned()) {
                 if (XTSLogger.arjLoggerI18N.isWarnEnabled())
                 {
                     XTSLogger.arjLoggerI18N.warn("org.jboss.transactions.xts.recovery.participant.at.XTSATRecoveryModule_5",

Modified: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/bridge/at/BridgeWrapper.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/bridge/at/BridgeWrapper.java	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/bridge/at/BridgeWrapper.java	2010-03-11 10:33:25 UTC (rev 32031)
@@ -37,27 +37,39 @@
     }
 
     /**
+     * the standard type string used to identify AT AT subordinate transactions. bridge clients
+     * must ensure that they do not employ this type for their subordinates.
+     */
+
+    public static final String SUBORDINATE_TX_TYPE_AT_AT = SubordinateATCoordinator.SUBORDINATE_TX_TYPE_AT_AT;
+
+
+    /**
      * create an AT 1.1 subordinate transaction, associate it with the AT 1.1. registry then return a
      * BridgedTransaction wrapper allowing the transaction to be driven through prepare, commit
      * and/or rollback and providing access to the transaction id and a context which can be used to
      * resume the transaction.
+     * @param subordinateType a unique string which groups subordinates for the benefit of their parent
+     * tx/app and allows them to be identified and retrieved as a group during recovery. this must differ
+     * from the string {@link SUBORDINATE_TX_TYPE_AT_AT}
      * @param expires the timeout for the bridged-to transaction or 0 if no timeout is required
      * @param isSecure true if AT 1.1. protocol messages for the bridged-to transaction should employ
      * secure communications, otherwise false
      * @return a wrapper for the bridged-to transaction
      * @throws SystemException
      */
-    public static BridgeWrapper create(long expires, boolean isSecure)
+    public static BridgeWrapper create(String subordinateType, long expires, boolean isSecure)
     {
         // the AT 1.1 context factory provides us with a means to create the required data.
 
-        ContextFactoryImple.BridgeTxData bridgeTxData = contextFactory.createBridgedTransaction(expires, isSecure);
+        ContextFactoryImple.BridgeTxData bridgeTxData = contextFactory.createBridgedTransaction(subordinateType, expires, isSecure);
         if (bridgeTxData != null) {
             BridgeWrapper bridgeWrapper = new BridgeWrapper();
 
             bridgeWrapper.context = new TxContextImple(bridgeTxData.context);
             bridgeWrapper.coordinator = bridgeTxData.coordinator;
             bridgeWrapper.id = bridgeTxData.identifier;
+            bridgeWrapper.subordinateType = subordinateType;
             return bridgeWrapper;
         } else {
             return null;
@@ -69,7 +81,7 @@
      * @param identifier the identifier of a previously created bridged-to transaction
      * @return a wrapper for the bridged-to transaction or null if it may still be awaiting recovery
      * @throws UnknownTransactionException if recovery has been performed and no transaction with the
-     * given identifier has been foung in the log
+     * given identifier has been found in the log
      */
     public static BridgeWrapper recover(String identifier) throws UnknownTransactionException
     {
@@ -79,6 +91,7 @@
             bridgeWrapper.context = null;
             bridgeWrapper.coordinator =coordinator;
             bridgeWrapper.id = identifier;
+            bridgeWrapper.subordinateType = coordinator.getSubordinateType();
             return bridgeWrapper;
         } else {
             XTSATRecoveryManager recoveryManager = XTSATRecoveryManager.getRecoveryManager();
@@ -91,6 +104,59 @@
     }
 
     /**
+     * return a list of bridge wrappers for all recovered subordinate transactions with a given
+     * subordinate type
+     * @param subordinateType the subordinate type supplied in the original bridge wrapper create call
+     * which created the subordinate transaction.
+     * @return a possibly zero-length array of bridge wrappers for all recovered subordinate AT transactions
+     * with the given subordinate type or null if a subordinate coordinator recovery scan has not yet occurred
+     */
+    public BridgeWrapper[] scan(String subordinateType)
+    {
+        // return null if not yet ready
+
+        XTSATRecoveryManager recoveryManager = XTSATRecoveryManager.getRecoveryManager();
+        if (!recoveryManager.isCoordinatorRecoveryStarted()) {
+            return null;
+        }
+
+        // refuse to expose the internal AT - AT subordinates
+
+        if (subordinateType == null || subordinateType.equals(SUBORDINATE_TX_TYPE_AT_AT)) {
+            return EMPTY_SCAN;
+        }
+
+        SubordinateATCoordinator[] coordinators = SubordinateATCoordinator.listRecoveredCoordinators();
+        int count = 0;
+
+        for (int i = 0; i < coordinators.length; i++) {
+            if (coordinators[i].getSubordinateType().equals(subordinateType)) {
+                count++;
+            }
+        }
+
+        if (count == 0) {
+            return EMPTY_SCAN;
+        }
+
+        BridgeWrapper[] result = new BridgeWrapper[count];
+        count = 0;
+
+        for (int i = 0; i < coordinators.length; i++) {
+            if (coordinators[i].getSubordinateType().equals(subordinateType)) {
+                BridgeWrapper bridgeWrapper = new BridgeWrapper();
+                bridgeWrapper.context = null;
+                bridgeWrapper.coordinator =coordinator;
+                bridgeWrapper.id = coordinator.get_uid().stringForm();
+                bridgeWrapper.subordinateType = coordinator.getSubordinateType();
+                result[count++] = bridgeWrapper;
+            }
+        }
+
+        return result;
+    }
+
+    /**
      * obtain the identifier for the bridged-to transaction
      * @return the identifier for the bridged-to transaction
      */
@@ -115,6 +181,15 @@
     }
 
     /**
+     * obtain the subordinate type for the bridged-to transaction
+     * @return the subordinate type for the bridged-to transaction
+     */
+    public String getSubordinateType()
+    {
+        return subordinateType;
+    }
+
+    /**
      * initiate synchronization beforeCompletion processing for the bridged-to transaction
      *
      * @return true if the beforeCompletion succeeds otherwise false.
@@ -173,4 +248,7 @@
     private SubordinateATCoordinator coordinator;
     private TxContext context;
     private String id;
+    private String subordinateType;
+
+    private final static BridgeWrapper[] EMPTY_SCAN = new BridgeWrapper[0];
 }

Modified: labs/jbosstm/trunk/XTS/sar/tests/build.xml
===================================================================
--- labs/jbosstm/trunk/XTS/sar/tests/build.xml	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/sar/tests/build.xml	2010-03-11 10:33:25 UTC (rev 32031)
@@ -20,9 +20,9 @@
   @author JBoss Inc.
 -->
 
-<project name="XTSTestService" default="jar" basedir=".">
+<project name="XTSTestService" default="war" basedir=".">
     <!-- build a JBoss service which runs a specific test of the XTS service according to an environment setting -->
-    <!-- the tests will normally be run in a  JVM employing a TOAST agent and suitable configured TOAST rule set -->
+    <!-- the tests will normally be run in a  JVM employing a BYTEMAN agent and suitable configured BYTEMAN rule set -->
 
   <property environment="env"/>
   <!-- we need JBOSS_HOME for deployment -->

Modified: labs/jbosstm/trunk/XTS/sar/tests/dd/scripts/ATSubordinateCrashDuringCommit.txt
===================================================================
--- labs/jbosstm/trunk/XTS/sar/tests/dd/scripts/ATSubordinateCrashDuringCommit.txt	2010-03-11 09:35:02 UTC (rev 32030)
+++ labs/jbosstm/trunk/XTS/sar/tests/dd/scripts/ATSubordinateCrashDuringCommit.txt	2010-03-11 10:33:25 UTC (rev 32031)
@@ -527,11 +527,11 @@
 
 #######################################################################
 # This rule is triggered when a subordinate coordinator
-# (SubordinateCoordinator) is requested to perform a commit. It
+# (SubordinateATCoordinator) is requested to perform a commit. It
 # traces the call.
 
 RULE trace subordinate coordinator commit
-CLASS com.arjuna.mwlabs.wscf.model.twophase.arjunacore.subordinate.SubordinateCoordinator
+CLASS com.arjuna.mwlabs.wscf.model.twophase.arjunacore.subordinate.SubordinateATCoordinator
 METHOD commit
 AT ENTRY
 BIND NOTHING
@@ -542,11 +542,11 @@
 
 #######################################################################
 # This rule is triggered when a subordinate coordinator
-# (SubordinateCoordinator) is requested to perform a commit. It
+# (SubordinateATCoordinator) is requested to perform a commit. It
 # traces the call.
 
 RULE trace subordinate coordinator commit 2
-CLASS com.arjuna.mwlabs.wscf.model.twophase.arjunacore.subordinate.SubordinateCoordinator
+CLASS com.arjuna.mwlabs.wscf.model.twophase.arjunacore.subordinate.SubordinateATCoordinator
 METHOD commit
 AT EXIT
 BIND NOTHING
@@ -563,7 +563,7 @@
 # both transactions
 
 RULE trace prepared replay
-CLASS org.jboss.jbossts.xts.recovery.coordinator.at.RecoverACCoordinator
+CLASS org.jboss.jbossts.xts.recovery.coordinator.at.RecoveryATCoordinator
 METHOD replayPhase2
 AT INVOKE phase2Commit
 BIND coordinator = $0,
@@ -584,7 +584,7 @@
 # progressed as expected
 
 RULE trace subordinate prepared replay
-CLASS org.jboss.jbossts.xts.recovery.coordinator.at.RecoverSubordinateCoordinator
+CLASS org.jboss.jbossts.xts.recovery.coordinator.at.RecoverySubordinateATCoordinator
 METHOD replayPhase2
 AT INVOKE removeRecoveredCoordinator
 BIND coordinator = $0,
@@ -614,6 +614,7 @@
 ENDRULE
 
 #######################################################################
+# This rule is triggered when the recovery system deletes the COMMITTED
 # activity from the log for the second time. It ensures that the JVM
 # exits. n.b. it waits for the second delete because both the subordinate
 # tx and the parent tx need to be deleted.



More information about the jboss-svn-commits mailing list