Author: markt Date: Wed Feb 8 21:15:07 2012 New Revision: 1242099 URL: http://svn.apache.org/viewvc?rev=1242099&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=52607 The ExtensionValidator needs to be aware of the classes in the shared and common loaders.
Modified: tomcat/trunk/java/org/apache/catalina/core/StandardServer.java tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java Modified: tomcat/trunk/java/org/apache/catalina/core/StandardServer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardServer.java?rev=1242099&r1=1242098&r2=1242099&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardServer.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardServer.java Wed Feb 8 21:15:07 2012 @@ -24,6 +24,9 @@ import java.io.InputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLClassLoader; import java.security.AccessControlException; import java.util.Random; @@ -37,6 +40,7 @@ import org.apache.catalina.Service; import org.apache.catalina.deploy.NamingResources; import org.apache.catalina.mbeans.MBeanFactory; import org.apache.catalina.startup.Catalina; +import org.apache.catalina.util.ExtensionValidator; import org.apache.catalina.util.LifecycleMBeanBase; import org.apache.catalina.util.ServerInfo; import org.apache.juli.logging.Log; @@ -789,6 +793,35 @@ public final class StandardServer extend // Register the naming resources globalNamingResources.init(); + // Populate the extension validator with JARs from common and shared + // class loaders + if (getCatalina() != null) { + ClassLoader cl = + getCatalina().getParentClassLoader(); + // Walk the class loader hierarchy. Stop at the system class loader. + // This will add the shared (if present) and common class loaders + while (cl != ClassLoader.getSystemClassLoader()) { + if (cl instanceof URLClassLoader) { + URL[] urls = ((URLClassLoader) cl).getURLs(); + for (URL url : urls) { + if (url.getProtocol().equals("file")) { + try { + File f = new File (url.toURI()); + if (f.isFile() && + f.getName().endsWith(".jar")) { + ExtensionValidator.addSystemResource(f); + } + } catch (URISyntaxException e) { + // Ignore + } catch (IOException e) { + // Ignore + } + } + } + } + cl = cl.getParent(); + } + } // Initialize our defined Services for (int i = 0; i < services.length; i++) { services[i].init(); Modified: tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java?rev=1242099&r1=1242098&r2=1242099&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java (original) +++ tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java Wed Feb 8 21:15:07 2012 @@ -107,8 +107,6 @@ public final class ExtensionValidator { // add specified folders to the list addFolderList("java.ext.dirs"); - addFolderList("catalina.ext.dirs"); - } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org