[jboss-cvs] JBossAS SVN: r105150 - in projects/jboss-cl/trunk: classloader/src/main/java/org/jboss/classloader/spi/base and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon May 24 11:46:49 EDT 2010


Author: alesj
Date: 2010-05-24 11:46:49 -0400 (Mon, 24 May 2010)
New Revision: 105150

Modified:
   projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/plugins/ClassLoaderUtils.java
   projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseDelegateLoader.java
   projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/wildcard/WildcardClassLoaderPolicy.java
Log:
Fix wildcard lookup; exclude our module in matching modules.


Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/plugins/ClassLoaderUtils.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/plugins/ClassLoaderUtils.java	2010-05-24 14:52:53 UTC (rev 105149)
+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/plugins/ClassLoaderUtils.java	2010-05-24 15:46:49 UTC (rev 105150)
@@ -110,6 +110,17 @@
    }
 
    /**
+    * Convert a package name into a path
+    *
+    * @param packageName the class name
+    * @return the path
+    */
+   public static final String packageToPath(final String packageName)
+   {
+      return packageName.replace('.', '/');
+   }
+
+   /**
     * Get the package name for a class
     * 
     * @param className the class name

Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseDelegateLoader.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseDelegateLoader.java	2010-05-24 14:52:53 UTC (rev 105149)
+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/BaseDelegateLoader.java	2010-05-24 15:46:49 UTC (rev 105150)
@@ -157,7 +157,8 @@
 
    public Package getPackage(String name)
    {
-      BaseClassLoader classLoader = getBaseClassLoader("getting package ", name);
+      String path = ClassLoaderUtils.packageToPath(name);
+      BaseClassLoader classLoader = getBaseClassLoader("getting package ", path);
       if (classLoader != null)
          return classLoader.getPackageLocally(name);
       return null;

Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/wildcard/WildcardClassLoaderPolicy.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/wildcard/WildcardClassLoaderPolicy.java	2010-05-24 14:52:53 UTC (rev 105149)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/dependency/wildcard/WildcardClassLoaderPolicy.java	2010-05-24 15:46:49 UTC (rev 105150)
@@ -93,6 +93,8 @@
          classLoading.addModuleRegistry(this);
          // Find existing matching modules
          fillModules(domain);
+         // Remove our module -- potential cyclic match; we already handle our match.
+         modules.remove(module);
       }
    }
 
@@ -292,22 +294,22 @@
          boolean sameModule = module == current;
          boolean resolvedModule = false;
 
-         synchronized (this)
+         if (sameModule == false) // our module is not part of matching modules
          {
-            if (modules.remove(current))
+            synchronized (this)
             {
-               classLoaders.remove(current);
+               if (modules.remove(current))
+               {
+                  classLoaders.remove(current);
 
-               if (sameModule == false)
-               {
                   resolvedModule = true; // we were part of matching modules, but not our module
                   Domain md = getDomain(current);
                   boolean isAncestor = (domain != md);
                   if (isAncestor && domain.isParentFirst())
                      parentsBefore--;
 
+                  reset();
                }
-               reset();
             }
          }
 




More information about the jboss-cvs-commits mailing list