[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