Merge "Remove unneeded jackson references"
diff --git a/utils-test/src/main/java/org/onap/policy/common/utils/gson/GsonTestUtils.java b/utils-test/src/main/java/org/onap/policy/common/utils/gson/GsonTestUtils.java
index bfdca97..d3354e4 100644
--- a/utils-test/src/main/java/org/onap/policy/common/utils/gson/GsonTestUtils.java
+++ b/utils-test/src/main/java/org/onap/policy/common/utils/gson/GsonTestUtils.java
@@ -61,7 +61,7 @@
     /**
      * Engine used to interpolate strings before they're compared.
      */
-    private static volatile ScriptEngine engine = null;
+    private static volatile ScriptEngine engineInstance = null;
 
     /**
      * Used to encode and decode an object via gson.
@@ -198,13 +198,9 @@
             return text;
         }
 
-        // create the engine and bind the object to the variable, "obj"
-        if (engine == null) {
-            // race condition here, but it's ok to overwrite with a new engine
-            engine = new ScriptEngineManager().getEngineByName("javascript");
-        }
-
-        Bindings bindings = engine.createBindings();
+        // bind the object to the variable, "obj"
+        ScriptEngine eng = getEngine();
+        Bindings bindings = eng.createBindings();
         bindings.put("obj", object);
 
         // work our way through the text, interpolating script elements as we go
@@ -222,11 +218,15 @@
             // interpolate the script
             String script = mat.group(1);
             try {
-                Object result = engine.eval(script, bindings);
+                /*
+                 * Note: must use "eng" instead of "engineInstance" to ensure that we use
+                 * the same engine that's associated with the bindings.
+                 */
+                Object result = eng.eval(script, bindings);
                 bldr.append(result == null ? "null" : result.toString());
 
             } catch (ScriptException e) {
-                throw new RuntimeException("cannot expand element: " + mat.group(), e);
+                throw new JsonParseException("cannot expand element: " + mat.group(), e);
             }
         }
 
@@ -237,6 +237,20 @@
     }
 
     /**
+     * Gets the script engine instance.
+     *
+     * @return the script engine
+     */
+    private static ScriptEngine getEngine() {
+        if (engineInstance == null) {
+            // race condition here, but it's ok to overwrite with a new engine
+            engineInstance = new ScriptEngineManager().getEngineByName("javascript");
+        }
+
+        return engineInstance;
+    }
+
+    /**
      * Encodes an object using gson.
      *
      * @param object the object to be encoded
diff --git a/utils-test/src/test/java/org/onap/policy/common/utils/gson/GsonTestUtilsTest.java b/utils-test/src/test/java/org/onap/policy/common/utils/gson/GsonTestUtilsTest.java
index 39cde7d..58beb2a 100644
--- a/utils-test/src/test/java/org/onap/policy/common/utils/gson/GsonTestUtilsTest.java
+++ b/utils-test/src/test/java/org/onap/policy/common/utils/gson/GsonTestUtilsTest.java
@@ -135,8 +135,10 @@
         result = utils.applyScripts("use ${obj.text} this", data);
         assertEquals("use null this", result);
 
-        assertThatThrownBy(() -> utils.applyScripts("use ${obj.text} this", null)).isInstanceOf(RuntimeException.class)
-                        .hasCauseInstanceOf(ScriptException.class).hasMessage("cannot expand element: ${obj.text}");
+        assertThatThrownBy(() -> utils.applyScripts("use ${obj.text} this", null))
+                        .isInstanceOf(JsonParseException.class)
+                        .hasCauseInstanceOf(ScriptException.class)
+                        .hasMessage("cannot expand element: ${obj.text}");
     }
 
     @Test