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() {

Reply via email to