[ https://issues.apache.org/jira/browse/JEXL-352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17365271#comment-17365271 ]
Øyvind Horneland commented on JEXL-352: --------------------------------------- Excellent! Thank you. > 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)