[jboss-cvs] JBossAS SVN: r107100 - in projects/jboss-cl/trunk: classloading/src/main/java/org/jboss/classloading/spi/dependency/policy and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jul 27 04:29:22 EDT 2010


Author: alesj
Date: 2010-07-27 04:29:21 -0400 (Tue, 27 Jul 2010)
New Revision: 107100

Modified:
   projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/helpers/AbstractClassLoaderCache.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/ClassLoaderPolicyModule.java
Log:
Fix a few minor issues; bl flush, sooner cache reg.

Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/helpers/AbstractClassLoaderCache.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/helpers/AbstractClassLoaderCache.java	2010-07-27 06:22:50 UTC (rev 107099)
+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/helpers/AbstractClassLoaderCache.java	2010-07-27 08:29:21 UTC (rev 107100)
@@ -106,31 +106,24 @@
          else
             resourceCache = new ConcurrentHashMap<String, URL>(other.resourceCache);
       }
-      // TODO - join black lists OK?
-      if (other.classBlackList != null)
-      {
-         if (classBlackList != null)
-            classBlackList.addAll(other.classBlackList);
-         else
-            classBlackList = new ConcurrentSet<String>(other.classBlackList);
-      }
-      if (other.resourceBlackList != null)
-      {
-         if (resourceBlackList != null)
-            resourceBlackList.addAll(other.resourceBlackList);
-         else
-            resourceBlackList = new ConcurrentSet<String>(other.resourceBlackList);
-      }
+
+      // previously bl resources can now become available - flush it
+      flushBlackLists();
    }
 
    public void flushCaches()
    {
       if (classCache != null)
          classCache.clear();
-      if (classBlackList != null)
-         classBlackList.clear();
       if (resourceCache != null)
          resourceCache.clear();
+      flushBlackLists();
+   }
+
+   private void flushBlackLists()
+   {
+      if (classBlackList != null)
+         classBlackList.clear();
       if (resourceBlackList != null)
          resourceBlackList.clear();
    }

Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/ClassLoaderPolicyModule.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/ClassLoaderPolicyModule.java	2010-07-27 06:22:50 UTC (rev 107099)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/policy/ClassLoaderPolicyModule.java	2010-07-27 08:29:21 UTC (rev 107100)
@@ -142,10 +142,10 @@
       String domainName = getDeterminedDomainName();
       ParentPolicy parentPolicy = getDeterminedParentPolicy();
       String parentName = getDeterminedParentDomainName();
+      registerCache(); // register cache before, to avoid potential race condition
       ClassLoader result = system.registerClassLoaderPolicy(domainName, parentPolicy, parentName, getPolicy());
       this.system = system;
       this.classLoader = result;
-      registerCache();
       registerModuleClassLoader(this, result);
       return result;
    }
@@ -168,11 +168,7 @@
          throw new IllegalStateException("Module " + this + " is not registered, see previous error messages");
 
       Loader loader = new ClassLoaderToLoaderAdapter(parent);
-      ClassLoader result = registerClassLoaderPolicy(system, loader);
-      this.classLoader = result;
-      registerCache();
-      registerModuleClassLoader(this, result);
-      return result;
+      return registerClassLoaderPolicy(system, loader);
    }
 
    /**
@@ -192,10 +188,10 @@
 
       String domainName = getDeterminedDomainName();
       ParentPolicy parentPolicy = getDeterminedParentPolicy();
+      registerCache(); // register cache before, to avoid potential race condition
       ClassLoader result = system.registerClassLoaderPolicy(domainName, parentPolicy, loader, getPolicy());
       this.system = system;
       this.classLoader = result;
-      registerCache();
       registerModuleClassLoader(this, result);
       return result;
    }



More information about the jboss-cvs-commits mailing list