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