[jboss-cvs] JBossAS SVN: r88167 - projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon May 4 17:39:16 EDT 2009
Author: bstansberry at jboss.com
Date: 2009-05-04 17:39:16 -0400 (Mon, 04 May 2009)
New Revision: 88167
Modified:
projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java
projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderDomain.java
Log:
[JBCL-101] Avoid BaseClassLoaderDomain.checkClassBlackList CNFE instead of suppressing it
Modified: projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java 2009-05-04 20:27:13 UTC (rev 88166)
+++ projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoader.java 2009-05-04 21:39:16 UTC (rev 88167)
@@ -351,18 +351,22 @@
* Check the cache and blacklist
*
* @param name the name of the class
+ * @param failIfBlackListed <code>true</code> if a blacklisted class should
+ * result in ClassNotFoundException; <code>false</code>
+ * if a <code>null</code> return value is acceptable
* @param trace whether trace is enabled
* @return the class is if it is already loaded, null otherwise
- * @throws ClassNotFoundException when blacklisted
+ * @throws ClassNotFoundException when the class is blacklisted and
+ * <code>failIfBlackListed</code> is <code>true</code>
*/
- protected Class<?> checkCacheAndBlackList(String name, boolean trace) throws ClassNotFoundException
+ protected Class<?> checkCacheAndBlackList(String name, boolean failIfBlackListed, boolean trace) throws ClassNotFoundException
{
BaseClassLoaderPolicy basePolicy = policy;
BaseClassLoaderDomain domain = basePolicy.getClassLoaderDomain();
if (domain == null)
return null;
- return domain.checkClassCacheAndBlackList(this, name, null, basePolicy.isImportAll());
+ return domain.checkClassCacheAndBlackList(this, name, null, basePolicy.isImportAll(), false);
}
/**
@@ -426,17 +430,9 @@
if (result != null)
return result;
- try
- {
- result = checkCacheAndBlackList(name, trace);
- if (result != null)
- return result;
- }
- catch (ClassNotFoundException blacklisted)
- {
- if (trace)
- log.trace(name + " has been blacklisted; cannot load from domain cache");
- }
+ result = checkCacheAndBlackList(name, false, trace);
+ if (result != null)
+ return result;
synchronized (this)
{
Modified: projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderDomain.java
===================================================================
--- projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderDomain.java 2009-05-04 20:27:13 UTC (rev 88166)
+++ projects/jboss-cl/branches/Branch_2_0/classloader/src/main/java/org/jboss/classloader/spi/base/BaseClassLoaderDomain.java 2009-05-04 21:39:16 UTC (rev 88167)
@@ -1487,10 +1487,14 @@
* @param name the name
* @param path the path of the class resource
* @param allExports whether to look at all exports
+ * @param failIfBlackListed <code>true</code> if a blacklisted class should
+ * result in ClassNotFoundException; <code>false</code>
+ * if a <code>null</code> return value is acceptable
* @return the class when found in the cache
- * @throws ClassNotFoundException when the class is blacklisted
+ * @throws ClassNotFoundException when the class is blacklisted and
+ * <code>failIfBlackListed</code> is <code>true</code>
*/
- protected Class<?> checkClassCacheAndBlackList(BaseClassLoader classLoader, String name, String path, boolean allExports) throws ClassNotFoundException
+ protected Class<?> checkClassCacheAndBlackList(BaseClassLoader classLoader, String name, String path, boolean allExports, boolean failIfBlackListed) throws ClassNotFoundException
{
if (path == null)
path = ClassLoaderUtils.classNameToPath(name);
@@ -1498,8 +1502,11 @@
Class<?> result = checkClassCache(classLoader, name, path, allExports);
if (result != null)
return result;
-
- checkClassBlackList(classLoader, name, path, allExports);
+
+ if (failIfBlackListed)
+ {
+ checkClassBlackList(classLoader, name, path, allExports);
+ }
return null;
}
More information about the jboss-cvs-commits
mailing list