Uploaded image for project: 'Commons SCXML'
  1. Commons SCXML
  2. SCXML-180

Prevent NPEs for possible null value returned from Evaluator.eval* methods

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.0
    • 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

          Activity

            People

              woon_san Woonsan Ko
              ate Ate Douma
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: