[jboss-jira] [JBoss JIRA] (JBRULES-3487) NullPointerException in org.jbpm.ruleflow.core.validation.RuleFlowProcessValidator
James Nord (JIRA)
jira-events at lists.jboss.org
Wed May 2 07:30:18 EDT 2012
[ https://issues.jboss.org/browse/JBRULES-3487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689480#comment-12689480 ]
James Nord commented on JBRULES-3487:
-------------------------------------
I have traced the underlying trigger for this back to the following xml in the .rf
(a split that had only one exit path that also included a condition)
{code}
<split id="59" name="Gateway" x="427" y="781" width="49" height="49" type="2" >
<constraints>
<constraint toNodeId="60" toType="DROOLS_DEFAULT" name="exception" priority="1" type="code" dialect="java" >return exception != null;</constraint>
</constraints>
</split>
{code}
> NullPointerException in org.jbpm.ruleflow.core.validation.RuleFlowProcessValidator
> ----------------------------------------------------------------------------------
>
> Key: JBRULES-3487
> URL: https://issues.jboss.org/browse/JBRULES-3487
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: drools-core (flow)
> Affects Versions: 5.4.0.CR1
> Reporter: James Nord
> Assignee: Mark Proctor
>
> There is a coding issue in that leads to a NullPOinterException.
> The Exception has been shown presumable due to an invalid rf file - but the code gives an unhelpful exception.
> Insepction of the code reveals that if the first condition is true on line 193 then the code will blow up - which is presumable not what the coder has intended
> {code:title=RuleFlowProcessValidator.java Line 190 onwars|borderStyle=solid}
> if (split.getType() == Split.TYPE_XOR || split.getType() == Split.TYPE_OR ) {
> for ( final Iterator<Connection> it = split.getDefaultOutgoingConnections().iterator(); it.hasNext(); ) {
> final Connection connection = it.next();
> if (split.getConstraint(connection) == null && !split.getConstraint(connection).isDefault() && (split.getConstraint(connection).getConstraint() == null || split.getConstraint(connection).getConstraint().trim().length() == 0)) {
> errors.add(new ProcessValidationErrorImpl(process,
> "Split node '" + node.getName() + "' [" + node.getId() + "] does not have a constraint for " + connection.toString() + "."));
> }
> }
> }
> {code}
> "if (split.getConstraint(connection) == null && !split.getConstraint(connection).isDefault()"
> if "split.gerConstraint(connection)" is null then "split.getConstraint(connection).isDefault()" will dereference null.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list