From f8c3b8c1098bcf62ba231ecc6e75050cdf1c3f27 Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 23 Sep 2022 23:59:38 +0800 Subject: [PATCH] fix code --- .../expression/engine/jexl/JexlEngine.java | 3 +++ .../expression/engine/rhino/RhinoEngine.java | 21 +++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/hutool-extra/src/main/java/cn/hutool/extra/expression/engine/jexl/JexlEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/expression/engine/jexl/JexlEngine.java index f4e4ce3da..3c5594752 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/expression/engine/jexl/JexlEngine.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/expression/engine/jexl/JexlEngine.java @@ -17,6 +17,9 @@ public class JexlEngine implements ExpressionEngine { private final org.apache.commons.jexl3.JexlEngine engine; + /** + * 构造 + */ public JexlEngine(){ engine = (new JexlBuilder()).cache(512).strict(true).silent(false).create(); } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/expression/engine/rhino/RhinoEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/expression/engine/rhino/RhinoEngine.java index ec52419e9..3f71d1413 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/expression/engine/rhino/RhinoEngine.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/expression/engine/rhino/RhinoEngine.java @@ -19,16 +19,15 @@ public class RhinoEngine implements ExpressionEngine { @Override public Object eval(final String expression, final Map context) { - final Context ctx = Context.enter(); - final Scriptable scope = ctx.initStandardObjects(); - if (MapUtil.isNotEmpty(context)) { - context.forEach((key, value)->{ - // 将java对象转为js对象后放置于JS的作用域中 - ScriptableObject.putProperty(scope, key, Context.javaToJS(value, scope)); - }); - } - final Object result = ctx.evaluateString(scope, expression, "rhino.js", 1, null); - Context.exit(); - return result; + try(final Context ctx = Context.enter()){ + final Scriptable scope = ctx.initStandardObjects(); + if (MapUtil.isNotEmpty(context)) { + context.forEach((key, value)->{ + // 将java对象转为js对象后放置于JS的作用域中 + ScriptableObject.putProperty(scope, key, Context.javaToJS(value, scope)); + }); + } + return ctx.evaluateString(scope, expression, "rhino.js", 1, null); + } // auto close } }