commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Woonsan Ko (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SCXML-180) Prevent NPEs for possible null value returned from Evaluator.eval* methods
Date Wed, 04 Dec 2013 14:40:38 GMT

    [ https://issues.apache.org/jira/browse/SCXML-180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13838935#comment-13838935
] 

Woonsan Ko commented on SCXML-180:
----------------------------------

Fixed two classes (SCXMLSemanticsImpl.java and If.java) which are evaluation 'cond' expression
to treat the result as false when getting non-boolean object or catching an exception.

> Prevent NPEs for possible null value returned from Evaluator.eval* methods
> --------------------------------------------------------------------------
>
>                 Key: SCXML-180
>                 URL: https://issues.apache.org/jira/browse/SCXML-180
>             Project: Commons SCXML
>          Issue Type: Bug
>    Affects Versions: 2.0
>            Reporter: Ate Douma
>            Assignee: Woonsan Ko
>             Fix For: 2.0
>
>
> 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.
>  



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message