[jboss-cvs] JBossAS SVN: r67721 - trunk/jmx/src/main/org/jboss/mx/loading.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Dec 1 14:57:00 EST 2007


Author: scott.stark at jboss.org
Date: 2007-12-01 14:57:00 -0500 (Sat, 01 Dec 2007)
New Revision: 67721

Modified:
   trunk/jmx/src/main/org/jboss/mx/loading/UnifiedLoaderRepository3.java
Log:
Use copy on write semantic for adding a package class loader

Modified: trunk/jmx/src/main/org/jboss/mx/loading/UnifiedLoaderRepository3.java
===================================================================
--- trunk/jmx/src/main/org/jboss/mx/loading/UnifiedLoaderRepository3.java	2007-12-01 19:09:54 UTC (rev 67720)
+++ trunk/jmx/src/main/org/jboss/mx/loading/UnifiedLoaderRepository3.java	2007-12-01 19:57:00 UTC (rev 67721)
@@ -1135,6 +1135,12 @@
          }
          if( pkgSet.contains(loader) == false )
          {
+            // Make a copy of the pkgSet to avoid concurrent mods
+            Set<RepositoryClassLoader> newSet = ClassLoaderUtils.newPackageSet();
+            newSet.addAll(pkgSet);
+            packagesMap.put(pkgName, newSet);
+            pkgSet = newSet;
+            // Add the class loader
             pkgSet.add((RepositoryClassLoader)loader);
             List<String> loaderPkgNames = loaderToPackagesMap.get(loader);
             if( loaderPkgNames == null )




More information about the jboss-cvs-commits mailing list