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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org