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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 27 06:41:58 EDT 2009


Author: jhalliday
Date: 2009-10-27 06:41:58 -0400 (Tue, 27 Oct 2009)
New Revision: 29830

Modified:
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Uid.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusConnectionManager.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/recovery/ExpiredTransactionStatusManagerScanner.java
Log:
Fix Uid process identifier handling and other annoyances. JBTM-623


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-27 10:35:27 UTC (rev 29829)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Uid.java	2009-10-27 10:41:58 UTC (rev 29830)
@@ -357,6 +357,12 @@
 		return stringForm();
 	}
 
+    // return the process id value in hex form.
+    // The internal format is Uids mostly should not be exposed, but some recovery/expiry code need this.
+    public String getHexPid() {
+        return Utility.intToHexString(process);
+    }
+
 	/**
 	 * Create a copy of this instance.
 	 */

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-27 10:35:27 UTC (rev 29829)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusConnectionManager.java	2009-10-27 10:41:58 UTC (rev 29830)
@@ -98,13 +98,13 @@
         int status = ActionStatus.INVALID ;
 
         // extract process id from uid
-        String process_id = get_process_id ( tranUid ) ;
+        String process_id = tranUid.getHexPid();
 
         // if the tx is in the same JVM we rely on ActionStatusService directly.
         // This skips the communication with TransactionStatusManager, which is just backed
         // by ActionStatusService anyhow. That allows TSM to be turned off for local only cases if desired.
         // Note: condition assumes ObjectStore is not shared between machines i.e. that processId is globally uniq.
-        if(! process_id.equals( get_process_id(_localUid) )) {
+        if(! process_id.equals( _localUid.getHexPid()) ) {
             status = getRemoteTransactionStatus(process_id, transactionType, tranUid);
         }
 
@@ -253,7 +253,7 @@
 	{
 	    Uid currentUid = (Uid) tsmiEnum.nextElement() ;
 
-	    String process_id = get_process_id( currentUid ) ;
+	    String process_id = currentUid.getHexPid();
 
 	    if ( ! _tscTable.containsKey( process_id ) )
 	    {
@@ -279,21 +279,6 @@
 	}
     }
 
-    /**
-     * Extract the process identifier from the supplied Uid.
-     */
-    private String get_process_id ( Uid uid )
-    {
-	// process id accessor on Uid needed!
-	// this is just a hack
-	String strUid = uid.toString() ;
-	StringTokenizer st = new StringTokenizer( strUid, ":" ) ;
-	st.nextToken() ;
-	String process_id_in_Hex = st.nextToken() ;
-
-	return process_id_in_Hex ;
-    }
-
     // Type within ObjectStore.
     private static String _typeName = TransactionStatusManagerItem.typeName() ;
 

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-27 10:35:27 UTC (rev 29829)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/utils/Utility.java	2009-10-27 10:41:58 UTC (rev 29830)
@@ -246,8 +246,6 @@
             }               
         }
 
-        System.err.println("**returning < "+myAddr[0]+", "+myAddr[1]+" >");
-        
         return myAddr;
     }
 

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-27 10:35:27 UTC (rev 29829)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java	2009-10-27 10:41:58 UTC (rev 29830)
@@ -139,7 +139,7 @@
                         // then it is removed from the object store.
                         Uid currentUid = newUid ;
                   
-                        String process_id = get_process_id( currentUid ) ;
+                        String process_id = currentUid.getHexPid();
                       
                         TransactionStatusConnector tsc = 
                            new TransactionStatusConnector ( process_id, currentUid ) ;
@@ -173,21 +173,6 @@
 	return _expiryTime != 0 ;
     }
     
-    /**
-     * Extract the process identifier from the supplied Uid.
-     */
-    private String get_process_id ( Uid uid )
-    {
-	// process id accessor on Uid needed!
-	// this is just a hack
-	String strUid = uid.toString() ;
-	StringTokenizer st = new StringTokenizer( strUid, ":" ) ;
-	st.nextToken() ;
-	String process_id_in_Hex = st.nextToken() ;
-	
-	return process_id_in_Hex ;
-    }
-    
     private String      _itemTypeName ;
     private ObjectStore _objectStore ;
     



More information about the jboss-svn-commits mailing list