[jboss-svn-commits] JBL Code SVN: r31934 - labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 4 08:09:38 EST 2010


Author: jhalliday
Date: 2010-03-04 08:09:37 -0500 (Thu, 04 Mar 2010)
New Revision: 31934

Modified:
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java
Log:
ensure synchronization of recovery modules in XTS.


Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java	2010-03-04 13:08:00 UTC (rev 31933)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java	2010-03-04 13:09:37 UTC (rev 31934)
@@ -45,8 +45,9 @@
         if (module == null) {
             throw new NullPointerException("XTSATRecoveryModule value must be non-null");
         }
-
-        recoveryModules.add(module);
+        synchronized (recoveryModules) {
+            recoveryModules.add(module);
+        }
     }
 
     /**
@@ -58,8 +59,11 @@
      *          if the module is not currently registered
      */
     public void unregisterRecoveryModule(XTSATRecoveryModule module) throws NoSuchElementException {
-        if (!recoveryModules.remove(module)) {
-            throw new NoSuchElementException();
+
+        synchronized (recoveryModules) {
+            if (!recoveryModules.remove(module)) {
+                throw new NoSuchElementException();
+            }
         }
     }
 
@@ -396,7 +400,7 @@
     /**
      * a map from participant ids to participant recover records
      */
-    private List<XTSATRecoveryModule> recoveryModules = new ArrayList<XTSATRecoveryModule>();
+    private final List<XTSATRecoveryModule> recoveryModules = new ArrayList<XTSATRecoveryModule>();
 
     /**
      * the tx object store to be used for saving and deleting participant details



More information about the jboss-svn-commits mailing list