[jboss-cvs] JBossAS SVN: r107267 - projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/framework/server.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 2 11:53:15 EDT 2010


Author: pferraro
Date: 2010-08-02 11:53:15 -0400 (Mon, 02 Aug 2010)
New Revision: 107267

Modified:
   projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/framework/server/DistributedStateImpl.java
Log:
Fix thread safety of unregisterDSListener(...)

Modified: projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/framework/server/DistributedStateImpl.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/framework/server/DistributedStateImpl.java	2010-08-02 15:49:54 UTC (rev 107266)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/framework/server/DistributedStateImpl.java	2010-08-02 15:53:15 UTC (rev 107267)
@@ -24,6 +24,7 @@
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
@@ -389,10 +390,10 @@
       if (listeners == null)
       {
          listeners = new CopyOnWriteArrayList<DSListener>();
-         List<DSListener> other = this.keyListeners.putIfAbsent(category, listeners);
-         if (other != null )
+         List<DSListener> existing = this.keyListeners.putIfAbsent(category, listeners);
+         if (existing != null )
          {
-            listeners = other;   // use the listeners added by other thread
+            listeners = existing;   // use the listeners added by other thread
          }
       }
       listeners.add(subscriber);
@@ -405,10 +406,7 @@
       if (listeners != null)
       {
          listeners.remove(subscriber);
-         if (listeners.size() == 0)
-         {
-            this.keyListeners.remove(category);
-         }
+         this.keyListeners.remove(category, Collections.emptyList());
       }
    }
 



More information about the jboss-cvs-commits mailing list