[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