You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by at...@apache.org on 2017/12/10 03:12:17 UTC
commons-scxml git commit: SCXML-258 align JEXL and Javascript
evaluator error handling with the Groovy evaluator error handling
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 <at...@apache.org>
Authored: Sun Dec 10 04:12:11 2017 +0100
Committer: Ate Douma <at...@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 + "')"));
}
}