You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/03/19 21:57:23 UTC
svn commit: r1667871 -
/tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
Author: markt
Date: Thu Mar 19 20:57:22 2015
New Revision: 1667871
URL: http://svn.apache.org/r1667871
Log:
Prevent threads from being renewed if a leak is detected. This might be why the memoty leak tests sometimes fails on Gump.
Modified:
tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
Modified: tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java?rev=1667871&r1=1667870&r2=1667871&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java (original)
+++ tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java Thu Mar 19 20:57:22 2015
@@ -17,6 +17,7 @@
package org.apache.catalina.loader;
import java.io.InputStream;
+import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Filter;
import java.util.logging.LogManager;
@@ -24,7 +25,6 @@ import java.util.logging.LogRecord;
import javax.servlet.http.HttpServletResponse;
-
import org.junit.Assert;
import org.junit.Test;
@@ -34,6 +34,7 @@ import org.apache.catalina.core.Standard
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.util.threads.ThreadPoolExecutor;
public class TestWebappClassLoaderThreadLocalMemoryLeak extends TomcatBaseTest {
@@ -52,9 +53,11 @@ public class TestWebappClassLoaderThread
"org.apache.tomcat.unittest.TesterLeakingServlet1");
ctx.addServletMapping("/leak1", "leakServlet1");
-
tomcat.start();
+ Executor executor = tomcat.getConnector().getProtocolHandler().getExecutor();
+ ((ThreadPoolExecutor) executor).setThreadRenewalDelay(-1);
+
// Configure logging filter to check leak message appears
LogValidationFilter f = new LogValidationFilter(
"The web application [ROOT] created a ThreadLocal with key of");
@@ -108,6 +111,9 @@ public class TestWebappClassLoaderThread
tomcat.start();
+ Executor executor = tomcat.getConnector().getProtocolHandler().getExecutor();
+ ((ThreadPoolExecutor) executor).setThreadRenewalDelay(-1);
+
// Configure logging filter to check leak message appears
LogValidationFilter f = new LogValidationFilter(
"The web application [ROOT] created a ThreadLocal with key of");
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org