[
https://issues.apache.org/jira/browse/SCXML-177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13838517#comment-13838517
]
Ate Douma commented on SCXML-177:
---------------------------------
Hi Woonsan,
I looked into the JexlEngine silent mode and it does make a difference with
regards to behavior.
If (silent==false) (the default) it will throw a JexlException, which then is
re-thrown by the (SCXML) JexlEvaluator as SCXMLExpressionException, which is
good.
If (silent==true) Jexl will only log a WARN message and return null (within its
invocation context).
So IMO sticking to the default silent==false for the JexlEngine should be fine,
probably without need to also configure/override this through the SCXMLReader.
The (strict==true) setting for JexlEngine should IMO also be preferred, as
default, but has a most important caveat or consequence that undefined/null
variables result in an exception.
This will thus require somewhat more verbose scripting, e.g. like requiring
'!empty(foo) and foo.booleanMethod' instead of more lenient 'foo and
foo.booleanMethod'.
Nonetheless, I'd prefer using (strict==true) for both the JexlEngine and
SCXMLReader as default, and providing SCXMLReader.setLenient(boolean) method to
override this.
> Correct error/warning messages in SCXML reading to be up-to-date
> ----------------------------------------------------------------
>
> Key: SCXML-177
> URL: https://issues.apache.org/jira/browse/SCXML-177
> Project: Commons SCXML
> Issue Type: Bug
> Reporter: Woonsan Ko
> Assignee: Woonsan Ko
> Priority: Trivial
> Fix For: 2.0
>
>
> Some error/warning logs are outdated against the newest spec.
> For example,
> org.apache.commons.scxml2.model.ModelException: No SCXML child state with ID
> "null" found; illegal initialstate for SCXML document
> at
> org.apache.commons.scxml2.io.ModelUpdater.logAndThrowModelError(ModelUpdater.java:297)
> It should inform of 'initial', not 'initialstate' and check if it is not set.
--
This message was sent by Atlassian JIRA
(v6.1#6144)