You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ki...@apache.org on 2003/10/28 20:18:54 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/util SystemLogHandler.java
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 matthias.ernst@coremedia.com
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: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org