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: [email protected]
For additional commands, e-mail: [email protected]