[
https://issues.apache.org/jira/browse/JEXL-352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Henri Biestro closed JEXL-352.
------------------------------
> Possible memory leak regarding parser jjtree nodes in JEXL 3.2
> --------------------------------------------------------------
>
> Key: JEXL-352
> URL: https://issues.apache.org/jira/browse/JEXL-352
> Project: Commons JEXL
> Issue Type: Bug
> Affects Versions: 3.2
> Environment: * JEXL 3.2
> * Java 11
> * Jetty 9.4.41.v20210516
>
> Reporter: Øyvind Horneland
> Assignee: Henri Biestro
> Priority: Critical
> Fix For: 3.2.1
>
> Attachments: jexl-engine-hprof.png
>
>
> Our application encountered a memory leak issue after upgrading from JEXL 3.1
> to 3.2.
> It seems that every call to JexlEngine createExpression now adds new entries
> to engine.parser.jjtree.nodes. In our case we suddenly had millions of nodes
> in this list.
> This sample seems to reproduce the issue
> {code:java}
> JexlEngine jexlEngine = new JexlBuilder().create();
> String testExpression = "dummy";
> jexlEngine.createExpression(testExpression); //
> jexlEngine.parser.jjtree.nodes.size() == 1
> jexlEngine.createExpression(testExpression); //
> jexlEngine.parser.jjtree.nodes.size() == 2
> {code}
> We currently don't cache the returned expression and JexlEngine is configured
> with defaults as shown in the sample.
> Note that calling jexlEngine.clearCache() does not free the nodes.
> Attached screenshot for the hprof of our application with ~ 1.7 million nodes
> in jjtree.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)