This is an automated email from the ASF dual-hosted git repository.
henrib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git
The following commit(s) were added to refs/heads/master by this push:
new efd82f88 JEXL : simplify JSR233 implementation; - accommodate java21+
javadoc;
efd82f88 is described below
commit efd82f881bd7f76104247b18eb24bba216302b52
Author: Henrib <[email protected]>
AuthorDate: Sat Jun 20 14:22:27 2026 +0200
JEXL : simplify JSR233 implementation;
- accommodate java21+ javadoc;
---
.../commons/jexl3/scripting/JexlScriptEngine.java | 17 ++++++-----------
.../jexl3/scripting/JexlScriptEngineFactory.java | 1 +
2 files changed, 7 insertions(+), 11 deletions(-)
diff --git
a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java
b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java
index e35dea3f..bf875c66 100644
--- a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java
+++ b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngine.java
@@ -22,8 +22,6 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.Writer;
-import java.lang.ref.Reference;
-import java.lang.ref.SoftReference;
import java.util.Objects;
import javax.script.AbstractScriptEngine;
@@ -75,10 +73,10 @@ public class JexlScriptEngine extends AbstractScriptEngine
implements Compilable
public static class Factory extends JexlScriptEngineFactory {
/**
* The shared engine instance.
- * <p>A single soft-reference JEXL engine and JexlUberspect is shared
by all instances of JexlScriptEngine
+ * <p>A single JEXL engine and JexlUberspect is shared by all
instances of JexlScriptEngine
* created by this factory.</p>
*/
- private Reference<JexlEngine> engineReference;
+ private volatile JexlEngine jexl;
/** Default constructor. */
public Factory() {
@@ -95,15 +93,12 @@ public class JexlScriptEngine extends AbstractScriptEngine
implements Compilable
@Override
protected JexlEngine getEngine() {
- Reference<JexlEngine> ref = engineReference;
- JexlEngine engine = ref != null ? ref.get() : null;
+ JexlEngine engine = jexl;
if (engine == null) {
synchronized (this) {
- ref = engineReference;
- engine = ref != null ? ref.get() : null;
+ engine = jexl;
if (engine == null) {
- engine = createJexlEngine();
- engineReference = new SoftReference<>(engine);
+ engine = jexl = createJexlEngine();
}
}
}
@@ -115,7 +110,7 @@ public class JexlScriptEngine extends AbstractScriptEngine
implements Compilable
* @param engine the engine
*/
void setEngine(JexlEngine engine) {
- engineReference = new SoftReference<>(engine);
+ jexl = engine;
}
}
diff --git
a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java
b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java
index 2229319f..f7e5f276 100644
---
a/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java
+++
b/src/main/java/org/apache/commons/jexl3/scripting/JexlScriptEngineFactory.java
@@ -85,6 +85,7 @@ public class JexlScriptEngineFactory implements
ScriptEngineFactory {
}
/**
+ * Creates a new JexlEngine instance.
* @return a new JexlEngine instance
*/
protected JexlEngine createJexlEngine() {