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