Author: markt Date: Tue Sep 8 12:49:24 2015 New Revision: 1701793 URL: http://svn.apache.org/r1701793 Log: More preparation for implementing parallel class loading. Extract what will be the common class loader code into WebappClassLoaderBase and make WebappClassLoader a sub-class of this.
Added: tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java - copied, changed from r1701767, tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHost.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappLoader.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/security/SecurityClassLoad.java tomcat/tc7.0.x/trunk/java/org/apache/tomcat/InstrumentableClassLoader.java tomcat/tc7.0.x/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java tomcat/tc7.0.x/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java tomcat/tc7.0.x/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderWeaving.java tomcat/tc7.0.x/trunk/test/org/apache/catalina/startup/TestTomcatClassLoader.java tomcat/tc7.0.x/trunk/webapps/docs/config/loader.xml Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1701793&r1=1701792&r2=1701793&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Tue Sep 8 12:49:24 2015 @@ -852,9 +852,9 @@ public class StandardContext extends Con /** * If an HttpClient keep-alive timer thread has been started by this web * application and is still running, should Tomcat change the context class - * loader from the current {@link WebappClassLoader} to - * {@link WebappClassLoader#parent} to prevent a memory leak? Note that the - * keep-alive timer thread will stop on its own once the keep-alives all + * loader from the current {@link WebappClassLoaderBase} to + * {@link WebappClassLoaderBase#parent} to prevent a memory leak? Note that + * the keep-alive timer thread will stop on its own once the keep-alives all * expire however, on a busy system that might not happen for some time. */ private boolean clearReferencesHttpClientKeepAliveThread = true; Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHost.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHost.java?rev=1701793&r1=1701792&r2=1701793&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHost.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardHost.java Tue Sep 8 12:49:24 2015 @@ -34,7 +34,7 @@ import org.apache.catalina.LifecycleEven import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleListener; import org.apache.catalina.Valve; -import org.apache.catalina.loader.WebappClassLoader; +import org.apache.catalina.loader.WebappClassLoaderBase; import org.apache.catalina.mbeans.MBeanUtils; import org.apache.catalina.valves.ValveBase; import org.apache.tomcat.util.ExceptionUtils; @@ -687,8 +687,8 @@ public class StandardHost extends Contai for (Map.Entry<ClassLoader, String> entry : childClassLoaders.entrySet()) { ClassLoader cl = entry.getKey(); - if (cl instanceof WebappClassLoader) { - if (!((WebappClassLoader) cl).isStarted()) { + if (cl instanceof WebappClassLoaderBase) { + if (!((WebappClassLoaderBase) cl).isStarted()) { result.add(entry.getValue()); } } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java?rev=1701793&r1=1701792&r2=1701793&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java Tue Sep 8 12:49:24 2015 @@ -27,14 +27,15 @@ import java.util.HashSet; import java.util.List; /** - * This class is loaded by the {@link WebappClassLoader} to enable it to + * This class is loaded by {@link WebappClassLoaderBase} to enable it to * deregister JDBC drivers forgotten by the web application. There are some - * classloading hacks involved - see {@link WebappClassLoader#clearReferences()} - * for details - but the short version is do not just create a new instance of - * this class with the new keyword. + * classloading hacks involved - see + * {@link WebappClassLoaderBase#clearReferences()} for details - but the short + * version is do not just create a new instance of this class with the new + * keyword. * - * Since this class is loaded by {@link WebappClassLoader}, it can not refer to - * any internal Tomcat classes as that will cause the security manager to + * Since this class is loaded by {@link WebappClassLoaderBase}, it can not refer + * to any internal Tomcat classes as that will cause the security manager to * complain. */ public class JdbcLeakPrevention { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org