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

Reply via email to