Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.0
-
None
Description
I just encountered the following NPE:
java.lang.NullPointerException
at org.apache.commons.scxml2.semantics.SCXMLSemanticsImpl.filterTransitionsSet(SCXMLSemanticsImpl.java:415)
at org.apache.commons.scxml2.SCXMLExecutor.triggerEvents(SCXMLExecutor.java:124)
at org.apache.commons.scxml2.SCXMLExecutor.reset(SCXMLExecutor.java:256)
at org.apache.commons.scxml2.SCXMLExecutor.go(SCXMLExecutor.java:349)
This turned out to be caused by an transition condition (evaluated through Jexl) resulting in, and thus also returning, a null value.
A quick scan through the usages of Evaluator.eval* method shows several locations within SCXML where it always assumes an non-null value (Boolean or otherwise) to be returned. All possible sources for unexpected NPEs.
I think that for at least the Evaluator#evalCond method, which is assumed to return a Boolean, either an error should be catched/returned or maybe even assume null == Boolean.FALSE.
Attachments
Issue Links
- is related to
-
SCXML-182 Support error event raising to comply the spec "3.12.2 Errors"
- Resolved