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: [email protected]
For additional commands, e-mail: [email protected]