You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/08/14 21:40:28 UTC

svn commit: r1618028 - /tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java

Author: markt
Date: Thu Aug 14 19:40:28 2014
New Revision: 1618028

URL: http://svn.apache.org/r1618028
Log:
Don't use exceptions for flow control - especially in the class loader. This would slow things down in the case of external repositories.

Modified:
    tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java

Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=1618028&r1=1618027&r2=1618028&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Thu Aug 14 19:40:28 2014
@@ -878,10 +878,6 @@ public class WebappClassLoader extends U
                 log.trace("      findClassInternal(" + name + ")");
             try {
                 clazz = findClassInternal(name);
-            } catch(ClassNotFoundException cnfe) {
-                if (!hasExternalRepositories) {
-                    throw cnfe;
-                }
             } catch(AccessControlException ace) {
                 log.warn("WebappClassLoader.findClassInternal(" + name
                         + ") security exception: " + ace.getMessage(), ace);
@@ -2396,11 +2392,11 @@ public class WebappClassLoader extends U
      *
      * @return the loaded class, or null if the class isn't found
      */
-    protected Class<?> findClassInternal(String name)
-        throws ClassNotFoundException {
+    protected Class<?> findClassInternal(String name) {
 
-        if (!validate(name))
-            throw new ClassNotFoundException(name);
+        if (!validate(name)) {
+            return null;
+        }
 
         String path = binaryNameToPath(name, true);
 
@@ -2414,8 +2410,9 @@ public class WebappClassLoader extends U
             entry = findResourceInternal(name, path);
         }
 
-        if (entry == null)
-            throw new ClassNotFoundException(name);
+        if (entry == null) {
+            return null;
+        }
 
         Class<?> clazz = entry.loadedClass;
         if (clazz != null)
@@ -2426,8 +2423,9 @@ public class WebappClassLoader extends U
             if (clazz != null)
                 return clazz;
 
-            if (entry.binaryContent == null)
-                throw new ClassNotFoundException(name);
+            if (entry.binaryContent == null) {
+                return null;
+            }
 
             // Looking up the package
             String packageName = null;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org