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