Author: scott.stark(a)jboss.org
Date: 2008-06-24 01:37:06 -0400 (Tue, 24 Jun 2008)
New Revision: 682
Modified:
branches/JBOSSWEB_2_0_0_GA_CP01_JBPAPP-869/.classpath
branches/JBOSSWEB_2_0_0_GA_CP01_JBPAPP-869/src/share/classes/org/apache/catalina/loader/WebappClassLoader.java
Log:
JBPAPP-869, add a org.apache.catalina.loader.WebappClassLoader.SYSTEM_CL_DELEGATION system
property that when set to false, skips the delegation to the system class loader. The
default is true.
Modified: branches/JBOSSWEB_2_0_0_GA_CP01_JBPAPP-869/.classpath
===================================================================
--- branches/JBOSSWEB_2_0_0_GA_CP01_JBPAPP-869/.classpath 2008-06-24 00:47:38 UTC (rev
681)
+++ branches/JBOSSWEB_2_0_0_GA_CP01_JBPAPP-869/.classpath 2008-06-24 05:37:06 UTC (rev
682)
@@ -1,11 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/share/classes"/>
- <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con"
path="org.eclipse.jdt.USER_LIBRARY/JBoss5"/>
- <classpathentry kind="con"
path="org.eclipse.jdt.USER_LIBRARY/Ant165"/>
- <classpathentry kind="con"
path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3.8.1"/>
- <classpathentry kind="lib" path="lib/commons-logging.jar"/>
- <classpathentry kind="lib" path="lib/jasper-jdt.jar"/>
- <classpathentry kind="output" path="output"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/share/classes"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.USER_LIBRARY/JBoss5"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.USER_LIBRARY/Ant165"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3.8.1"/>
+ <classpathentry kind="lib" path="lib/commons-logging.jar"/>
+ <classpathentry kind="lib" path="lib/jasper-jdt.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/ant/ant/1.6.5/ant-1.6.5.jar"/>
+ <classpathentry kind="output" path="output"/>
+</classpath>
Modified:
branches/JBOSSWEB_2_0_0_GA_CP01_JBPAPP-869/src/share/classes/org/apache/catalina/loader/WebappClassLoader.java
===================================================================
---
branches/JBOSSWEB_2_0_0_GA_CP01_JBPAPP-869/src/share/classes/org/apache/catalina/loader/WebappClassLoader.java 2008-06-24
00:47:38 UTC (rev 681)
+++
branches/JBOSSWEB_2_0_0_GA_CP01_JBPAPP-869/src/share/classes/org/apache/catalina/loader/WebappClassLoader.java 2008-06-24
05:37:06 UTC (rev 682)
@@ -111,7 +111,14 @@
public static final boolean ENABLE_CLEAR_REFERENCES =
Boolean.valueOf(System.getProperty("org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES",
"true")).booleanValue();
-
+
+ public static final boolean SYSTEM_CL_DELEGATION =
+
Boolean.valueOf(System.getProperty("org.apache.catalina.loader.WebappClassLoader.SYSTEM_CL_DELEGATION",
"true")).booleanValue();
+
+ /** A list of packages that define system classes */
+ public static final String SYSTEM_CLASS_PATTERNS =
+ System.getProperty("org.apache.catalina.loader.SYSTEM_CLASS_PATTERNS",
"java.,javax.,org.ietf.jgss,org.w3c.dom,org.xml.sax");
+
protected class PrivilegedFindResource
implements PrivilegedAction {
@@ -1269,15 +1276,17 @@
// (0.2) Try loading the class with the system class loader, to prevent
// the webapp from overriding J2SE classes
- try {
- clazz = system.loadClass(name);
- if (clazz != null) {
- if (resolve)
- resolveClass(clazz);
- return (clazz);
- }
- } catch (ClassNotFoundException e) {
- // Ignore
+ if (SYSTEM_CL_DELEGATION) {
+ try {
+ clazz = system.loadClass(name);
+ if (clazz != null) {
+ if (resolve)
+ resolveClass(clazz);
+ return (clazz);
+ }
+ } catch (ClassNotFoundException e) {
+ // Ignore
+ }
}
// (0.5) Permission to access this class when using a SecurityManager
Show replies by date