kinman 2003/10/28 11:18:54 Modified: jasper2/src/share/org/apache/jasper/compiler Compiler.java JspRuntimeContext.java jasper2/src/share/org/apache/jasper/util SystemLogHandler.java Log: - Patch by [EMAIL PROTECTED] Fix 24186: Jasper SystemLogHandler memory leak Revision Changes Path 1.72 +0 -6 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Compiler.java Index: Compiler.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Compiler.java,v retrieving revision 1.71 retrieving revision 1.72 diff -u -r1.71 -r1.72 --- Compiler.java 1 Oct 2003 22:44:02 -0000 1.71 +++ Compiler.java 28 Oct 2003 19:18:53 -0000 1.72 @@ -98,12 +98,6 @@ // ----------------------------------------------------------------- Static - static { - - System.setErr(new SystemLogHandler(System.err)); - - } - // Some javac are not thread safe; use a lock to serialize compilation, static Object javacLock = new Object(); 1.17 +11 -5 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspRuntimeContext.java Index: JspRuntimeContext.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspRuntimeContext.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- JspRuntimeContext.java 2 Sep 2003 21:39:58 -0000 1.16 +++ JspRuntimeContext.java 28 Oct 2003 19:18:53 -0000 1.17 @@ -82,6 +82,7 @@ import org.apache.jasper.Constants; import org.apache.jasper.JspCompilationContext; import org.apache.jasper.Options; +import org.apache.jasper.util.SystemLogHandler; import org.apache.jasper.runtime.JspFactoryImpl; import org.apache.jasper.security.SecurityClassLoad; import org.apache.jasper.servlet.JspServletWrapper; @@ -125,6 +126,8 @@ */ public JspRuntimeContext(ServletContext context, Options options) { + System.setErr(new SystemLogHandler(System.err)); + this.context = context; this.options = options; @@ -271,7 +274,10 @@ /** * Process a "destory" event for this web application context. */ - public void destroy() { + public void destroy() { + + if(System.err instanceof SystemLogHandler) + System.setErr(((SystemLogHandler)System.err).getWrapped()); threadStop(); 1.3 +7 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/util/SystemLogHandler.java Index: SystemLogHandler.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/util/SystemLogHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SystemLogHandler.java 2 Sep 2003 21:40:00 -0000 1.2 +++ SystemLogHandler.java 28 Oct 2003 19:18:54 -0000 1.3 @@ -79,7 +79,7 @@ */ public SystemLogHandler(PrintStream wrapped) { super(wrapped); - out = wrapped; + this.wrapped = wrapped; } @@ -89,7 +89,7 @@ /** * Wrapped PrintStream. */ - protected PrintStream out = null; + protected PrintStream wrapped = null; /** @@ -107,6 +107,10 @@ // --------------------------------------------------------- Public Methods + public PrintStream getWrapped() { + return wrapped; + } + /** * Start capturing thread's output. */ @@ -142,7 +146,7 @@ protected PrintStream findStream() { PrintStream ps = (PrintStream) streams.get(Thread.currentThread()); if (ps == null) { - ps = out; + ps = wrapped; } return ps; }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]