[jboss-jira] [JBoss JIRA] Commented: (JBRULES-2872) NPE in AbstractCompositeRestriction when using unbound variables

Wolfgang Laun (JIRA) jira-events at lists.jboss.org
Sat Mar 19 09:08:45 EDT 2011


    [ https://issues.jboss.org/browse/JBRULES-2872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12589091#comment-12589091 ] 

Wolfgang Laun commented on JBRULES-2872:
----------------------------------------

This is the rule triggering the error
rule has been added to org.drools.verifier.overlaps.Restrictions.drl

rule "central overlap"
when
    $x: NumberRestriction( valueType == Field.INT ||
    	                             == Field.DOUBLE ||
				     == Field.DATE,
			   operator == Operator.LESS ||
				    == Operator.LESS_OR_EQUAL )

    # Covered x > 100
    $y: NumberRestriction( fieldPath == $lower.fieldPath,   ############### $lower not bound
                            path == $x.path,
			    operator == Operator.GREATER,
			    value < $x.value )
then
    System.out.println( "This is ALWAYS true " + $x + " " + $y );
end



> NPE in AbstractCompositeRestriction when using unbound variables
> ----------------------------------------------------------------
>
>                 Key: JBRULES-2872
>                 URL: https://issues.jboss.org/browse/JBRULES-2872
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-compiler
>    Affects Versions: 5.1.1.FINAL
>            Reporter: Wolfgang Laun
>            Assignee: Edson Tirelli
>
> This occurs with a pattern such as 
>    Cell( rowNo == $rano || == $rbno, colNo != $c1no && != $c2no, free contains $i )
> where one or more of the bound variables $* are not bound in previous patterns.
> Exception in thread "main" java.lang.NullPointerException
> 	at org.drools.rule.AbstractCompositeRestriction.getRequiredDeclarations(AbstractCompositeRestriction.java:59)
> 	at org.drools.rule.MultiRestrictionFieldConstraint.getRequiredDeclarations(MultiRestrictionFieldConstraint.java:73)
> 	at org.drools.rule.Pattern.setConstraintType(Pattern.java:358)
> 	at org.drools.rule.Pattern.addConstraint(Pattern.java:226)
> 	at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:432)
> 	at org.drools.rule.builder.PatternBuilder.buildConstraint(PatternBuilder.java:264)
> 	at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:213)
> 	at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:108)
> 	at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:69)
> 	at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:78)
> 	at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1203)
> 	at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:629)
> 	at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:278)
> 	at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:451)
> 	at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:28)
> 	at org.drools.examples.sudoku.rules.DroolsUtil.readKnowledgeBase(DroolsUtil.java:33)
> 	at org.drools.examples.sudoku.Main.<init>(Main.java:87)
> 	at org.drools.examples.sudoku.Main.main(Main.java:68)

--
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