[jboss-jira] [JBoss JIRA] Commented: (JBRULES-2932) Regression: NullPointerException in PatternBuilder.build()
Laird Nelson (JIRA)
jira-events at lists.jboss.org
Fri Mar 25 11:56:38 EDT 2011
[ https://issues.jboss.org/browse/JBRULES-2932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12591856#comment-12591856 ]
Laird Nelson commented on JBRULES-2932:
---------------------------------------
This end-user-authored rule:
{code}
rule "AfterBINTK360_C"
agenda-group "BINTK360"
when
$session : Session( $currentQuestion : currentQuestion != null, currentQuestion.ID == "BINTK360" )
$responseToTest : Response( question.ID == "BINTK359", session == $session )
exists(AnswerSelection( response == $responseToTest, selected == true, answer != null, answer.ID == 6))
not(exists(AnswerSelection( response == $responseToTest, selected == true, answer != null, answer.ID ( > 1 && < 4 ) || == 5 )))
then
$session.currentQuestion = $session.assessment.getQuestion("BINTK364")
end
{code}
...causes the NPE. Note this portion of the rule (where the problem is):
{code}
answer.ID ( > 1 && < 4 ) || == 5
{code}
This suspicious syntax is understood by Drools 5.1.1. I don't know if it _should_ be, but there you have it.
> Regression: NullPointerException in PatternBuilder.build()
> ----------------------------------------------------------
>
> Key: JBRULES-2932
> URL: https://issues.jboss.org/browse/JBRULES-2932
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: drools-compiler (expert)
> Affects Versions: 5.2.0.M1
> Reporter: Laird Nelson
> Assignee: Mark Proctor
>
> Actually using 5.2.0-SNAPSHOT as of today (March 24, 2011).
> I get this:
> {code}
> Caused by: java.lang.NullPointerException
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:323)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:268)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:107)
> at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:65)
> at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:39)
> at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:65)
> at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:39)
> at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:65)
> at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:80)
> at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1313)
> at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:664)
> at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:310)
> at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:483)
> at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:28)
> at org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:697)
> at org.drools.agent.impl.KnowledgeAgentImpl.createPackageFromResource(KnowledgeAgentImpl.java:675)
> at org.drools.agent.impl.KnowledgeAgentImpl.incrementalBuildResources(KnowledgeAgentImpl.java:882)
> at org.drools.agent.impl.KnowledgeAgentImpl.buildKnowledgeBase(KnowledgeAgentImpl.java:644)
> at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:188)
> at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:170)
> {code}
> This is on a monstrous rules file that has compiled fine for months.
> The line in question says this:
> {code}
> for ( Iterator<BaseDescr> it = result.getDescrs().iterator(); it.hasNext(); ) {
> {code}
> I have not yet fired up the debugger to see which rule is causing the problem.
> From reading other bug reports, it might be that getDescrs() returns null.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list