This is an automated email from the ASF dual-hosted git repository. bmarwell pushed a commit to branch support-java-scripting in repository https://gitbox.apache.org/repos/asf/maven-scripting-plugin.git
commit f99c295e2e56f8ac2b2d80a4f01f78860de576cc Author: Romain Manni-Bucau <[email protected]> AuthorDate: Tue Apr 19 21:03:50 2022 +0200 ensure to not leak resources using java engine --- .../maven/plugins/scripting/engine/JavaEngine.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/maven/plugins/scripting/engine/JavaEngine.java b/src/main/java/org/apache/maven/plugins/scripting/engine/JavaEngine.java index e238d51..e9d06af 100644 --- a/src/main/java/org/apache/maven/plugins/scripting/engine/JavaEngine.java +++ b/src/main/java/org/apache/maven/plugins/scripting/engine/JavaEngine.java @@ -292,7 +292,12 @@ public class JavaEngine extends AbstractScriptEngine implements Compilable, Cont @Override public Object eval(String script, ScriptContext context) throws ScriptException { - return compile(script).eval(context); + final CompiledScript compile = compile(script); + try { + return compile.eval(context); + } finally { + doClose(compile); + } } @Override @@ -315,6 +320,19 @@ public class JavaEngine extends AbstractScriptEngine implements Compilable, Cont return factory; } + private void doClose(final CompiledScript compile) { + if (!AutoCloseable.class.isInstance(compile)) { + return; + } + try { + AutoCloseable.class.cast(compile).close(); + } catch (Exception e) { + if (log != null) { + log.debug(e); + } + } + } + private String load(Reader reader) { return new BufferedReader(reader).lines().collect(joining("\n")); }
