[jboss-cvs] JBossAS SVN: r92042 - projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Aug 5 19:15:31 EDT 2009


Author: kabir.khan at jboss.com
Date: 2009-08-05 19:15:31 -0400 (Wed, 05 Aug 2009)
New Revision: 92042

Modified:
   projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelController.java
Log:
Better use of suppliers ConcurrentHashMap

Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelController.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelController.java	2009-08-05 22:44:41 UTC (rev 92041)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelController.java	2009-08-05 23:15:31 UTC (rev 92042)
@@ -28,6 +28,7 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.jboss.beans.metadata.spi.BeanMetaData;
@@ -64,7 +65,7 @@
    protected AbstractEventEmitter emitterDelegate = createEventEmitter();
 
    /** The supplies */
-   protected Map<Object, List<KernelControllerContext>> suppliers = new ConcurrentHashMap<Object, List<KernelControllerContext>>();
+   protected ConcurrentMap<Object, List<KernelControllerContext>> suppliers = new ConcurrentHashMap<Object, List<KernelControllerContext>>();
 
    /** The contexts by class Map<Class, Set<ControllerContext>> */
    protected Map<Class<?>, ClassContext> contextsByClass = new ConcurrentHashMap<Class<?>, ClassContext>();
@@ -189,7 +190,9 @@
                   if (list == null)
                   {
                      list = new CopyOnWriteArrayList<KernelControllerContext>();
-                     suppliers.put(supply, list);
+                     List<KernelControllerContext> old = suppliers.putIfAbsent(supply, list);
+                     if (old != null)
+                        list = old;
                   }
                   list.add(context);
                   if (trace)




More information about the jboss-cvs-commits mailing list