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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org