Author: markt
Date: Fri May 20 10:16:35 2016
New Revision: 1744684

URL: http://svn.apache.org/viewvc?rev=1744684&view=rev
Log:
Fix an EL memory leak.
Note: This fix requires changing generated code. A bug has been raised with 
JavaCC:
https://java.net/jira/browse/JAVACC-293

Modified:
    tomcat/trunk/java/org/apache/el/parser/ELParser.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/el/parser/ELParser.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/ELParser.java?rev=1744684&r1=1744683&r2=1744684&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/ELParser.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/ELParser.java Fri May 20 10:16:35 
2016
@@ -2963,7 +2963,16 @@ public class ELParser/*@bgen(jjtree)*/im
     throw generateParseException();
   }
 
-  static private final class LookaheadSuccess extends java.lang.Error { }
+  static private final class LookaheadSuccess extends java.lang.Error {
+      /*
+       * Over-ridden to avoid memory leak via Throwable.backtrace
+       * https://java.net/jira/browse/JAVACC-293
+       */
+    @Override
+    public synchronized Throwable fillInStackTrace() {
+        return this;
+    }
+  }
   final private LookaheadSuccess jj_ls = new LookaheadSuccess();
   private boolean jj_scan_token(int kind) {
     if (jj_scanpos == jj_lastpos) {

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1744684&r1=1744683&r2=1744684&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri May 20 10:16:35 2016
@@ -80,6 +80,11 @@
         <bug>59567</bug>: Fix NPE scanning webapps for TLDs when an exploded
         JAR has an empty WEB-INF/classes/META-INF folder. (remm)
       </fix>
+      <fix>
+        Fix a memory leak in the expression language implementation that caused
+        the class loader of the first web application to use expressions to be
+        pinned in memory. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Other">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to