[jboss-svn-commits] JBL Code SVN: r29701 - in labs/jbosstm/trunk: ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common and 29 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 20 12:40:38 EDT 2009


Author: mark.little at jboss.com
Date: 2009-10-20 12:40:36 -0400 (Tue, 20 Oct 2009)
New Revision: 29701

Added:
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/common/
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/common/UidHelper.java
Modified:
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/DisposeRecord.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/StateManager.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Uid.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/AbstractRecord.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/ActionHierarchy.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStoreIterator.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/ActionStatusService.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusConnectionManager.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/state/InputObjectState.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/state/OutputObjectState.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/OTM.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/ObjectStateQuery.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/ObjectStoreMonitor.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/TransactionMonitor.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/utils/Utility.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCActionStore.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCImple.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/LogStore.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/AtomicActionRecoveryModule.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionScanner.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/TransactionStatusConnector.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/XATxConverter.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/AllObjUidsTest.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/RemoveCachedTest.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/CrashAbstractRecordImpl.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/LogMoveTest.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/RecoverAtomicActionTest.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/TransactionStatusConnectorTest.java
   labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/frames/BrowserFrame.java
   labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/UidInfo.java
   labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/recovery/TORecoveryModule.java
   labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryResourceImple.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryResourceManagerImple.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/XATerminatorImple.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/recovery/XARecoveryResource.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/recovery/XARecoveryResourceManager.java
   labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/InFlightTransactionPseudoStore.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/XATerminatorImple.java
   labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/TransactionFactoryImple.java
   labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/contact/ExpiredContactScanner.java
   labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java
   labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionRecoveryModule.java
   labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ExtendedResourceRecord.java
   labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ResourceRecord.java
   labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer01Impls/AITMatrixImpl03.java
   labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer01Impls/AITMatrixImpl04.java
   labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer02Impls/AITMatrixImpl03.java
   labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer02Impls/AITMatrixImpl04.java
   labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/junit/testgroup/TestGroup_crashrecovery05_2.java
Log:
https://jira.jboss.org/jira/browse/JBTM-522 and https://jira.jboss.org/jira/browse/JBTM-623

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/DisposeRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/DisposeRecord.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/DisposeRecord.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -46,6 +46,8 @@
 import com.arjuna.ats.arjuna.state.*;
 import com.arjuna.ats.arjuna.gandiva.ClassName;
 import com.arjuna.ats.arjuna.objectstore.ObjectStoreType;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.io.PrintWriter;
 
 import java.io.IOException;
@@ -239,7 +241,7 @@
 		    os.packInt(store.typeIs());
 		    store.pack(os);
 				
-		    objectUid.pack(os);
+		    UidHelper.packInto(objectUid, os);
 		    os.packString(typeName);
 		}
 		catch (IOException e)
@@ -277,7 +279,7 @@
 		store = new ObjectStore(ObjectStoreType.typeToClassName(objStoreType));
 		store.unpack(os);
 			
-		objectUid.unpack(os);
+		objectUid = UidHelper.unpackFrom(os);
 		typeName = os.unpackString();
 	    }
 	    else

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/StateManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/StateManager.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/StateManager.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -47,6 +47,8 @@
 import com.arjuna.ats.arjuna.logging.FacilityCode;
 
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.io.IOException;
 
 /**
@@ -702,11 +704,11 @@
 
 	    if (txId != null)
 	    {
-		txId.pack(os);
-		processUid.pack(os);
+	        UidHelper.packInto(txId, os);
+	        UidHelper.packInto(processUid, os);
 	    }
 	    else
-		Uid.nullUid().pack(os);
+	        UidHelper.packInto(Uid.nullUid(), os);
 	}
 	catch (IOException ex)
 	{
@@ -737,14 +739,14 @@
 
 	    if (myState.equals(StateManager.marker))
 	    {
-		txId.unpack(os);
+	        txId = UidHelper.unpackFrom(os);
 
 		/*
 		 * Is there going to be a Uid to unpack?
 		 */
 
 		if (!txId.equals(Uid.nullUid()))
-		    processUid.unpack(os);
+		    processUid = UidHelper.unpackFrom(os);
 	    }
 	    else
 	    {

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Uid.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Uid.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Uid.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -31,8 +31,6 @@
 
 package com.arjuna.ats.arjuna.common;
 
-import com.arjuna.ats.arjuna.state.InputBuffer;
-import com.arjuna.ats.arjuna.state.OutputBuffer;
 import com.arjuna.ats.arjuna.utils.Utility;
 
 import java.lang.Cloneable;
@@ -49,7 +47,7 @@
 import com.arjuna.ats.arjuna.logging.tsLogger;
 
 /**
- * Implements a unique identity class.
+ * Implements a unique identity class. Since 4.9 each instance is immutable.
  *
  * @author Mark Little (mark at arjuna.com)
  * @version $Id: Uid.java 2342 2006-03-30 13:06:17Z  $
@@ -80,6 +78,9 @@
  *          [com.arjuna.ats.arjuna.common.Uid_9] - Invalid Uid object.
  * @message com.arjuna.ats.arjuna.common.Uid_10
  *          [com.arjuna.ats.arjuna.common.Uid_10] - Cannot unpack into nullUid!
+ * @message com.arjuna.ats.arjuna.common.Uid_11
+ *          [com.arjuna.ats.arjuna.common.Uid_11] - Uid.Uid recreate constructor
+ *          could not recreate Uid!
  */
 
 public class Uid implements Cloneable, Serializable
@@ -92,12 +93,13 @@
 
 	public Uid ()
 	{
-		hostAddr = -1;
+		hostAddr = null;
 		process = 0;
 		sec = 0;
 		other = 0;
 		_hashValue = -1;
-		_valid = true;
+		_valid = false;
+		_stringForm = null;
 
 		try
 		{
@@ -110,6 +112,10 @@
 			sec = Uid.initTime;
 
 			other = Uid.getValue();
+			
+			_valid = true;
+			
+			generateHash();
 		}
 		catch (UnknownHostException e)
 		{
@@ -147,12 +153,13 @@
 	{
 		char theBreakChar = Uid.getBreakChar(uidString);
 
-		hostAddr = -1;
+		hostAddr = new long[2];
 		process = 0;
 		sec = 0;
 		other = 0;
 		_hashValue = -1;
 		_valid = false;
+		_stringForm = null;
 
 		if (uidString.length() > 0)
 		{
@@ -166,11 +173,19 @@
 					endIndex++;
 
 				s = uidString.substring(startIndex, endIndex);
-				hostAddr = (int) Utility.hexStringToLong(s);
+				hostAddr[0] = Utility.hexStringToLong(s);
 
 				startIndex = endIndex + 1;
 				endIndex++;
+				while (uidString.charAt(endIndex) != theBreakChar)
+                                    endIndex++;
 
+				s = uidString.substring(startIndex, endIndex);
+                                hostAddr[1] = Utility.hexStringToLong(s);
+
+                                startIndex = endIndex + 1;
+                                endIndex++;
+ 
 				while (uidString.charAt(endIndex) != theBreakChar)
 					endIndex++;
 
@@ -190,9 +205,13 @@
 				other = (int) Utility.hexStringToLong(s);
 
 				_valid = true;
+				
+				generateHash();
 			}
 			catch (NumberFormatException e)
 			{
+			    e.printStackTrace();
+			    
 				if (!errsOk)
 				{
 					if (tsLogger.arjLoggerI18N.isWarnEnabled())
@@ -206,6 +225,8 @@
 			}
 			catch (StringIndexOutOfBoundsException e)
 			{
+			    e.printStackTrace();
+			    
 				_valid = false;
 			}
 		}
@@ -248,6 +269,32 @@
 			}
 		}
 	}
+	
+	public Uid (long[] addr, int processId, int time, int incr)
+        {
+            try
+            {
+                    hostAddr = new long[2];
+                    hostAddr[0] = addr[0];
+                    hostAddr[1] = addr[1];
+                    
+                    process = processId;
+                    sec = time;
+                    other = incr;
+                    
+                    _valid = true;
+                    
+                    generateHash();
+            }
+            catch (Throwable ex)
+            {
+                _valid = false;
+                
+                throw new FatalError(
+                        tsLogger.log_mesg.getString("com.arjuna.ats.arjuna.common.Uid_11")
+                                        + ex);
+            }       
+        }
 
 	/**
 	 * Override Object.hashCode. We always return a positive value.
@@ -259,60 +306,10 @@
 
 	public int hashCode ()
 	{
-		if (_hashValue == -1)
-			generateHash();
-
 		return _hashValue;
 	}
 
 	/**
-	 * Routines to pack and unpack Uids into Buffers (for RPC, storage etc)
-	 */
-
-	public synchronized void pack (OutputBuffer packInto) throws IOException
-	{
-		if (_valid)
-		{
-			packInto.packInt(hostAddr);
-			packInto.packInt(process);
-			packInto.packInt(sec);
-			packInto.packInt(other);
-		}
-		else
-			throw new IOException(
-					tsLogger.log_mesg.getString("com.arjuna.ats.arjuna.common.Uid_9"));
-	}
-
-	public synchronized void unpack (InputBuffer unpackFrom) throws IOException
-	{
-		/*
-		 * Prevent nullUid being overwritten by unpack.
-		 */
-
-		if (this == Uid.nullUid())
-			throw new IOException(
-					tsLogger.log_mesg.getString("com.arjuna.ats.arjuna.common.Uid_10"));
-
-		_valid = true; // should not be able to pack an invalid Uid.
-
-		try
-		{
-			hostAddr = unpackFrom.unpackInt();
-			process = unpackFrom.unpackInt();
-			sec = unpackFrom.unpackInt();
-			other = unpackFrom.unpackInt();
-
-			_hashValue = -1;
-		}
-		catch (IOException e)
-		{
-			_valid = false;
-
-			throw e;
-		}
-	}
-
-	/**
 	 * Print a human-readable form of the Uid.
 	 */
 
@@ -323,10 +320,16 @@
 
 	public String stringForm ()
 	{
-		return Utility.intToHexString(hostAddr) + Uid.breakChar
+	    // no need to synchronize since object is immutable
+	    
+	    if (_stringForm == null)
+		_stringForm = Utility.longToHexString(hostAddr[0]) + Uid.breakChar
+		                + Utility.longToHexString(hostAddr[1]) + Uid.breakChar
 				+ Utility.intToHexString(process) + Uid.breakChar
 				+ Utility.intToHexString(sec) + Uid.breakChar
 				+ Utility.intToHexString(other);
+	    
+	    return _stringForm;
 	}
 
 	/**
@@ -336,7 +339,8 @@
 
 	public String fileStringForm ()
 	{
-		return Utility.intToHexString(hostAddr) + Uid.fileBreakChar
+		return Utility.longToHexString(hostAddr[0]) + Uid.fileBreakChar
+		                + Utility.longToHexString(hostAddr[1]) + Uid.fileBreakChar
 				+ Utility.intToHexString(process) + Uid.fileBreakChar
 				+ Utility.intToHexString(sec) + Uid.fileBreakChar
 				+ Utility.intToHexString(other);
@@ -364,7 +368,7 @@
 	 * Copy the specified Uid over this instance.
 	 */
 
-	public synchronized void copy (Uid toCopy)
+	public void copy (Uid toCopy)
 	{
 		if (toCopy == this)
 			return;
@@ -401,7 +405,7 @@
 		if (u == this)
 			return true;
 
-		return ((other == u.other) && (sec == u.sec) && (process == u.process) && (hostAddr == u.hostAddr));
+		return ((other == u.other) && (sec == u.sec) && (process == u.process) && (hostAddr[0] == u.hostAddr[0]) && (hostAddr[1] == u.hostAddr[1]));
 	}
 
 	public boolean notEquals (Uid u)
@@ -412,7 +416,7 @@
 		if (u == this)
 			return false;
 
-		return ((other != u.other) || (sec != u.sec) || (process != u.process) || (hostAddr != u.hostAddr));
+		return ((other != u.other) || (sec != u.sec) || (process != u.process) || (hostAddr[0] != u.hostAddr[0]) || (hostAddr[1] != u.hostAddr[1]));
 	}
 
 	public boolean lessThan (Uid u)
@@ -432,23 +436,26 @@
 		if (LAST_RESOURCE_UID.equals(u))
 			return true ;
 
-		if (hostAddr < u.hostAddr)
+		if ((hostAddr[0] < u.hostAddr[0]) && (hostAddr[1] < u.hostAddr[1]))
 			return true;
 		else
-			if (hostAddr == u.hostAddr)
-			{
-				if (process < u.process)
-					return true;
-				else
-					if (process == u.process)
-					{
-						if (sec < u.sec)
-							return true;
-						else
-							if ((sec == u.sec) && (other < u.other))
-								return true;
-					}
-			}
+		{
+		    if ((hostAddr[0] == u.hostAddr[0]) && (hostAddr[1] == u.hostAddr[1]))
+		    {
+		        if (process < u.process)
+		            return true;
+		        else
+		            if (process == u.process)
+		            {
+		                if (sec < u.sec)
+		                    return true;
+		                else
+		                    if ((sec == u.sec) && (other < u.other))
+		                        return true;
+		            }
+		    }
+		}
+		
 		return false;
 	}
 
@@ -469,10 +476,11 @@
 		if (LAST_RESOURCE_UID.equals(u))
 			return false ;
 
-		if (hostAddr > u.hostAddr)
+		if ((hostAddr[0] > u.hostAddr[0]) && (hostAddr[1] > u.hostAddr[1]))
 			return true;
 		else
-			if (hostAddr == u.hostAddr)
+		{
+			if ((hostAddr[0] == u.hostAddr[0]) && (hostAddr[1] == u.hostAddr[0]))
 			{
 				if (process > u.process)
 					return true;
@@ -486,6 +494,8 @@
 								return true;
 					}
 			}
+		}
+		
 		return false;
 	}
 
@@ -493,13 +503,13 @@
 	 * Is the Uid valid?
 	 */
 
-	public synchronized final boolean valid ()
+	public final boolean valid ()
 	{
 		return _valid;
 	}
 
 	/**
-	 * Return a null Uid (0:0:0:0)
+	 * Return a null Uid (0:0:0:0:0)
 	 */
 
 	public static final Uid nullUid ()
@@ -508,7 +518,7 @@
 	}
 
 	/**
-	 * Return a last resource Uid (0:0:0:1)
+	 * Return a last resource Uid (0:0:0:0:1)
 	 */
 	public static final Uid lastResourceUid ()
 	{
@@ -516,7 +526,7 @@
 	}
 
 	/**
-	 * Return the maximum Uid (7fffffff:7fffffff:7fffffff:7fffffff)
+	 * Return the maximum Uid (7fffffff:7fffffff:7fffffff:7fffffff:7fffffff)
 	 */
 	public static final Uid maxUid ()
 	{
@@ -524,7 +534,7 @@
 	}
 
 	/**
-	 * Return the minimum Uid (-80000000:-80000000:-80000000:-80000000)
+	 * Return the minimum Uid (-80000000:-80000000:-80000000:-80000000:-80000000)
 	 */
 	public static final Uid minUid ()
 	{
@@ -543,7 +553,8 @@
 	{
 		if (_valid)
 		{
-			out.writeInt(hostAddr);
+			out.writeLong(hostAddr[0]);
+			out.writeLong(hostAddr[1]);
 			out.writeInt(process);
 			out.writeInt(sec);
 			out.writeInt(other);
@@ -562,16 +573,17 @@
 	private void readObject (java.io.ObjectInputStream in) throws IOException,
 			ClassNotFoundException
 	{
-		_valid = true; // should not be able to pack an invalid Uid.
-
 		try
 		{
-			hostAddr = in.readInt();
+			hostAddr[0] = in.readLong();
+			hostAddr[1] = in.readLong();
 			process = in.readInt();
 			sec = in.readInt();
-			other = in.readInt();
-			_hashValue = -1; // Set hashvalue to -1 to force a regeneration
-								// of the hashcode
+			other = in.readInt();	
+	                     
+                        _valid = true; // should not be able to pack an invalid Uid.
+                        
+			generateHash();
 		}
 		catch (IOException e)
 		{
@@ -597,12 +609,12 @@
 	 * adverse effect.
 	 */
 
-	private final synchronized void generateHash ()
+	private final void generateHash ()
 	{
 		if (_valid)
 		{
 			if (true)
-				_hashValue = hostAddr ^ process ^ sec ^ other;
+				_hashValue = (int) hostAddr[0] ^ (int) hostAddr[1] ^ process ^ sec ^ other;
 			else
 			{
 				int g = 0;
@@ -629,11 +641,6 @@
 				}
 			}
 
-			/*
-			 * Integers are signed in Java, so we have to be careful and only
-			 * return a signed value.
-			 */
-
 			if (_hashValue < 0)
 				_hashValue = -_hashValue;
 		}
@@ -660,19 +667,16 @@
 			return Uid.breakChar;
 	}
 
-	// use ints rather than longs for interoperability with C++ version
+	protected long[] hostAddr;  // representation of ipv6 address (and ipv4)
+	protected int process;
+	protected int sec;
+	protected int other;
 
-	private int hostAddr;
-
-	private int process;
-
-	private int sec;
-
-	private int other;
-
 	private int _hashValue;
 
 	private boolean _valid;
+	
+	private String _stringForm;
 
 	private static int uidsCreated ;
 
@@ -682,11 +686,11 @@
 
 	private static char fileBreakChar = '_';
 
-	private static Uid NIL_UID = new Uid("0:0:0:0") ;
+	private static Uid NIL_UID = new Uid("0:0:0:0:0") ;
 
-	private static Uid LAST_RESOURCE_UID = new Uid("0:0:0:1") ;
+	private static Uid LAST_RESOURCE_UID = new Uid("0:0:0:0:1") ;
 
-	private static Uid MAX_UID = new Uid("7fffffff:7fffffff:7fffffff:7fffffff") ;
+	private static Uid MAX_UID = new Uid("7fffffff:7fffffff:7fffffff:7fffffff:7fffffff") ;
 
-	private static Uid MIN_UID = new Uid("-80000000:-80000000:-80000000:-80000000") ;
+	private static Uid MIN_UID = new Uid("-80000000:-80000000:-80000000:-80000000:-80000000") ;
 }

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/AbstractRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/AbstractRecord.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/AbstractRecord.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -44,6 +44,7 @@
 
 import com.arjuna.ats.arjuna.logging.tsLogger;
 import com.arjuna.ats.arjuna.logging.FacilityCode;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 /**
  * Abstract Record Class
@@ -348,7 +349,7 @@
 	{
 		try
 		{
-			uidOfObject.pack(os);
+		    UidHelper.packInto(uidOfObject, os);
 			os.packString(typeOfObject);
 
 			return true;
@@ -377,7 +378,7 @@
 
 		try
 		{
-			uidOfObject.unpack(os);
+		    uidOfObject = UidHelper.unpackFrom(os);
 			typeOfObject = os.unpackString();
 
 			return true;

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/ActionHierarchy.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/ActionHierarchy.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/ActionHierarchy.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -40,6 +40,7 @@
 
 import com.arjuna.ats.arjuna.logging.tsLogger;
 import com.arjuna.ats.arjuna.logging.FacilityCode;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import com.arjuna.common.util.logging.*;
 
@@ -298,7 +299,7 @@
 
 	for (int i = 0; i < currentDepth; i++)
 	{
-	    hierarchy[i].actionUid.pack(state);
+	    UidHelper.packInto(hierarchy[i].actionUid, state);
 	    state.packInt(hierarchy[i].actionType);
 	}
     }
@@ -331,7 +332,7 @@
 
 	for (int i = 0; i < newDepth; i++)
 	{
-	    temp.actionUid.unpack(state);
+	    temp.actionUid = UidHelper.unpackFrom(state);
 	    temp.actionType = state.unpackInt();
 
 	    newHier.add(temp.actionUid, temp.actionType);

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -35,10 +35,10 @@
 import com.arjuna.ats.arjuna.gandiva.ClassName;
 import com.arjuna.ats.arjuna.common.Environment;
 import com.arjuna.ats.arjuna.common.arjPropertyManager;
-import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.ArjunaNames;
 import com.arjuna.ats.arjuna.recovery.TransactionStatusManager;
+import com.arjuna.ats.arjuna.utils.Utility;
 
 /**
  * Transaction configuration object. We have a separate object for this so that
@@ -63,6 +63,9 @@
 
 public class TxControl
 {
+    public static final int NODE_NAME_SIZE = 10;
+    public static final String DEFAULT_NODE_NAME = "Arjuna:";
+    
     public static class Shutdown extends Thread
     {
         public void run()
@@ -262,7 +265,7 @@
 
 	public static void setXANodeName(byte[] name)
 	{
-	    if (name.length > 64)
+	    if (name.length > NODE_NAME_SIZE)
 	    {
 	        if (tsLogger.arjLoggerI18N.isWarnEnabled())
                 {
@@ -377,51 +380,57 @@
 		}
 		else
 		{
-			Uid nodeName = new Uid();
+		    /*
+		     * In the past we used a Uid as the default node name. However, this is too
+		     * big for the way in which we use it within Xids now that we also support
+		     * ipv6. Hence the need to limit the size of a node name to 10 bytes.
+		     */
+		    
+		    String nodeName = DEFAULT_NODE_NAME+Utility.getpid();
 
 			if (tsLogger.arjLoggerI18N.isWarnEnabled())
 			{
 				tsLogger.arjLoggerI18N.warn(
 						"com.arjuna.ats.arjuna.coordinator.TxControl_1",
 						new Object[]
-						{ nodeName.stringForm() });
+						{ nodeName });
 			}
 
-			xaNodeName = nodeName.stringForm().getBytes();
+			xaNodeName = nodeName.getBytes();
 
 			writeNodeName = true;
 		}
 
-		if (xaNodeName.length > 30)
+		if (xaNodeName.length > NODE_NAME_SIZE)
 		{
-			Uid nodeName = new Uid();
+		    String nodeName = DEFAULT_NODE_NAME+Utility.getpid();
 
 			if (tsLogger.arjLoggerI18N.isWarnEnabled())
 			{
 				tsLogger.arjLoggerI18N.warn(
 						"com.arjuna.ats.arjuna.coordinator.TxControl_2",
 						new Object[]
-						{ nodeName.stringForm() });
+						{ nodeName });
 			}
 
-			xaNodeName = nodeName.stringForm().getBytes();
+			xaNodeName = nodeName.getBytes();
 
 			writeNodeName = true;
 		}
 
 		if ((env != null) && (env.indexOf('-') != -1))
 		{
-			Uid nodeName = new Uid();
+		    String nodeName = DEFAULT_NODE_NAME+Utility.getpid();
 
 			if (tsLogger.arjLoggerI18N.isWarnEnabled())
 			{
 				tsLogger.arjLoggerI18N.warn(
 						"com.arjuna.ats.arjuna.coordinator.TxControl_3",
 						new Object[]
-						{ nodeName.stringForm() });
+						{ nodeName });
 			}
 
-			xaNodeName = nodeName.stringForm().getBytes();
+			xaNodeName = nodeName.getBytes();
 
 			writeNodeName = true;
 		}

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStoreIterator.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStoreIterator.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStoreIterator.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -35,6 +35,8 @@
 import com.arjuna.ats.arjuna.state.InputObjectState;
 
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.io.IOException;
 
 /**
@@ -68,9 +70,7 @@
 	
 	try
 	{
-	    newUid = new Uid(Uid.nullUid());
-
-	    newUid.unpack(uidList);
+	    newUid = UidHelper.unpackFrom(uidList);
 	}
 	catch (IOException e)
 	{

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/ActionStatusService.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/ActionStatusService.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/ActionStatusService.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -44,6 +44,7 @@
 import com.arjuna.ats.arjuna.utils.Utility;
 
 import com.arjuna.ats.arjuna.logging.tsLogger;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 /**
  * @message com.arjuna.ats.arjuna.recovery.ActionStatusService_1 [com.arjuna.ats.arjuna.recovery.ActionStatusService_1] - transactionType: {0} uid: {1} \n Status is {2}
@@ -303,12 +304,12 @@
 
                         if ( _objectStore.allObjUids( theTypeName, uids ) )
                         {
-                           Uid theUid = new Uid( Uid.nullUid() );
+                           Uid theUid = null;
 
                            while ( !endOfUids )
                            {
                               // extract a uid
-                              theUid.unpack( uids );
+                               theUid = UidHelper.unpackFrom(uids);
 
                               if (theUid.equals( Uid.nullUid() ))
                               {

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusConnectionManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusConnectionManager.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusConnectionManager.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -39,6 +39,7 @@
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException ;
 import com.arjuna.ats.arjuna.objectstore.ObjectStore ;
 import com.arjuna.ats.arjuna.state.InputObjectState ;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector ;
 import com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem ;
 
@@ -209,7 +210,7 @@
 
 	if ( tsmis )
 	{
-	    Uid theUid = new Uid(Uid.nullUid()) ;
+	    Uid theUid = null;
 
 	    boolean moreUids = true ;
 
@@ -217,7 +218,7 @@
 	    {
 		try
 		{
-		    theUid.unpack( uids ) ;
+		    theUid = UidHelper.unpackFrom(uids);
 
 		    if ( theUid.equals( Uid.nullUid() ) )
 		    {

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/state/InputObjectState.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/state/InputObjectState.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/state/InputObjectState.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -35,6 +35,7 @@
 import java.io.PrintWriter;
 
 import com.arjuna.ats.arjuna.logging.*;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import com.arjuna.common.util.logging.DebugLevel;
 import com.arjuna.common.util.logging.VisibilityLevel;
@@ -206,7 +207,7 @@
 public synchronized void unpackFrom (InputBuffer buff) throws IOException
     {
 	imageType = buff.unpackString();
-	bufferUid.unpack(buff);
+	bufferUid = UidHelper.unpackFrom(buff);
 
 	super.unpackFrom(buff);
     }

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/state/OutputObjectState.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/state/OutputObjectState.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/state/OutputObjectState.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -37,6 +37,7 @@
 import java.io.IOException;
 
 import com.arjuna.ats.arjuna.logging.*;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import com.arjuna.common.util.logging.DebugLevel;
 import com.arjuna.common.util.logging.VisibilityLevel;
@@ -219,7 +220,7 @@
 public synchronized void packInto (OutputBuffer buff) throws IOException
     {
 	buff.packString(imageType);
-	bufferUid.pack(buff);
+	UidHelper.packInto(bufferUid, buff);
 
 	super.packInto(buff);
     }

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/OTM.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/OTM.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/OTM.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -38,6 +38,8 @@
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.gandiva.ClassName;
 import com.arjuna.ats.arjuna.state.*;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import javax.swing.*;
 import javax.swing.tree.*;
 import javax.swing.event.*;
@@ -285,7 +287,7 @@
 					
 					while (!endOfUids)
 					{
-					    theUid.unpack(uids);
+					    theUid = UidHelper.unpackFrom(uids);
 
 					    if (theUid.equals(Uid.nullUid()))
 					    {
@@ -489,7 +491,7 @@
 				    
 				    while (!endOfUids)
 				    {
-					theUid.unpack(uids);
+				        theUid = UidHelper.unpackFrom(uids);
 
 					if (theUid.equals(Uid.nullUid()))
 					    endOfUids = true;

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/ObjectStateQuery.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/ObjectStateQuery.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/ObjectStateQuery.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -37,6 +37,8 @@
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.state.*;
 import com.arjuna.ats.arjuna.gandiva.ClassName;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.io.PrintWriter;
 
 public class ObjectStateQuery
@@ -89,10 +91,8 @@
 	    
 	    imple.allObjUids(type, buff, ObjectStore.OS_UNCOMMITTED);
 	    
-	    Uid u = new Uid(Uid.nullUid());
+	    Uid u = UidHelper.unpackFrom(buff);
 	    
-	    u.unpack(buff);
-	    
 	    System.out.println("got "+u);
 	}
 	catch (Exception e)

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/ObjectStoreMonitor.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/ObjectStoreMonitor.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/ObjectStoreMonitor.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -37,6 +37,8 @@
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.state.*;
 import com.arjuna.ats.arjuna.gandiva.ClassName;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.io.PrintWriter;
 
 public class ObjectStoreMonitor
@@ -123,7 +125,7 @@
 				    
 				    while (!endOfUids)
 				    {
-					theUid.unpack(uids);
+				        theUid = UidHelper.unpackFrom(uids);
 
 					if (theUid.equals(Uid.nullUid()))
 					    endOfUids = true;

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/TransactionMonitor.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/TransactionMonitor.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/TransactionMonitor.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -38,6 +38,8 @@
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.state.*;
 import com.arjuna.ats.arjuna.gandiva.ClassName;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.io.PrintWriter;
 
 public class TransactionMonitor
@@ -116,7 +118,7 @@
 				    
 				    while (!endOfUids)
 				    {
-					theUid.unpack(uids);
+				        theUid = UidHelper.unpackFrom(uids);
 
 					if (theUid.equals(Uid.nullUid()))
 					    endOfUids = true;

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/utils/Utility.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/utils/Utility.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/utils/Utility.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -36,6 +36,7 @@
 import com.arjuna.ats.arjuna.common.*;
 import com.arjuna.common.util.propertyservice.PropertyManager;
 
+import java.net.Inet6Address;
 import java.net.InetAddress;
 
 import java.net.UnknownHostException;
@@ -119,7 +120,7 @@
     }
 
     /**
-     * Convert a hex String to a long.
+     * Convert a hex String to a long
      */
 
     public static long hexStringToLong (String s) throws NumberFormatException
@@ -162,27 +163,65 @@
     }
 
     /**
-     * @return an integer representing the ip address of the local machine.
+     * @return Long(s) representing the ip v6 address of the local machine.
      *         Essentially the bytes of the InetAddress are shuffled into the
-     *         integer. This was once part of the Uid class but has been
+     *         long(s). This was once part of the Uid class but has been
      *         separated for general availability.
      * @since JTS 2.1.
      */
 
-    public static synchronized int hostInetAddr () throws UnknownHostException
+    public static synchronized long[] hostInetAddr () throws UnknownHostException
     {
         /*
          * Calculate only once.
          */
 
-        if (myAddr == 0)
+        if (myAddr == null)
         {
+            myAddr = new long[2];
+            
+            myAddr[0] = 0;
+            myAddr[1] = 0;
+            
+            byte[] b = null;
             InetAddress addr = InetAddress.getLocalHost();
-            byte[] b = addr.getAddress();
 
-            for (int i = 0; i < b.length; i++)
+            if (addr instanceof Inet6Address)
             {
+                // 16 bytes to work with.
+                
+                b = addr.getAddress();
+            }
+            else
+            {
                 /*
+                 * Convert ipv4 to ipv6
+                 * 
+                 * We only have 4 bytes here.
+                 * 
+                 * ::FFFF:129.144.52.38
+                 */
+
+                byte[] v4Address = addr.getAddress();
+                
+                if (v4Address.length > 4)
+                    throw new UnknownHostException();        
+                
+                b = new byte[16];
+                
+                // high order byte in [0]
+                
+                for (int i = 0; i < 10; i++)
+                    b[i] = 0;
+                
+                b[10] = b[11] = (byte) 255;
+                
+                System.arraycopy(v4Address, 0, b, 12, v4Address.length);
+            }
+
+            for (int i = 0; i < 8; i++)
+            {
+                /*
                  * Convert signed byte into unsigned.
                  */
 
@@ -190,10 +229,25 @@
 
                 l += (0x80 & b[i]);
 
-                myAddr = (myAddr << 8) | l;
+                myAddr[0] = (myAddr[0] << 8) | l;
             }
+            
+            for (int i = 8; i < 16; i++)
+            {
+                /*
+                 * Convert signed byte into unsigned.
+                 */
+
+                int l = 0x7f & b[i];
+
+                l += (0x80 & b[i]);
+
+                myAddr[1] = (myAddr[1] << 8) | l;
+            }               
         }
 
+        System.err.println("**returning < "+myAddr[0]+", "+myAddr[1]+" >");
+        
         return myAddr;
     }
 
@@ -367,7 +421,7 @@
         }
     }
 
-    private static int myAddr = 0;
+    private static long[] myAddr = null;
 
     private static Uid processUid = null;
 

Added: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/common/UidHelper.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/common/UidHelper.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/common/UidHelper.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -0,0 +1,109 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors 
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 1998, 1999, 2000,
+ *
+ * Arjuna Solutions Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.  
+ *
+ * $Id: CadaverRecordSetup.java 2342 2006-03-30 13:06:17Z  $
+ */
+
+package com.arjuna.ats.internal.arjuna.common;
+
+import java.io.IOException;
+import java.security.InvalidParameterException;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.ats.arjuna.state.InputBuffer;
+import com.arjuna.ats.arjuna.state.OutputBuffer;
+
+public class UidHelper
+{
+    public static final Uid unpackFrom (InputBuffer buff) throws IOException
+    {
+        long[] hostAddr = new long[2];
+        int process;
+        int sec;
+        int other;
+
+        hostAddr[0] = buff.unpackLong();
+        hostAddr[1] = buff.unpackLong();
+        process = buff.unpackInt();
+        sec = buff.unpackInt();
+        other = buff.unpackInt();
+
+        return new Uid(hostAddr, process, sec, other);
+    }
+
+    public static final void packInto (Uid u, OutputBuffer buff)
+            throws IOException
+    {
+        if (u.valid())
+        {
+            UidHelper foo = new UidHelper();
+            UidFriend friend = foo.new UidFriend(u);
+            long[] hostAddr = friend.getAddress();
+
+            buff.packLong(hostAddr[0]);
+            buff.packLong(hostAddr[1]);
+            buff.packInt(friend.getProcessId());
+            buff.packInt(friend.getSec());
+            buff.packInt(friend.getOther());
+        }
+        else
+            throw new InvalidParameterException();
+    }
+
+    private UidHelper()
+    {
+    }
+
+    class UidFriend extends Uid
+    {
+        public UidFriend(Uid u)
+        {
+            super(u);
+        }
+
+        public long[] getAddress ()
+        {
+            return hostAddr;
+        }
+
+        public int getProcessId ()
+        {
+            return process;
+        }
+
+        public int getSec ()
+        {
+            return sec;
+        }
+
+        public int getOther ()
+        {
+            return other;
+        }
+    }
+}

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -47,6 +47,8 @@
 import java.util.Hashtable;
 
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.lang.NumberFormatException;
 import java.io.File;
 import java.io.FileInputStream;
@@ -296,7 +298,7 @@
 			if ((aUid.notEquals(Uid.nullUid())) && ((match == ObjectStore.OS_UNKNOWN) ||
 								(isType(aUid, tName, match))))
 			{
-			    aUid.pack(store);
+			    UidHelper.packInto(aUid, store);
 			}
 		    }
 		}
@@ -315,7 +317,7 @@
 
 	try
 	{
-	    Uid.nullUid().pack(store);
+	    UidHelper.packInto(Uid.nullUid(), store);
 	}
 	catch (IOException e)
 	{

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -47,9 +47,10 @@
 import com.arjuna.common.util.logging.*;
 
 import java.io.*;
-import java.io.File;
 
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.io.IOException;
 import java.io.FileNotFoundException;
 import java.lang.NumberFormatException;
@@ -211,7 +212,7 @@
 				if ((aUid.notEquals(Uid.nullUid())) && ((match == ObjectStore.OS_UNKNOWN) ||
 				    (isType(aUid, tName, match))))
 				{
-				    aUid.pack(store);
+				    UidHelper.packInto(aUid, store);
 				}
 			    }
 			    catch (NumberFormatException e)
@@ -238,7 +239,7 @@
 
 	try
 	{
-	    Uid.nullUid().pack(store);
+	    UidHelper.packInto(Uid.nullUid(), store);
 	}
 	catch (IOException e)
 	{

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCActionStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCActionStore.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCActionStore.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -31,7 +31,6 @@
 
 package com.arjuna.ats.internal.arjuna.objectstore;
 
-import com.arjuna.ats.internal.arjuna.objectstore.JDBCImple;
 
 import com.arjuna.ats.arjuna.ArjunaNames;
 import com.arjuna.ats.arjuna.state.*;
@@ -39,10 +38,7 @@
 import com.arjuna.ats.arjuna.logging.tsLogger;
 import com.arjuna.ats.arjuna.logging.FacilityCode;
 
-import com.arjuna.ats.arjuna.gandiva.*;
-import com.arjuna.common.util.propertyservice.PropertyManager;
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
-import com.arjuna.ats.arjuna.objectstore.ObjectStoreImple;
 import com.arjuna.ats.arjuna.objectstore.ObjectStoreType;
 import com.arjuna.ats.arjuna.objectstore.jdbc.JDBCAccess;
 import com.arjuna.ats.arjuna.common.*;
@@ -51,12 +47,8 @@
 
 import com.arjuna.common.util.logging.DebugLevel;
 import com.arjuna.common.util.logging.VisibilityLevel;
-import java.io.*;
-import java.sql.*;
 
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
-import com.arjuna.ats.arjuna.exceptions.ObjectStoreError;
-import com.arjuna.ats.arjuna.exceptions.FatalError;
 
 import java.io.IOException;
 

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCImple.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCImple.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -42,6 +42,8 @@
 import java.util.Hashtable;
 
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.io.IOException;
 
 /**
@@ -526,7 +528,7 @@
 					try
 					{
 						theUid = new Uid(rs.getString(1));
-						theUid.pack(store);
+						UidHelper.packInto(theUid, store);
 					}
 					catch (IOException ex)
 					{
@@ -585,7 +587,7 @@
 
 			try
 			{
-				Uid.nullUid().pack(store);
+			    UidHelper.packInto(Uid.nullUid(), store);
 			}
 			catch (IOException e)
 			{

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/LogStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/LogStore.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/LogStore.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -40,6 +40,7 @@
 
 import com.arjuna.ats.arjuna.logging.tsLogger;
 import com.arjuna.ats.arjuna.logging.FacilityCode;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.internal.arjuna.objectstore.LogInstance.TransactionData;
 
 /**
@@ -193,12 +194,12 @@
 		{
 			while (iter.hasNext())
 			{
-				iter.next().pack(state);
+			    UidHelper.packInto(iter.next(), state);
 			}
 
 			// don't forget to null terminate
 
-			Uid.nullUid().pack(state);
+			UidHelper.packInto(Uid.nullUid(), state);
 		}
 		catch (final IOException ex)
 		{
@@ -469,7 +470,7 @@
 			{
 				try
 				{
-					tempUid.unpack(ios);
+				    tempUid = UidHelper.unpackFrom(ios);
 				}
 				catch (final Exception ex)
 				{
@@ -643,7 +644,7 @@
 			{
 				do
 				{
-					logName.unpack(logs);
+				    logName = UidHelper.unpackFrom(logs);
 
 					if (logName.notEquals(Uid.nullUid()))
 					{
@@ -665,7 +666,7 @@
 						{
 							for (int i = 0; i < txs.size(); i++)
 							{
-								txs.get(i).stateUid().pack(objUids);
+							    UidHelper.packInto(txs.get(i).stateUid(), objUids);
 							}
 						}
 					}
@@ -673,7 +674,7 @@
 
 				// remember null terminator
 
-				Uid.nullUid().pack(objUids);
+				UidHelper.packInto(Uid.nullUid(), objUids);
 
 				state.setBuffer(objUids.buffer());
 			}

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/AtomicActionRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/AtomicActionRecoveryModule.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/AtomicActionRecoveryModule.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -49,6 +49,7 @@
 
 import com.arjuna.ats.arjuna.logging.FacilityCode ;
 import com.arjuna.ats.arjuna.logging.tsLogger;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import com.arjuna.common.util.logging.*;
 
@@ -240,7 +241,7 @@
 				    + " transactions" ) ;
       }
 
-      Uid theUid = new Uid( Uid.nullUid() );
+      Uid theUid = null;
 
       boolean moreUids = true ;
 
@@ -248,7 +249,7 @@
       {
          try
          {
-            theUid.unpack( uids ) ;
+             theUid = UidHelper.unpackFrom(uids);
 
             if (theUid.equals( Uid.nullUid() ))
             {

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionScanner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionScanner.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionScanner.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -32,6 +32,7 @@
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
 
 import com.arjuna.ats.arjuna.logging.tsLogger;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 /**
  * This class is a plug-in module for the recovery manager. This class is
@@ -85,14 +86,14 @@
 
 			if (_objectStore.allObjUids(_typeName, uids))
 			{
-				Uid theUid = new Uid(Uid.nullUid());
+				Uid theUid = null;
 
 				boolean endOfUids = false;
 
 				while (!endOfUids)
 				{
 					// extract a uid
-					theUid.unpack(uids);
+				        theUid = UidHelper.unpackFrom(uids);
 
 					if (theUid.equals(Uid.nullUid()))
 						endOfUids = true;

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -42,6 +42,7 @@
 
 import com.arjuna.ats.arjuna.logging.tsLogger;
 import com.arjuna.ats.arjuna.logging.FacilityCode;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import com.arjuna.common.util.logging.*;
 
@@ -99,14 +100,15 @@
          // find the uids of all the transaction status manager items
          if ( _objectStore.allObjUids(_itemTypeName, uids) )
          {
-            Uid theUid = new Uid(Uid.nullUid()) ;
+            Uid theUid = null;
 
             boolean endOfUids = false ;
 
             while (!endOfUids)
             {
                // extract a uid
-               theUid.unpack(uids) ;
+                
+                theUid = UidHelper.unpackFrom(uids);
 
                if (theUid.equals(Uid.nullUid()))
                   endOfUids = true ;

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/TransactionStatusConnector.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/TransactionStatusConnector.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/TransactionStatusConnector.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -219,6 +219,8 @@
 
             String server_pid = _from_server.readLine() ;
           
+            System.err.println("**comparing "+server_pid+" and "+_pid);
+            
             if ( Utility.hexStringToInt(server_pid) == Utility.hexStringToInt(_pid) )
             {
                if ( ! _testMode )

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/XATxConverter.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/XATxConverter.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/XATxConverter.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -68,7 +68,7 @@
 	byte[] nodeName = TxControl.getXANodeName();
 	String s = uid.stringForm();
 	int uidLen = s.length()+nodeName.length+1;
-		
+
 	if (uidLen > com.arjuna.ats.arjuna.xa.XID.MAXGTRIDSIZE)  // Uid is too long!!!!
 	{
 	    throw new IllegalStateException();

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/AllObjUidsTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/AllObjUidsTest.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/AllObjUidsTest.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -36,6 +36,7 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import org.junit.Test;
 import static org.junit.Assert.*;
@@ -52,20 +53,17 @@
 
         InputObjectState ios = new InputObjectState();
         objStore.allObjUids(type, ios, ObjectStore.OS_UNKNOWN);
-        Uid uid = new Uid();
-        uid.unpack(ios);
+        Uid uid = UidHelper.unpackFrom(ios);
         assertEquals(Uid.nullUid(), uid);
 
         ios = new InputObjectState();
         objStore.allObjUids(type, ios, ObjectStore.OS_COMMITTED);
-        uid = new Uid();
-        uid.unpack(ios);
+        uid = UidHelper.unpackFrom(ios);
         assertEquals(Uid.nullUid(), uid);
 
         ios = new InputObjectState();
         objStore.allObjUids(type, ios, ObjectStore.OS_UNCOMMITTED);
-        uid = new Uid();
-        uid.unpack(ios);
+        uid = UidHelper.unpackFrom(ios);
         assertEquals(Uid.nullUid(), uid);
     }
 }

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -37,6 +37,7 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.common.arjPropertyManager;
 import com.arjuna.ats.arjuna.coordinator.TxControl;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.hp.mwtests.ts.arjuna.resources.TestBase;
 
 import org.junit.Test;
@@ -122,7 +123,7 @@
 
                 do {
                     try {
-                        id.unpack(ios);
+                        id = UidHelper.unpackFrom(ios);
                     }
                     catch (Exception ex) {
                         id = Uid.nullUid();

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -37,6 +37,7 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.common.arjPropertyManager;
 import com.arjuna.ats.arjuna.coordinator.TxControl;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import org.junit.Test;
 import static org.junit.Assert.*;
@@ -78,7 +79,7 @@
 
                 do {
                     try {
-                        id.unpack(ios);
+                        id = UidHelper.unpackFrom(ios);
                     }
                     catch (Exception ex) {
                         id = Uid.nullUid();

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -37,6 +37,7 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.common.arjPropertyManager;
 import com.arjuna.ats.arjuna.coordinator.TxControl;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import org.junit.Test;
 import static org.junit.Assert.*;
@@ -102,7 +103,7 @@
 
                 do {
                     try {
-                        id.unpack(ios);
+                        id = UidHelper.unpackFrom(ios);
                     }
                     catch (Exception ex) {
                         id = Uid.nullUid();

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStressTest.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -39,6 +39,7 @@
 import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import org.junit.Test;
 import static org.junit.Assert.*;
@@ -125,10 +126,8 @@
         try {
             TxControl.getStore().allObjUids(new MyAtomicAction().type(), ios, ObjectStore.OS_UNKNOWN);
 
-            Uid tempUid = new Uid(Uid.nullUid());
+            Uid tempUid = UidHelper.unpackFrom(ios);
 
-            tempUid.unpack(ios);
-
             // there should be no entries left
 
             if (tempUid.equals(Uid.nullUid())) {

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/RemoveCachedTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/RemoveCachedTest.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/RemoveCachedTest.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -36,6 +36,7 @@
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.state.*;
 import com.arjuna.ats.arjuna.common.*;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import org.junit.Test;
 import static org.junit.Assert.*;
@@ -56,7 +57,7 @@
             Uid toRemove = new Uid(Uid.nullUid());
 
             do {
-                toRemove.unpack(buff);
+                toRemove = UidHelper.unpackFrom(buff);
 
                 if (toRemove.notEquals(Uid.nullUid())) {
                     System.err.println("Removing " + toRemove + "\n");

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/CrashAbstractRecordImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/CrashAbstractRecordImpl.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/CrashAbstractRecordImpl.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -45,7 +45,7 @@
 {
     public CrashAbstractRecordImpl(int crashBehaviour)
     {
-        super(new Uid("-7FFFFFF" + _count + ":0:0:0"),
+        super(new Uid("-7FFFFFF" + _count + ":0:0:0:0"),
                 "com.hp.mwtests.ts.arjuna.recovery.CrashAbstractRecordImpl",
                 ObjectType.ANDPERSISTENT);
         _count++;

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/LogMoveTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/LogMoveTest.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/LogMoveTest.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -36,6 +36,7 @@
 import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionScanner;
 
 import org.junit.Test;
@@ -53,7 +54,7 @@
         final String tn = new AtomicAction().type();
 
         try {
-            kungfuTx.pack(fluff);
+            UidHelper.packInto(kungfuTx, fluff);
 
             System.err.println("Creating dummy log");
 

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/RecoverAtomicActionTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/RecoverAtomicActionTest.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/RecoverAtomicActionTest.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -38,6 +38,7 @@
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.recovery.RecoverAtomicAction;
 import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import org.junit.Test;
 import static org.junit.Assert.*;
@@ -55,7 +56,7 @@
 
         try
         {
-            kungfuTx.pack(fluff);
+            UidHelper.packInto(kungfuTx, fluff);
 
             System.err.println("Creating dummy log");
 

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/TransactionStatusConnectorTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/TransactionStatusConnectorTest.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/recovery/TransactionStatusConnectorTest.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -107,10 +107,7 @@
 
             if (TransactionStatusManagerItem.createAndSave(_test_port)) {
                 _pidUid = Utility.getProcessUid();
-                String strUid = _pidUid.toString();
-                StringTokenizer st = new StringTokenizer(strUid, ":");
-                st.nextToken();
-                _pidStr = st.nextToken();
+                _pidStr = Utility.intToHexString(Utility.getpid());
 
                 _test_service_socket = new ServerSocket(_test_port);
                 _test_service = new TransactionStatusConnectorTestService();
@@ -199,6 +196,8 @@
             _listener.stopListener();
         }
         catch (Exception ex) {
+            ex.printStackTrace();
+            
             System.err.println(_unit_test + " test1 " + ex);
             _tests_failed++;
         }

Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/frames/BrowserFrame.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/frames/BrowserFrame.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/frames/BrowserFrame.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -47,6 +47,7 @@
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.gandiva.ClassName;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import javax.swing.*;
 import javax.swing.event.*;
@@ -581,7 +582,7 @@
 
                     if (_objectStore.allObjUids(theName, uids))
                     {
-                        Uid theUid = new Uid();
+                        Uid theUid = null;
 
                         try
                         {
@@ -589,7 +590,7 @@
 
                             while (!endOfUids)
                             {
-                                theUid.unpack(uids);
+                                theUid = UidHelper.unpackFrom(uids);
 
                                 if (theUid.equals(Uid.nullUid()))
                                     endOfUids = true;

Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/UidInfo.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/UidInfo.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/stateviewers/viewers/UidInfo.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -23,6 +23,7 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.state.OutputBuffer;
 import com.arjuna.ats.arjuna.state.InputBuffer;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.tools.objectstorebrowser.UidConverter;
 
 import javax.transaction.xa.Xid;
@@ -102,7 +103,7 @@
                 OutputBuffer outBuf = new OutputBuffer();
                 InputBuffer inBuf;
 
-                uid.pack(outBuf);
+                UidHelper.packInto(uid, outBuf);
                 inBuf = new InputBuffer(outBuf.buffer());
 
                 //host = inet4AddressToString(inBuf.unpackInt());

Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/recovery/TORecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/recovery/TORecoveryModule.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/recovery/TORecoveryModule.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -47,6 +47,8 @@
 import java.io.PrintWriter;
 
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
+
 import java.io.IOException;
 
 /**
@@ -142,7 +144,7 @@
 			 // find the uids of anything with an uncommitted entry in the object store
 			 if (_objectStore.allObjUids(theName, uids, ObjectStore.OS_UNCOMMITTED))
 			 {
-			     Uid theUid = new Uid(Uid.nullUid());
+			     Uid theUid = null;
 			     
 			     try
 			     {
@@ -150,7 +152,7 @@
 				 
 				 while (!endOfUids) {
 				     // extract a uid
-				     theUid.unpack(uids);
+				     theUid = UidHelper.unpackFrom(uids);
 				     
 				     if (theUid.equals(Uid.nullUid()))
 					 endOfUids = true;

Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -46,6 +46,7 @@
 
 import com.arjuna.ats.arjuna.coordinator.*;
 import com.arjuna.ats.arjuna.state.*;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.txoj.common.txojPropertyManager;
 import java.io.PrintWriter;
 import java.util.*;
@@ -1141,7 +1142,7 @@
 
                 if (S != null)
                 {
-                    Uid u = new Uid(Uid.nullUid()); /*
+                    Uid u = null; /*
                                                      * avoid system calls in Uid
                                                      * creation
                                                      */
@@ -1172,7 +1173,7 @@
                         {
                             try
                             {
-                                u.unpack(S);
+                                u = UidHelper.unpackFrom(S);
                                 current = new Lock(u);
 
                                 if (current != null)
@@ -1341,7 +1342,7 @@
 
                     while ((current = locksHeld.pop()) != null)
                     {
-                        current.get_uid().pack(S);
+                        UidHelper.packInto(current.get_uid(), S);
 
                         if (!current.save_state(S, ObjectType.ANDPERSISTENT))
                         {

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -38,6 +38,7 @@
 import com.arjuna.ats.arjuna.recovery.RecoveryModule;
 import com.arjuna.ats.arjuna.logging.FacilityCode;
 
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.internal.jta.utils.XAUtils;
 import com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction;
 
@@ -396,17 +397,17 @@
 	 *          Unexpceted recovery error:
 	 * @message com.arjuna.ats.internal.jta.recovery.noxanodes No XA recovery
 	 *          nodes specified. Will only recover saved states.
-	 */
+	 */ 
 
 	private final boolean transactionInitiatedRecovery()
 	{
-		Uid theUid = new Uid();
+		Uid theUid = null;
 
 		while (theUid.notEquals(Uid.nullUid()))
 		{
 			try
 			{
-				theUid.unpack(_uids);
+				theUid = UidHelper.unpackFrom(_uids);
 
 				if (theUid.notEquals(Uid.nullUid()))
 				{

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryResourceImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryResourceImple.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryResourceImple.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -41,8 +41,6 @@
 
 import com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord;
 
-
-import java.util.*;
 import javax.transaction.xa.*;
 
 public class XARecoveryResourceImple extends XAResourceRecord implements XARecoveryResource

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryResourceManagerImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryResourceManagerImple.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryResourceManagerImple.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -33,16 +33,12 @@
 
 import com.arjuna.ats.jta.recovery.*;
 
-import com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord;
-
 import com.arjuna.ats.arjuna.common.*;
 
-import java.util.*;
 import javax.transaction.xa.*;
 
 public class XARecoveryResourceManagerImple implements XARecoveryResourceManager
 {
-
     public XARecoveryResource getResource (Uid uid)
     {
 	return new XARecoveryResourceImple(uid);
@@ -57,5 +53,4 @@
     {
 	return XARecoveryResourceImple.typeName();
     }
-
 }

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/XATerminatorImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/XATerminatorImple.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/XATerminatorImple.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -42,6 +42,7 @@
 import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.internal.jta.resources.spi.XATerminatorExtensions;
 import com.arjuna.ats.internal.jta.transaction.arjunacore.subordinate.jca.SubordinateAtomicAction;
 import com.arjuna.ats.jta.exceptions.UnexpectedConditionException;
@@ -331,11 +332,11 @@
 
                 do
                 {
-                    Uid uid = new Uid(Uid.nullUid());
+                    Uid uid = null;
 
                     try
                     {
-                        uid.unpack(states);
+                        uid = UidHelper.unpackFrom(states);
                     }
                     catch (IOException ex)
                     {

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/recovery/XARecoveryResource.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/recovery/XARecoveryResource.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/recovery/XARecoveryResource.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -32,8 +32,7 @@
 package com.arjuna.ats.jta.recovery;
 
 import com.arjuna.ats.arjuna.common.Uid;
-
-import java.util.*;
+ 
 import javax.transaction.xa.*;
 
 public interface XARecoveryResource

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/recovery/XARecoveryResourceManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/recovery/XARecoveryResourceManager.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/recovery/XARecoveryResourceManager.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -33,7 +33,6 @@
 
 import com.arjuna.ats.arjuna.common.Uid;
 
-import java.util.*;
 import javax.transaction.xa.*;
 
 public interface XARecoveryResourceManager

Modified: labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/InFlightTransactionPseudoStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/InFlightTransactionPseudoStore.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTA/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/InFlightTransactionPseudoStore.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -31,6 +31,7 @@
 import com.arjuna.ats.arjuna.gandiva.inventory.InventoryElement;
 import com.arjuna.ats.arjuna.gandiva.ClassName;
 import com.arjuna.ats.arjuna.gandiva.ObjectName;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.tools.objectstorebrowser.TransactionLister;
 
 import java.util.Set;
@@ -80,7 +81,7 @@
                 Set<Uid> uids = transactionLister.getTransactions().keySet();
 
                 for (Uid uid : uids)
-                    uid.pack(store);
+                    UidHelper.packInto(uid, store);
             }
             catch (IOException e)
             {
@@ -90,7 +91,7 @@
 
         try
         {
-            Uid.nullUid().pack(store);
+            UidHelper.packInto(Uid.nullUid(), store);
         }
         catch (IOException e)
         {

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/XATerminatorImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/XATerminatorImple.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/XATerminatorImple.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -42,6 +42,7 @@
 import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.internal.jta.resources.spi.XATerminatorExtensions;
 import com.arjuna.ats.internal.jta.transaction.jts.subordinate.jca.TransactionImple;
 import com.arjuna.ats.internal.jta.transaction.jts.subordinate.jca.coordinator.ServerTransaction;
@@ -264,11 +265,11 @@
 
                 do
                 {
-                    Uid uid = new Uid(Uid.nullUid());
+                    Uid uid = null;
 
                     try
                     {
-                        uid.unpack(states);
+                        uid = UidHelper.unpackFrom(states);
                     }
                     catch (IOException ex)
                     {

Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/TransactionFactoryImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/TransactionFactoryImple.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/TransactionFactoryImple.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -31,6 +31,7 @@
 
 package com.arjuna.ats.internal.jts.orbspecific;
 
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
 import com.arjuna.ats.internal.jts.orbspecific.interposition.*;
 import com.arjuna.ats.internal.jts.ORBManager;
@@ -848,7 +849,7 @@
 		}
 		else
 		{
-			Uid theUid = new Uid(Uid.nullUid());
+			Uid theUid = null;
 			int count = 0;
 			boolean finished = false;
 
@@ -856,7 +857,7 @@
 			{
 				try
 				{
-					theUid.unpack(uids);
+					theUid = UidHelper.unpackFrom(uids);
 
 					if (theUid == Uid.nullUid())
 						finished = true;
@@ -877,7 +878,7 @@
 			{
 				try
 				{
-					theUid.unpack(uids);
+					theUid = UidHelper.unpackFrom(uids);
 
 					ids[i] = Utility.uidToOtid(theUid.stringForm());
 				}

Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/contact/ExpiredContactScanner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/contact/ExpiredContactScanner.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/contact/ExpiredContactScanner.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -42,6 +42,7 @@
 
 import com.arjuna.ats.arjuna.state.*;
 
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.jts.common.jtsPropertyManager;
 import com.arjuna.ats.jts.logging.jtsLogger;
 import com.arjuna.ats.arjuna.logging.FacilityCode;
@@ -99,14 +100,14 @@
 	    // find the uids of all the contact items
 	    if (_objectStore.allObjUids(_itemTypeName, uids))
 	    {
-		Uid theUid = new Uid(Uid.nullUid());
+		Uid theUid = null;
 
 		boolean endOfUids = false;
 
 		while (!endOfUids)
 		{
 		    // extract a uid
-		    theUid.unpack(uids);
+		    theUid = UidHelper.unpackFrom(uids);
 
 		    if (theUid.equals(Uid.nullUid()))
 			endOfUids = true;

Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -42,6 +42,7 @@
 import com.arjuna.ats.arjuna.recovery.ExpiryScanner ;
 import com.arjuna.ats.arjuna.state.InputObjectState ;
 
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.jts.logging.jtsLogger;
 import com.arjuna.ats.arjuna.logging.FacilityCode;
 import com.arjuna.common.util.logging.*;
@@ -105,14 +106,14 @@
 	    // find the uids of all the contact items
 	    if (_objectStore.allObjUids(_typeName, uids))
 	    {
-		Uid theUid = new Uid(Uid.nullUid());
+		Uid theUid = null;
 
 		boolean endOfUids = false;
 
 		while (!endOfUids)
 		{
 		    // extract a uid
-		    theUid.unpack(uids);
+		    theUid = UidHelper.unpackFrom(uids);
 
 		    if (theUid.equals(Uid.nullUid()))
 			endOfUids = true;

Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionRecoveryModule.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionRecoveryModule.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -40,6 +40,7 @@
 import com.arjuna.ats.arjuna.objectstore.*;
 import com.arjuna.ats.arjuna.*;
 import com.arjuna.ats.arjuna.state.*;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.jts.utils.*;
 import com.arjuna.ats.arjuna.exceptions.*;
 
@@ -125,7 +126,7 @@
 
 	if (anyTransactions)
 	{
-	    Uid theUid = new Uid(Uid.nullUid());
+	    Uid theUid = null;
 
 	    boolean moreUids = true;
 
@@ -133,7 +134,7 @@
 	    {
 		try
 		{
-		    theUid.unpack(uids);
+		    theUid = UidHelper.unpackFrom(uids);
 
 		    if (theUid.equals(Uid.nullUid()))
 		    {

Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ExtendedResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ExtendedResourceRecord.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ExtendedResourceRecord.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -43,6 +43,7 @@
 
 import com.arjuna.ats.jts.logging.*;
 
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.internal.jts.ORBManager;
 import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
 import com.arjuna.ats.internal.jts.orbspecific.ControlImple;
@@ -754,10 +755,8 @@
 
 			_parentCoordHandle = null;
 
-			_cachedUid = new Uid(Uid.nullUid());
+			_cachedUid = UidHelper.unpackFrom(os);
 
-			_cachedUid.unpack(os);
-
 			_cachedType = os.unpackInt();
 
 			isString = os.unpackInt();
@@ -772,7 +771,7 @@
 				 */
 
 				// Unpack recovery coordinator Uid
-				_recCoordUid.unpack(os);
+				_recCoordUid = UidHelper.unpackFrom(os);
 
 				if (jtsLogger.logger.isDebugEnabled())
 				{
@@ -831,7 +830,7 @@
 			if (_cachedUid == null)
 				_cachedUid = order();
 
-			_cachedUid.pack(os);
+			UidHelper.packInto(_cachedUid, os);
 
 			if (_cachedType == -1)
 				_cachedType = typeIs();
@@ -884,7 +883,7 @@
 				if (result)
 				{
 					// Pack recovery coordinator Uid
-					_recCoordUid.pack(os);
+				    UidHelper.packInto(_recCoordUid, os);
 
 					if (jtsLogger.logger.isDebugEnabled())
 					{

Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ResourceRecord.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/resources/ResourceRecord.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -40,6 +40,7 @@
 import com.arjuna.ats.jts.CosTransactionsNames;
 import com.arjuna.ats.jts.logging.*;
 
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.internal.jts.orbspecific.ControlImple;
 import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
 import com.arjuna.ats.internal.jts.ORBManager;
@@ -693,7 +694,7 @@
 
 		// Unpack recovery coordinator Uid
 
-		_recCoordUid.unpack(os);
+		_recCoordUid = UidHelper.unpackFrom(os);
 
 		if (jtsLogger.logger.isDebugEnabled())
 		{
@@ -778,7 +779,7 @@
 		if (result)
 		{
 		    // Pack recovery coordinator Uid
-		    _recCoordUid.pack(os);
+		    UidHelper.packInto(_recCoordUid, os);
 
 		    if (jtsLogger.logger.isDebugEnabled())
 		    {

Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer01Impls/AITMatrixImpl03.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer01Impls/AITMatrixImpl03.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer01Impls/AITMatrixImpl03.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -63,6 +63,7 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.jts.extensions.AtomicTransaction;
 import com.arjuna.ats.txoj.Lock;
 import com.arjuna.ats.txoj.LockManager;
@@ -312,7 +313,7 @@
 			{
 				for (int y = 0; y < _height; y++)
 				{
-					_values[x][y].get_uid().pack(objectState);
+				    UidHelper.packInto(_values[x][y].get_uid(), objectState);
 				}
 			}
 
@@ -334,9 +335,8 @@
 			{
 				for (int y = 0; y < _height; y++)
 				{
-					Uid uid = new Uid();
+					Uid uid = UidHelper.unpackFrom(objectState);
 
-					uid.unpack(objectState);
 					_values[x][y] = Element.obtain(uid);
 				}
 			}

Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer01Impls/AITMatrixImpl04.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer01Impls/AITMatrixImpl04.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer01Impls/AITMatrixImpl04.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -63,6 +63,7 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.jts.extensions.AtomicTransaction;
 import com.arjuna.ats.txoj.Lock;
 import com.arjuna.ats.txoj.LockManager;
@@ -243,7 +244,7 @@
 			{
 				for (int y = 0; y < _height; y++)
 				{
-					_values[x][y].get_uid().pack(objectState);
+				    UidHelper.packInto(_values[x][y].get_uid(), objectState);
 				}
 			}
 
@@ -265,9 +266,8 @@
 			{
 				for (int y = 0; y < _height; y++)
 				{
-					Uid uid = new Uid();
+					Uid uid = UidHelper.unpackFrom(objectState);
 
-					uid.unpack(objectState);
 					_values[x][y] = Element.obtain(uid);
 				}
 			}

Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer02Impls/AITMatrixImpl03.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer02Impls/AITMatrixImpl03.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer02Impls/AITMatrixImpl03.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -63,6 +63,7 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.jts.extensions.AtomicTransaction;
 import com.arjuna.ats.txoj.Lock;
 import com.arjuna.ats.txoj.LockManager;
@@ -357,7 +358,7 @@
 			{
 				for (int y = 0; y < _height; y++)
 				{
-					_values[x][y].get_uid().pack(objectState);
+				    UidHelper.packInto(_values[x][y].get_uid(), objectState);
 				}
 			}
 
@@ -379,9 +380,8 @@
 			{
 				for (int y = 0; y < _height; y++)
 				{
-					Uid uid = new Uid();
+					Uid uid = UidHelper.unpackFrom(objectState);
 
-					uid.unpack(objectState);
 					_values[x][y] = Element.obtain(uid);
 				}
 			}

Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer02Impls/AITMatrixImpl04.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer02Impls/AITMatrixImpl04.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Hammer02Impls/AITMatrixImpl04.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -63,6 +63,7 @@
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import com.arjuna.ats.jts.extensions.AtomicTransaction;
 import com.arjuna.ats.txoj.Lock;
 import com.arjuna.ats.txoj.LockManager;
@@ -304,7 +305,7 @@
 			{
 				for (int y = 0; y < _height; y++)
 				{
-					_values[x][y].get_uid().pack(objectState);
+				    UidHelper.packInto(_values[x][y].get_uid(), objectState);
 				}
 			}
 
@@ -326,9 +327,8 @@
 			{
 				for (int y = 0; y < _height; y++)
 				{
-					Uid uid = new Uid();
+					Uid uid = UidHelper.unpackFrom(objectState);
 
-					uid.unpack(objectState);
 					_values[x][y] = Element.obtain(uid);
 				}
 			}

Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/junit/testgroup/TestGroup_crashrecovery05_2.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/junit/testgroup/TestGroup_crashrecovery05_2.java	2009-10-20 16:35:36 UTC (rev 29700)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/junit/testgroup/TestGroup_crashrecovery05_2.java	2009-10-20 16:40:36 UTC (rev 29701)
@@ -2050,5 +2050,4 @@
 		server4.terminate();
 		server3.terminate();
 	}
-
 }
\ No newline at end of file



More information about the jboss-svn-commits mailing list