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

Reply via email to