commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Woonsan Ko (JIRA)" <>
Subject [jira] [Commented] (SCXML-179) Leave more context (location) information when failing to execute JEXL scripts
Date Tue, 03 Dec 2013 15:29:37 GMT


Woonsan Ko commented on SCXML-179:

Hi Ate,

The reason why JEXL prints out the debugging info like 'org.apache.commons.scxml2.env.jexl.JexlEvaluator.evalScript@161![14,22]'
is that SCXML JexlEvaluator doesn't give a source location information to the JexlEngine for
itself and so JEXL engine just tries to make a debugging information by itself (by finding
the caller class (JexlEvaluator in this case) and its line number (161) as well as more debugging
purpose parsed JEXL node information ([14,22])).

In order to give a precise source location information of SCXML, we have to provide that kind
of information in commons-scxml when invoking JEXL Engine.
For example, JexlEvaluator#evalScript() invokes getJexlEngine().createScript(script) currently.
If we want to give source location info, then we'd better change it to getJexlEngine().createScript(script,
JexlInfo, null), where JexlInfo contains the debugging information.
However, the current SCXML model objects do not have source location information at all unfortunately.
It can be a good improvement to add that kind of information in SCXML model objects in the

Therefore, I wanted to stop there with the state path information for now. I'll create a separate
issue for it.



> Leave more context (location) information when failing to execute JEXL scripts
> ------------------------------------------------------------------------------
>                 Key: SCXML-179
>                 URL:
>             Project: Commons SCXML
>          Issue Type: Improvement
>            Reporter: Woonsan Ko
>            Assignee: Woonsan Ko
>            Priority: Minor
>             Fix For: 2.0
> Currently, it doesn't give enough context (location) information in warning logs when
there are script errors (e.g, undefined object usages) like the following:
> EXPRESSION_ERROR (evalScript('
>         unknownObject.invoke();
>       '):org.apache.commons.scxml2.env.jexl.JexlEvaluator.evalScript@161![14,22]: 'unknownObject.invoke();'
attempting to call method on null):
> The line number above (161) is from JexlEvaluator, not from SCXML source.
> It would be better if it gave more information somehow about the SCXML location and element
location, for instance.

This message was sent by Atlassian JIRA

View raw message