[jboss-svn-commits] JBL Code SVN: r12638 - in labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP: ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jun 17 07:27:11 EDT 2007


Author: jhalliday
Date: 2007-06-17 07:27:10 -0400 (Sun, 17 Jun 2007)
New Revision: 12638

Modified:
   labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java
   labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TwoPhaseCoordinator.java
   labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
   labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/jca/SubordinateAtomicAction.java
   labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTS/jts/classes/com/arjuna/ats/jts/extensions/AtomicTransaction.java
   labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/atsintegration/classes/com/arjuna/ats/internal/jbossatx/jta/jca/XATerminator.java
Log:
Backported changes for JBTM-232, JBTM-231 from trunk.


Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java	2007-06-17 10:58:29 UTC (rev 12637)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java	2007-06-17 11:27:10 UTC (rev 12638)
@@ -147,7 +147,7 @@
  * @message com.arjuna.ats.arjuna.coordinator.BasicAction_29
  *          [com.arjuna.ats.arjuna.coordinator.BasicAction_29] -
  *          BasicAction.Begin of action {0} ignored - incorrect invocation
- *          sequence
+ *          sequence {1}
  * @message com.arjuna.ats.arjuna.coordinator.BasicAction_30
  *          [com.arjuna.ats.arjuna.coordinator.BasicAction_30] -
  *          BasicAction.Begin of action {0} ignored - no parent and set as
@@ -1650,13 +1650,13 @@
 			tsLogger.arjLogger.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PROTECTED, FacilityCode.FAC_ATOMIC_ACTION, "BasicAction::Begin() for action-id "
 					+ get_uid());
 		}
-
+		
 		if (actionStatus != ActionStatus.CREATED)
 		{
 			if (tsLogger.arjLoggerI18N.isWarnEnabled())
 			{
 				tsLogger.arjLoggerI18N.warn("com.arjuna.ats.arjuna.coordinator.BasicAction_29", new Object[]
-				{ get_uid() });
+				{ get_uid(), ActionStatus.stringForm(actionStatus) });
 			}
 		}
 		else

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TwoPhaseCoordinator.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TwoPhaseCoordinator.java	2007-06-17 10:58:29 UTC (rev 12637)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TwoPhaseCoordinator.java	2007-06-17 11:27:10 UTC (rev 12638)
@@ -70,8 +70,6 @@
 
 	public int start (BasicAction parentAction)
 	{
-		int status = ActionStatus.INVALID;
-
 		if (parentAction != null)
 			parentAction.addChildAction(this);
 

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java	2007-06-17 10:58:29 UTC (rev 12637)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java	2007-06-17 11:27:10 UTC (rev 12638)
@@ -63,8 +63,8 @@
 import EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap;
 
 /*
- * Is given an AtomicAction, but uses the TwoPhaseCoordinator aspects of it
- * to ensure that the thread association continues.
+ * Is given an AtomicAction, but uses the TwoPhaseCoordinator aspects of it to
+ * ensure that the thread association continues.
  */
 
 /**
@@ -81,8 +81,8 @@
  *          [com.arjuna.ats.internal.jta.transaction.arjunacore.notatomicaction]
  *          Current transaction is not an AtomicAction!
  * @message com.arjuna.ats.internal.jta.transaction.arjunacore.lastResourceOptimisationInterface
- * 			[com.arjuna.ats.internal.jta.transaction.arjunacore.lastResourceOptimisationInterface] - failed
- *          to load Last Resource Optimisation Interface
+ *          [com.arjuna.ats.internal.jta.transaction.arjunacore.lastResourceOptimisationInterface] -
+ *          failed to load Last Resource Optimisation Interface
  *
  * @message com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.multipleWarning
  *          [com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.multipleWarning]
@@ -91,12 +91,13 @@
  *          Current resource is {0}
  * @message com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.disallow
  *          [com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.disallow]
- *          Adding multiple last resources is disallowed.
- *          Current resource is {0}
+ *          Adding multiple last resources is disallowed. Current resource is
+ *          {0}
  * @message com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.startupWarning
  *          [com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.startupWarning]
- *          You have chosen to enable multiple last resources in the transaction manager.
- *          This is transactionally unsafe and should not be relied upon.
+ *          You have chosen to enable multiple last resources in the transaction
+ *          manager. This is transactionally unsafe and should not be relied
+ *          upon.
  */
 
 public class TransactionImple implements javax.transaction.Transaction,
@@ -120,7 +121,7 @@
 		_resources = new Hashtable();
 		_duplicateResources = new Hashtable();
 		_suspendCount = 0;
-		_xaTransactionTimeoutEnabled = getXATransactionTimeoutEnabled() ;
+		_xaTransactionTimeoutEnabled = getXATransactionTimeoutEnabled();
 	}
 
 	/**
@@ -131,7 +132,10 @@
 	{
 		if (jtaLogger.logger.isDebugEnabled())
 		{
-			jtaLogger.logger.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC, com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA, "TransactionImple.equals");
+			jtaLogger.logger.debug(DebugLevel.FUNCTIONS,
+					VisibilityLevel.VIS_PUBLIC,
+					com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA,
+					"TransactionImple.equals");
 		}
 
 		if (obj == null)
@@ -190,8 +194,8 @@
 	 *          [com.arjuna.ats.internal.jta.transaction.arjunacore.invalidstate]
 	 *          Invalid transaction state
 	 * @message com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted
-	 * 			[com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]
-	 * 			Can't commit because the transaction is in aborted state
+	 *          [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]
+	 *          Can't commit because the transaction is in aborted state
 	 */
 
 	public void commit() throws javax.transaction.RollbackException,
@@ -202,7 +206,10 @@
 	{
 		if (jtaLogger.logger.isDebugEnabled())
 		{
-			jtaLogger.logger.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC, com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA, "TransactionImple.commit");
+			jtaLogger.logger.debug(DebugLevel.FUNCTIONS,
+					VisibilityLevel.VIS_PUBLIC,
+					com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA,
+					"TransactionImple.commit");
 		}
 
 		if (_theTransaction != null)
@@ -214,7 +221,8 @@
 				break;
 			default:
 				throw new IllegalStateException(
-						jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+						jtaLogger.logMesg
+								.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
 			}
 
 			/*
@@ -242,19 +250,25 @@
 				throw new javax.transaction.HeuristicMixedException();
 			case ActionStatus.H_ROLLBACK:
 			case ActionStatus.ABORTED:
-				RollbackException rollbackException = new RollbackException(jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted"));
-				if(_theTransaction.getDeferredThrowable() != null) {
-					rollbackException.initCause(_theTransaction.getDeferredThrowable());
+				RollbackException rollbackException = new RollbackException(
+						jtaLogger.logMesg
+								.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted"));
+				if (_theTransaction.getDeferredThrowable() != null)
+				{
+					rollbackException.initCause(_theTransaction
+							.getDeferredThrowable());
 				}
 				throw rollbackException;
 			default:
 				throw new IllegalStateException(
-						jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.invalidstate"));
+						jtaLogger.logMesg
+								.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.invalidstate"));
 			}
 		}
 		else
 			throw new IllegalStateException(
-					jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+					jtaLogger.logMesg
+							.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
 	}
 
 	/**
@@ -275,7 +289,10 @@
 	{
 		if (jtaLogger.logger.isDebugEnabled())
 		{
-			jtaLogger.logger.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC, com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA, "TransactionImple.rollback");
+			jtaLogger.logger.debug(DebugLevel.FUNCTIONS,
+					VisibilityLevel.VIS_PUBLIC,
+					com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA,
+					"TransactionImple.rollback");
 		}
 
 		if (_theTransaction != null)
@@ -287,7 +304,8 @@
 				break;
 			default:
 				throw new IllegalStateException(
-						jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+						jtaLogger.logMesg
+								.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
 			}
 
 			/*
@@ -302,7 +320,8 @@
 			{
 				if (jtaLogger.loggerI18N.isWarnEnabled())
 				{
-					jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.endsuspendfailed1");
+					jtaLogger.loggerI18N
+							.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.endsuspendfailed1");
 				}
 			}
 
@@ -319,17 +338,20 @@
 				break;
 			default:
 				throw new IllegalStateException(
-						jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.rollbackstatus")
+						jtaLogger.logMesg
+								.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.rollbackstatus")
 								+ ActionStatus.stringForm(outcome));
 			}
 
 			if (endSuspendedFailed)
 				throw new IllegalStateException(
-						jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.endsuspendfailed2"));
+						jtaLogger.logMesg
+								.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.endsuspendfailed2"));
 		}
 		else
 			throw new IllegalStateException(
-					jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+					jtaLogger.logMesg
+							.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
 	}
 
 	public void setRollbackOnly() throws java.lang.IllegalStateException,
@@ -337,25 +359,42 @@
 	{
 		if (jtaLogger.logger.isDebugEnabled())
 		{
-			jtaLogger.logger.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC, com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA, "TransactionImple.setRollbackOnly");
+			jtaLogger.logger.debug(DebugLevel.FUNCTIONS,
+					VisibilityLevel.VIS_PUBLIC,
+					com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA,
+					"TransactionImple.setRollbackOnly");
 		}
 
 		if (_theTransaction != null)
 		{
 			if (!_theTransaction.preventCommit())
-				throw new IllegalStateException(
-						jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+			{
+				switch (_theTransaction.status())
+				{
+				case ActionStatus.ABORTED:
+				case ActionStatus.ABORTING:
+					break;
+				default:
+					throw new IllegalStateException(
+							jtaLogger.logMesg
+									.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+				}
+			}
 		}
 		else
 			throw new IllegalStateException(
-					jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+					jtaLogger.logMesg
+							.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
 	}
 
-	public int getStatus () throws javax.transaction.SystemException
+	public int getStatus() throws javax.transaction.SystemException
 	{
 		if (jtaLogger.logger.isDebugEnabled())
 		{
-			jtaLogger.logger.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC, com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA, "TransactionImple.getStatus");
+			jtaLogger.logger.debug(DebugLevel.FUNCTIONS,
+					VisibilityLevel.VIS_PUBLIC,
+					com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA,
+					"TransactionImple.getStatus");
 		}
 
 		int status = javax.transaction.Status.STATUS_NO_TRANSACTION;
@@ -383,24 +422,30 @@
 	{
 		if (jtaLogger.logger.isDebugEnabled())
 		{
-			jtaLogger.logger.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC, com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA, "TransactionImple.registerSynchronization");
+			jtaLogger.logger.debug(DebugLevel.FUNCTIONS,
+					VisibilityLevel.VIS_PUBLIC,
+					com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA,
+					"TransactionImple.registerSynchronization");
 		}
 
 		if (sync == null)
 		{
 			throw new javax.transaction.SystemException(
 					"TransactionImple.registerSynchronization - "
-							+ jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.nullparam"));
+							+ jtaLogger.logMesg
+									.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.nullparam"));
 		}
 
 		registerSynchronizationImple(new SynchronizationImple(sync, false));
 	}
 
-	// package-private method also for use by TransactionSynchronizationRegistryImple
-	/*
+	// package-private method also for use by
+	// TransactionSynchronizationRegistryImple
+	/**
 	 * @message com.arjuna.ats.internal.jta.transaction.arjunacore.syncwhenaborted
-	 * 			[com.arjuna.ats.internal.jta.transaction.arjunacore.syncwhenaborted]
-	 * 			Can't register synchronization because the transaction is in aborted state
+	 *          [com.arjuna.ats.internal.jta.transaction.arjunacore.syncwhenaborted]
+	 *          Can't register synchronization because the transaction is in
+	 *          aborted state
 	 */
 	void registerSynchronizationImple(SynchronizationImple synchronizationImple)
 			throws javax.transaction.RollbackException,
@@ -416,19 +461,23 @@
 				{
 				case ActionStatus.ABORTED:
 					throw new javax.transaction.RollbackException(
-							jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.syncwhenaborted"));
+							jtaLogger.logMesg
+									.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.syncwhenaborted"));
 				case ActionStatus.CREATED:
 					throw new IllegalStateException(
-							jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+							jtaLogger.logMesg
+									.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
 				default:
 					throw new IllegalStateException(
-							jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.syncsnotallowed"));
+							jtaLogger.logMesg
+									.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.syncsnotallowed"));
 				}
 			}
 		}
 		else
 			throw new IllegalStateException(
-					jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+					jtaLogger.logMesg
+							.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
 	}
 
 	/**
@@ -465,7 +514,8 @@
 	 *          caught: {1} for {2}
 	 * @message com.arjuna.ats.internal.jta.transaction.arjunacore.elistwhenmarkedrollback
 	 *          [com.arjuna.ats.internal.jta.transaction.arjunacore.elistwhenmarkedrollback]
-	 * 			Can't enlist the resource because the transaction is marked for rollback
+	 *          Can't enlist the resource because the transaction is marked for
+	 *          rollback
 	 */
 	public boolean enlistResource(XAResource xaRes, Object[] params)
 			throws RollbackException, IllegalStateException,
@@ -473,27 +523,33 @@
 	{
 		if (jtaLogger.logger.isDebugEnabled())
 		{
-			jtaLogger.logger.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC, com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA, "TransactionImple.enlistResource ( "
-					+ xaRes + " )");
+			jtaLogger.logger.debug(DebugLevel.FUNCTIONS,
+					VisibilityLevel.VIS_PUBLIC,
+					com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA,
+					"TransactionImple.enlistResource ( " + xaRes + " )");
 		}
 
 		if (xaRes == null)
 			throw new javax.transaction.SystemException(
 					"TransactionImple.enlistResource - "
-							+ jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.nullres"));
+							+ jtaLogger.logMesg
+									.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.nullres"));
 
 		int status = getStatus();
 
 		switch (status)
 		{
 		case javax.transaction.Status.STATUS_MARKED_ROLLBACK:
-			throw new RollbackException("TransactionImple.enlistResource - "
-							+ jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.nullres"));
+			throw new RollbackException(
+					"TransactionImple.enlistResource - "
+							+ jtaLogger.logMesg
+									.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.nullres"));
 		case javax.transaction.Status.STATUS_ACTIVE:
 			break;
 		default:
 			throw new IllegalStateException(
-					jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+					jtaLogger.logMesg
+							.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
 		}
 
 		XAModifier theModifier = null;
@@ -555,7 +611,8 @@
 						 */
 
 						int xaStartResume = ((theModifier == null) ? XAResource.TMRESUME
-								: theModifier.xaStartParameters(XAResource.TMRESUME));
+								: theModifier
+										.xaStartParameters(XAResource.TMRESUME));
 
 						xaRes.start(info.xid(), xaStartResume);
 
@@ -584,7 +641,8 @@
 						 */
 
 						int xaStartJoin = ((theModifier == null) ? XAResource.TMJOIN
-								: theModifier.xaStartParameters(XAResource.TMJOIN));
+								: theModifier
+										.xaStartParameters(XAResource.TMJOIN));
 
 						xaRes.start(info.xid(), xaStartJoin);
 
@@ -599,7 +657,8 @@
 
 						throw new IllegalStateException(
 								"TransactionImple.enlistResource - "
-										+ jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.illresstate")
+										+ jtaLogger.logMesg
+												.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.illresstate")
 										+ ":" + info.getState());
 					}
 					}
@@ -616,15 +675,19 @@
 
 				if (jtaLogger.loggerI18N.isWarnEnabled())
 				{
-					jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.enlisterror", new Object[]
-					{ "TransactionImple.enlistResource", XAHelper.printXAErrorCode(exp) });
+					jtaLogger.loggerI18N
+							.warn(
+									"com.arjuna.ats.internal.jta.transaction.arjunacore.enlisterror",
+									new Object[]
+									{ "TransactionImple.enlistResource",
+											XAHelper.printXAErrorCode(exp) });
 				}
 
 				return false;
 			}
 
-			//	    if (threadIsActive(xaRes))
-			//		return true; // this thread has already registered a resource for
+			// if (threadIsActive(xaRes))
+			// return true; // this thread has already registered a resource for
 			// this db
 
 			/*
@@ -649,7 +712,7 @@
 					if (_resources.size() == 0)// first ever, so no need for
 					// branch
 					{
-						//branchRequired = false;
+						// branchRequired = false;
 						branchRequired = true;
 					}
 				}
@@ -676,29 +739,37 @@
 				{
 					try
 					{
-                        if (_xaTransactionTimeoutEnabled)
-                        {
-                            int timeout = _theTransaction.getTimeout();
+						if (_xaTransactionTimeoutEnabled)
+						{
+							int timeout = _theTransaction.getTimeout();
 
-                            if (timeout > 0)
-                            {
-                                try
-                                {
-                                    xaRes.setTransactionTimeout(timeout);
-                                }
-                                catch (XAException te)
-                                {
-                                    if (jtaLogger.loggerI18N.isWarnEnabled())
-                                    {
-                                        jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.timeouterror", new Object[]
-                                        { "TransactionImple.enlistResource", XAHelper.printXAErrorCode(te), xid });
-                                    }
-                                }
-                            }
-                        }
+							if (timeout > 0)
+							{
+								try
+								{
+									xaRes.setTransactionTimeout(timeout);
+								}
+								catch (XAException te)
+								{
+									if (jtaLogger.loggerI18N.isWarnEnabled())
+									{
+										jtaLogger.loggerI18N
+												.warn(
+														"com.arjuna.ats.internal.jta.transaction.arjunacore.timeouterror",
+														new Object[]
+														{
+																"TransactionImple.enlistResource",
+																XAHelper
+																		.printXAErrorCode(te),
+																xid });
+									}
+								}
+							}
+						}
 
 						int xaStartNormal = ((theModifier == null) ? XAResource.TMNOFLAGS
-								: theModifier.xaStartParameters(XAResource.TMNOFLAGS));
+								: theModifier
+										.xaStartParameters(XAResource.TMNOFLAGS));
 
 						xaRes.start(xid, xaStartNormal);
 
@@ -727,8 +798,15 @@
 
 							if (jtaLogger.loggerI18N.isWarnEnabled())
 							{
-								jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.enliststarterror", new Object[]
-								{ "TransactionImple.enlistResource", XAHelper.printXAErrorCode(e), xid });
+								jtaLogger.loggerI18N
+										.warn(
+												"com.arjuna.ats.internal.jta.transaction.arjunacore.enliststarterror",
+												new Object[]
+												{
+														"TransactionImple.enlistResource",
+														XAHelper
+																.printXAErrorCode(e),
+														xid });
 							}
 
 							markRollbackOnly();
@@ -740,15 +818,23 @@
 						{
 							if (jtaLogger.loggerI18N.isWarnEnabled())
 							{
-								jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.enliststarterror", new Object[]
-                                { "TransactionImple.enlistResource", XAHelper.printXAErrorCode(e), xid });
+								jtaLogger.loggerI18N
+										.warn(
+												"com.arjuna.ats.internal.jta.transaction.arjunacore.enliststarterror",
+												new Object[]
+												{
+														"TransactionImple.enlistResource",
+														XAHelper
+																.printXAErrorCode(e),
+														xid });
 							}
 
 							markRollbackOnly();
 
 							throw new javax.transaction.SystemException(
 									"TransactionImple.enlistResource - XAResource.start "
-											+ jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.couldnotregister")
+											+ jtaLogger.logMesg
+													.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.couldnotregister")
 											+ ": " + xid);
 						}
 					}
@@ -780,8 +866,14 @@
 				{
 					if (jtaLogger.loggerI18N.isWarnEnabled())
 					{
-						jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.xastart", new Object[]
-						{ "TransactionImple.enlistResource - xa_start ", XAHelper.printXAErrorCode(ex), xid });
+						jtaLogger.loggerI18N
+								.warn(
+										"com.arjuna.ats.internal.jta.transaction.arjunacore.xastart",
+										new Object[]
+										{
+												"TransactionImple.enlistResource - xa_start ",
+												XAHelper.printXAErrorCode(ex),
+												xid });
 					}
 
 					markRollbackOnly();
@@ -804,40 +896,51 @@
 			 * gotten this far!
 			 */
 
-			final AbstractRecord record ;
-                        if ((xaRes instanceof LastResourceCommitOptimisation) ||
-                                ((LAST_RESOURCE_OPTIMISATION_INTERFACE != null) && LAST_RESOURCE_OPTIMISATION_INTERFACE.isInstance(xaRes)))
+			final AbstractRecord record;
+			if ((xaRes instanceof LastResourceCommitOptimisation)
+					|| ((LAST_RESOURCE_OPTIMISATION_INTERFACE != null) && LAST_RESOURCE_OPTIMISATION_INTERFACE
+							.isInstance(xaRes)))
 			{
-                            if (lastResourceCount == 1)
-                            {
-                                if (jtaLogger.loggerI18N.isWarnEnabled())
-                                {
-                                    if (ALLOW_MULTIPLE_LAST_RESOURCES)
-                                    {
-                                        jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.multipleWarning", new Object[] {xaRes});
-                                    }
-                                    else
-                                    {
-                                        jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.disallow", new Object[] {xaRes});
-                                    }
-                                }
-                            }
+				if (lastResourceCount == 1)
+				{
+					if (jtaLogger.loggerI18N.isWarnEnabled())
+					{
+						if (ALLOW_MULTIPLE_LAST_RESOURCES)
+						{
+							jtaLogger.loggerI18N
+									.warn(
+											"com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.multipleWarning",
+											new Object[]
+											{ xaRes });
+						}
+						else
+						{
+							jtaLogger.loggerI18N
+									.warn(
+											"com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.disallow",
+											new Object[]
+											{ xaRes });
+						}
+					}
+				}
 
-                            if ((lastResourceCount++ == 0) || ALLOW_MULTIPLE_LAST_RESOURCES)
-                            {
-                                record = new LastResourceRecord(new XAOnePhaseResource(xaRes, xid, params)) ;
-                            }
-                            else
-                            {
-                                record = null ;
-                            }
+				if ((lastResourceCount++ == 0) || ALLOW_MULTIPLE_LAST_RESOURCES)
+				{
+					record = new LastResourceRecord(new XAOnePhaseResource(
+							xaRes, xid, params));
+				}
+				else
+				{
+					record = null;
+				}
 			}
 			else
 			{
-                            record = new XAResourceRecord(this, xaRes, xid, params);
+				record = new XAResourceRecord(this, xaRes, xid, params);
 			}
 
-			if ((record == null) || (_theTransaction.add(record) != AddOutcome.AR_ADDED))
+			if ((record == null)
+					|| (_theTransaction.add(record) != AddOutcome.AR_ADDED))
 			{
 				markRollbackOnly();
 
@@ -887,14 +990,17 @@
 	{
 		if (jtaLogger.logger.isDebugEnabled())
 		{
-			jtaLogger.logger.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC, com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA, "TransactionImple.delistResource ( "
-					+ xaRes + " )");
+			jtaLogger.logger.debug(DebugLevel.FUNCTIONS,
+					VisibilityLevel.VIS_PUBLIC,
+					com.arjuna.ats.jta.logging.FacilityCode.FAC_JTA,
+					"TransactionImple.delistResource ( " + xaRes + " )");
 		}
 
 		if (xaRes == null)
 			throw new javax.transaction.SystemException(
 					"TransactionImple.delistResource - "
-							+ jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.nullres"));
+							+ jtaLogger.logMesg
+									.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.nullres"));
 
 		int status = getStatus();
 
@@ -906,7 +1012,8 @@
 			break;
 		default:
 			throw new IllegalStateException(
-					jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
+					jtaLogger.logMesg
+							.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
 		}
 
 		TxInfo info = null;
@@ -925,8 +1032,11 @@
 			{
 				if (jtaLogger.loggerI18N.isWarnEnabled())
 				{
-					jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.unknownresource", new Object[]
-					{ "TransactionImple.delistResource" });
+					jtaLogger.loggerI18N
+							.warn(
+									"com.arjuna.ats.internal.jta.transaction.arjunacore.unknownresource",
+									new Object[]
+									{ "TransactionImple.delistResource" });
 				}
 
 				return false;
@@ -1016,7 +1126,8 @@
 
 							throw new IllegalStateException(
 									"TransactionImple.delistResource - "
-											+ jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.ressuspended"));
+											+ jtaLogger.logMesg
+													.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.ressuspended"));
 						}
 						else
 						{
@@ -1036,7 +1147,8 @@
 					if (!optimizedRollback)
 						throw new IllegalStateException(
 								"TransactionImple.delistResource - "
-										+ jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.illresstate")
+										+ jtaLogger.logMesg
+												.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.illresstate")
 										+ ":" + info.getState());
 				}
 				}
@@ -1063,8 +1175,12 @@
 
 			if (jtaLogger.loggerI18N.isWarnEnabled())
 			{
-				jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.delistresource", new Object[]
-				{ "TransactionImple.delistResource", XAHelper.printXAErrorCode(exp) });
+				jtaLogger.loggerI18N
+						.warn(
+								"com.arjuna.ats.internal.jta.transaction.arjunacore.delistresource",
+								new Object[]
+								{ "TransactionImple.delistResource",
+										XAHelper.printXAErrorCode(exp) });
 			}
 
 			return false;
@@ -1073,8 +1189,11 @@
 		{
 			if (jtaLogger.loggerI18N.isWarnEnabled())
 			{
-				jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.delistgeneral", new Object[]
-				{ "TransactionImple.delistResource", e });
+				jtaLogger.loggerI18N
+						.warn(
+								"com.arjuna.ats.internal.jta.transaction.arjunacore.delistgeneral",
+								new Object[]
+								{ "TransactionImple.delistResource", e });
 			}
 
 			/*
@@ -1127,14 +1246,14 @@
 	{
 		TransactionImple tx = null;
 
-        final BasicAction current = BasicAction.Current() ;
-        if (current != null)
-        {
-            final Uid txid = current.get_uid();
+		final BasicAction current = BasicAction.Current();
+		if (current != null)
+		{
+			final Uid txid = current.get_uid();
 
 			tx = (TransactionImple) _transactions.get(txid);
-            if (tx == null)
-                tx = new TransactionImple(current) ;
+			if (tx == null)
+				tx = new TransactionImple(current);
 		}
 
 		return tx;
@@ -1156,38 +1275,42 @@
 	}
 
 	// get a key-value pair from a transaction specific Map
-	Object getTxLocalResource(Object key) {
-		if(txLocalResources == null) {
+	Object getTxLocalResource(Object key)
+	{
+		if (txLocalResources == null)
+		{
 			return null;
 		}
 		return txLocalResources.get(key);
 	}
 
 	// store a key-value pair in the scope of the transaction.
-	void putTxLocalResource(Object key, Object value) {
-		if(txLocalResources == null) {
+	void putTxLocalResource(Object key, Object value)
+	{
+		if (txLocalResources == null)
+		{
 			txLocalResources = Collections.synchronizedMap(new HashMap());
 		}
 		txLocalResources.put(key, value);
 	}
 
-	protected TransactionImple ()
+	protected TransactionImple()
 	{
 		this(null);
 	}
 
 	/**
-	 * Create a new TransactionImple representation of a specified
-	 * transaction.
+	 * Create a new TransactionImple representation of a specified transaction.
 	 */
 
-	protected TransactionImple (BasicAction curr)
+	protected TransactionImple(BasicAction curr)
 	{
 		try
 		{
 			if (curr == null)
 			{
-				_theTransaction = (com.arjuna.ats.arjuna.AtomicAction) BasicAction.Current();
+				_theTransaction = (com.arjuna.ats.arjuna.AtomicAction) BasicAction
+						.Current();
 			}
 			else
 				_theTransaction = (com.arjuna.ats.arjuna.AtomicAction) curr;
@@ -1196,7 +1319,8 @@
 		{
 			if (jtaLogger.loggerI18N.isWarnEnabled())
 			{
-				jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.notatomicaction");
+				jtaLogger.loggerI18N
+						.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.notatomicaction");
 			}
 		}
 
@@ -1212,7 +1336,7 @@
 		}
 
 		_suspendCount = 0;
-		_xaTransactionTimeoutEnabled = getXATransactionTimeoutEnabled() ;
+		_xaTransactionTimeoutEnabled = getXATransactionTimeoutEnabled();
 	}
 
 	final com.arjuna.ats.arjuna.AtomicAction getAtomicAction()
@@ -1223,10 +1347,7 @@
 	/**
 	 * Does the same as commit, but also changes the thread-to-tx association.
 	 */
-	/* @message com.arjuna.ats.internal.jta.transaction.arjunacore.ressuspended
-	 *          [com.arjuna.ats.internal.jta.transaction.arjunacore.ressuspended]
-	 *          resource already suspended.
-	 */
+
 	protected void commitAndDisassociate()
 			throws javax.transaction.RollbackException,
 			javax.transaction.HeuristicMixedException,
@@ -1291,14 +1412,14 @@
 	}
 
 	/**
-	 * If this is an imported transaction (via JCA) then this will be the Xid
-	 * we are pretending to be. Otherwise, it will be null.
+	 * If this is an imported transaction (via JCA) then this will be the Xid we
+	 * are pretending to be. Otherwise, it will be null.
 	 *
 	 * @return null if we are a local transaction, a valid Xid if we have been
-	 * imported.
+	 *         imported.
 	 */
 
-	protected Xid baseXid ()
+	protected Xid baseXid()
 	{
 		return null;
 	}
@@ -1407,7 +1528,8 @@
 				{
 					if (jtaLogger.loggerI18N.isWarnEnabled())
 					{
-						jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.xaenderror");
+						jtaLogger.loggerI18N
+								.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.xaenderror");
 					}
 
 					result = false;
@@ -1479,8 +1601,11 @@
 		{
 			if (jtaLogger.loggerI18N.isWarnEnabled())
 			{
-				jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.threadexception", new Object[]
-				{ e });
+				jtaLogger.loggerI18N
+						.warn(
+								"com.arjuna.ats.internal.jta.transaction.arjunacore.threadexception",
+								new Object[]
+								{ e });
 			}
 
 			throw new com.arjuna.ats.arjuna.exceptions.FatalError(e.toString());
@@ -1542,8 +1667,12 @@
 		{
 			if (jtaLogger.loggerI18N.isWarnEnabled())
 			{
-				jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.newtmerror", new Object[]
-				{ "TransactionImple.isNewRM", XAHelper.printXAErrorCode(ex) });
+				jtaLogger.loggerI18N
+						.warn(
+								"com.arjuna.ats.internal.jta.transaction.arjunacore.newtmerror",
+								new Object[]
+								{ "TransactionImple.isNewRM",
+										XAHelper.printXAErrorCode(ex) });
 			}
 
 			throw new com.arjuna.ats.arjuna.exceptions.FatalError(ex.toString());
@@ -1552,8 +1681,11 @@
 		{
 			if (jtaLogger.loggerI18N.isWarnEnabled())
 			{
-				jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.newtmerror", new Object[]
-				{ e });
+				jtaLogger.loggerI18N
+						.warn(
+								"com.arjuna.ats.internal.jta.transaction.arjunacore.newtmerror",
+								new Object[]
+								{ e });
 			}
 
 			throw new com.arjuna.ats.arjuna.exceptions.FatalError(e.toString());
@@ -1588,7 +1720,7 @@
 
 	/*
 	 * This method calls setRollbackOnly and catches any exceptions it may throw
-	 * and issues a warning. We use this in places wherew we need to force the
+	 * and issues a warning. We use this in places where we need to force the
 	 * outcome of the transaction but already have an exception to throw back to
 	 * the application, so a failure here will only be masked.
 	 */
@@ -1601,15 +1733,20 @@
 
 	private final void markRollbackOnly()
 	{
-		if (_theTransaction != null)
+		try
 		{
-			if (!_theTransaction.preventCommit())
+			setRollbackOnly();
+		}
+		catch (Exception ex)
+		{
+			if (jtaLogger.loggerI18N.isWarnEnabled())
 			{
-				if (jtaLogger.loggerI18N.isWarnEnabled())
-				{
-					jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.markrollback", new Object[]
-					{ "TransactionImple.markRollbackOnly", _theTransaction });
-				}
+				jtaLogger.loggerI18N
+						.warn(
+								"com.arjuna.ats.internal.jta.transaction.arjunacore.markrollback",
+								new Object[]
+								{ "TransactionImple.markRollbackOnly",
+										_theTransaction });
 			}
 		}
 	}
@@ -1630,73 +1767,93 @@
 
 	private static boolean getXATransactionTimeoutEnabled()
 	{
-		final Boolean xaTransactionTimeoutEnabled = Configuration.getXATransactionTimeoutEnabled() ;
+		final Boolean xaTransactionTimeoutEnabled = Configuration
+				.getXATransactionTimeoutEnabled();
 		if (xaTransactionTimeoutEnabled != null)
 		{
-			return xaTransactionTimeoutEnabled.booleanValue() ;
+			return xaTransactionTimeoutEnabled.booleanValue();
 		}
-		return XA_TRANSACTION_TIMEOUT_ENABLED ;
+		return XA_TRANSACTION_TIMEOUT_ENABLED;
 	}
 
 	protected com.arjuna.ats.arjuna.AtomicAction _theTransaction;
 
 	private Hashtable _resources;
+
 	private Hashtable _duplicateResources;
+
 	private int _suspendCount;
+
 	private final boolean _xaTransactionTimeoutEnabled;
+
 	private Map txLocalResources;
 
-        /**
-         * Count of last resources seen in this transaction.
-         */
-        private int lastResourceCount ;
+	/**
+	 * Count of last resources seen in this transaction.
+	 */
+	private int lastResourceCount;
 
-        /**
-         * Do we allow multiple last resources?
-         */
-        private static final boolean ALLOW_MULTIPLE_LAST_RESOURCES ;
+	/**
+	 * Do we allow multiple last resources?
+	 */
+	private static final boolean ALLOW_MULTIPLE_LAST_RESOURCES;
 
-	private static final boolean XA_TRANSACTION_TIMEOUT_ENABLED ;
-	private static final Class LAST_RESOURCE_OPTIMISATION_INTERFACE ;
+	private static final boolean XA_TRANSACTION_TIMEOUT_ENABLED;
 
+	private static final Class LAST_RESOURCE_OPTIMISATION_INTERFACE;
+
 	static
 	{
-		final String xaTransactionTimeoutEnabled = jtaPropertyManager.propertyManager.getProperty(Environment.XA_TRANSACTION_TIMEOUT_ENABLED) ;
+		final String xaTransactionTimeoutEnabled = jtaPropertyManager.propertyManager
+				.getProperty(Environment.XA_TRANSACTION_TIMEOUT_ENABLED);
 		if (xaTransactionTimeoutEnabled != null)
 		{
-			XA_TRANSACTION_TIMEOUT_ENABLED = Boolean.valueOf(xaTransactionTimeoutEnabled).booleanValue() ;
+			XA_TRANSACTION_TIMEOUT_ENABLED = Boolean.valueOf(
+					xaTransactionTimeoutEnabled).booleanValue();
 		}
 		else
 		{
-			XA_TRANSACTION_TIMEOUT_ENABLED = true ;
+			XA_TRANSACTION_TIMEOUT_ENABLED = true;
 		}
-		final String lastResourceOptimisationInterfaceName = jtaPropertyManager.propertyManager.getProperty(Environment.LAST_RESOURCE_OPTIMISATION_INTERFACE) ;
-		Class lastResourceOptimisationInterface = null ;
+		final String lastResourceOptimisationInterfaceName = jtaPropertyManager.propertyManager
+				.getProperty(Environment.LAST_RESOURCE_OPTIMISATION_INTERFACE);
+		Class lastResourceOptimisationInterface = null;
 		if (lastResourceOptimisationInterfaceName != null)
 		{
 			try
 			{
-				lastResourceOptimisationInterface = Thread.currentThread().getContextClassLoader().loadClass(lastResourceOptimisationInterfaceName) ;
+				lastResourceOptimisationInterface = Thread.currentThread()
+						.getContextClassLoader().loadClass(
+								lastResourceOptimisationInterfaceName);
 			}
 			catch (final Throwable th)
 			{
 				if (jtaLogger.loggerI18N.isWarnEnabled())
 				{
-					jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.lastResourceOptimisationInterface",
-						new Object[] {lastResourceOptimisationInterfaceName}, th);
+					jtaLogger.loggerI18N
+							.warn(
+									"com.arjuna.ats.internal.jta.transaction.arjunacore.lastResourceOptimisationInterface",
+									new Object[]
+									{ lastResourceOptimisationInterfaceName },
+									th);
 				}
 			}
 		}
-		LAST_RESOURCE_OPTIMISATION_INTERFACE = lastResourceOptimisationInterface ;
+		LAST_RESOURCE_OPTIMISATION_INTERFACE = lastResourceOptimisationInterface;
 
-                final String allowMultipleLastResources = jtaPropertyManager.getPropertyManager().getProperty(Environment.ALLOW_MULTIPLE_LAST_RESOURCES) ;
-                ALLOW_MULTIPLE_LAST_RESOURCES = (allowMultipleLastResources == null ? false : Boolean.valueOf(allowMultipleLastResources).booleanValue()) ;
-                if (ALLOW_MULTIPLE_LAST_RESOURCES && jtaLogger.loggerI18N.isWarnEnabled())
-                {
-                    jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.startupWarning");
-                }
+		final String allowMultipleLastResources = jtaPropertyManager
+				.getPropertyManager().getProperty(
+						Environment.ALLOW_MULTIPLE_LAST_RESOURCES);
+		ALLOW_MULTIPLE_LAST_RESOURCES = (allowMultipleLastResources == null ? false
+				: Boolean.valueOf(allowMultipleLastResources).booleanValue());
+		if (ALLOW_MULTIPLE_LAST_RESOURCES
+				&& jtaLogger.loggerI18N.isWarnEnabled())
+		{
+			jtaLogger.loggerI18N
+					.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.startupWarning");
+		}
 	}
 
-    private static ConcurrentHashMap _transactions = new ConcurrentHashMap();
+	private static ConcurrentHashMap _transactions = new ConcurrentHashMap();
 
 }

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/jca/SubordinateAtomicAction.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/jca/SubordinateAtomicAction.java	2007-06-17 10:58:29 UTC (rev 12637)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/jca/SubordinateAtomicAction.java	2007-06-17 11:27:10 UTC (rev 12638)
@@ -52,9 +52,7 @@
 
 	public SubordinateAtomicAction ()
 	{
-		super();
-		
-		start();
+		super();  // does start for us
 	}
 
 	public SubordinateAtomicAction (Uid actId)
@@ -66,10 +64,8 @@
 	
 	public SubordinateAtomicAction (int timeout, Xid xid)
 	{
-		super(timeout);
+		super(timeout); // implicit start (done in base class)
 		
-		start();
-		
 		_theXid = new XidImple(xid);
 	}
 	

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTS/jts/classes/com/arjuna/ats/jts/extensions/AtomicTransaction.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTS/jts/classes/com/arjuna/ats/jts/extensions/AtomicTransaction.java	2007-06-17 10:58:29 UTC (rev 12637)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/ArjunaJTS/jts/classes/com/arjuna/ats/jts/extensions/AtomicTransaction.java	2007-06-17 11:27:10 UTC (rev 12638)
@@ -751,7 +751,8 @@
 	}
 
 	/**
-	 * Allow action commit to be supressed.
+	 * Allow action commit to be supressed. Although the OTS would require an InactiveException
+	 * if the transaction is not active, we ignore that via this route.
 	 */
 
 	public void rollbackOnly () throws SystemException, NoTransaction

Modified: labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/atsintegration/classes/com/arjuna/ats/internal/jbossatx/jta/jca/XATerminator.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/atsintegration/classes/com/arjuna/ats/internal/jbossatx/jta/jca/XATerminator.java	2007-06-17 10:58:29 UTC (rev 12637)
+++ labs/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/atsintegration/classes/com/arjuna/ats/internal/jbossatx/jta/jca/XATerminator.java	2007-06-17 11:27:10 UTC (rev 12638)
@@ -65,7 +65,7 @@
  * @message com.arjuna.ats.jbossatx.jta.jca.inactive [message
  *          com.arjuna.ats.jbossatx.jta.jca.inactive] Transaction is inactive!
  * @message com.arjuna.ats.jbossatx.jta.jca.completing [message
- *          com.arjuna.ats.jbossatx.jta.jca.completion] Transaction is
+ *          com.arjuna.ats.jbossatx.jta.jca.completing] Transaction is
  *          completing!
  * @message com.arjuna.ats.jbossatx.jta.jca.unknown [message
  *          com.arjuna.ats.jbossatx.jta.jca.unknown] Unexpected error!
@@ -91,7 +91,7 @@
 	 *            the lifetime of the transaction.
 	 * 
 	 * @throws WorkCompletedException
-	 *             thrown if the work cannot be associated with the transactin.
+	 *             thrown if the work cannot be associated with the transaction.
 	 * 
 	 * 
 	 */




More information about the jboss-svn-commits mailing list