Repository: commons-scxml
Updated Branches:
  refs/heads/master 877289e1c -> 5155f49df


SCXML-258 align JEXL and Javascript evaluator error handling with the Groovy 
evaluator error handling


Project: http://git-wip-us.apache.org/repos/asf/commons-scxml/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-scxml/commit/5155f49d
Tree: http://git-wip-us.apache.org/repos/asf/commons-scxml/tree/5155f49d
Diff: http://git-wip-us.apache.org/repos/asf/commons-scxml/diff/5155f49d

Branch: refs/heads/master
Commit: 5155f49df062171fec0a73480485926c1b428e2c
Parents: 877289e
Author: Ate Douma <a...@apache.org>
Authored: Sun Dec 10 04:12:11 2017 +0100
Committer: Ate Douma <a...@apache.org>
Committed: Sun Dec 10 04:12:11 2017 +0100

----------------------------------------------------------------------
 .../apache/commons/scxml2/env/javascript/JSEvaluator.java | 10 ++++++++--
 .../org/apache/commons/scxml2/env/jexl/JexlEvaluator.java |  5 +++++
 .../commons/scxml2/env/javascript/JSEvaluatorTest.java    |  2 +-
 3 files changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/5155f49d/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java 
b/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java
index 6686b19..66f829c 100644
--- a/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java
+++ b/src/main/java/org/apache/commons/scxml2/env/javascript/JSEvaluator.java
@@ -239,8 +239,9 @@ public class JSEvaluator extends AbstractBaseEvaluator {
             // copy Javascript global variables to SCXML context.
             
copyJavascriptGlobalsToScxmlContext(scriptContext.getBindings(ScriptContext.ENGINE_SCOPE),
 effectiveContext);
             return ret;
-        } catch (Exception x) {
-            throw new SCXMLExpressionException("Error evaluating ['" + 
expression + "'] " + x);
+        } catch (Exception e) {
+            String exMessage = e.getMessage() != null ? e.getMessage() : 
e.getClass().getCanonicalName();
+            throw new SCXMLExpressionException("eval('" + expression + "'): " 
+ exMessage, e);
         }
     }
 
@@ -268,6 +269,11 @@ public class JSEvaluator extends AbstractBaseEvaluator {
         try {
             ctx.getVars().put(ASSIGN_VARIABLE_NAME, data);
             eval(ctx, sb.toString());
+        } catch (SCXMLExpressionException e) {
+            if (e.getCause() != null && e.getCause() != null && 
e.getCause().getMessage() != null) {
+                throw new SCXMLExpressionException("Error evaluating assign to 
location=\"" + location + "\": " + e.getCause().getMessage());
+            }
+            throw e;
         } finally {
             ctx.getVars().remove(ASSIGN_VARIABLE_NAME);
         }

http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/5155f49d/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java 
b/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java
index 139446a..5ff6440 100644
--- a/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java
+++ b/src/main/java/org/apache/commons/scxml2/env/jexl/JexlEvaluator.java
@@ -188,6 +188,11 @@ public class JexlEvaluator extends AbstractBaseEvaluator {
         try {
             ctx.getVars().put(ASSIGN_VARIABLE_NAME, data);
             eval(ctx, sb.toString());
+        } catch (SCXMLExpressionException e) {
+            if (e.getCause() != null && e.getCause() != null && 
e.getCause().getMessage() != null) {
+                throw new SCXMLExpressionException("Error evaluating assign to 
location=\"" + location + "\": " + e.getCause().getMessage());
+            }
+            throw e;
         }
         finally {
             ctx.getVars().remove(ASSIGN_VARIABLE_NAME);

http://git-wip-us.apache.org/repos/asf/commons-scxml/blob/5155f49d/src/test/java/org/apache/commons/scxml2/env/javascript/JSEvaluatorTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/commons/scxml2/env/javascript/JSEvaluatorTest.java 
b/src/test/java/org/apache/commons/scxml2/env/javascript/JSEvaluatorTest.java
index e898b9c..9ef6b14 100644
--- 
a/src/test/java/org/apache/commons/scxml2/env/javascript/JSEvaluatorTest.java
+++ 
b/src/test/java/org/apache/commons/scxml2/env/javascript/JSEvaluatorTest.java
@@ -172,7 +172,7 @@ public class JSEvaluatorTest {
 
         } catch (SCXMLExpressionException x) {
             Assert.assertTrue("JSEvaluator: Incorrect error message",
-                       x.getMessage().startsWith("Error evaluating ['" + 
BAD_EXPRESSION + "']"));
+                       x.getMessage().startsWith("eval('" + BAD_EXPRESSION + 
"')"));
         }
     }
 

Reply via email to