Hi All,

I am using the 4.0.M2 version of jboss rules.

public class Device() {

private Boolean isCiscoVersion;
private Boolean sysNamePresent;
private Boolean isPixVersion;

}

When I write the rule as follows :-

rule "Cisco PIX Device"

    when
        d : Device ( isCiscoVersion == null,
                     sysNamePresent == true,
                     isPixVersion == true )
    then
        System.out.println("This is a cisco pix device.");
       
end

The rule works. However, when I write the same rule as

rule "Cisco PIX Device"

    when
        d : Device ( isCiscoVersion == false,
                     sysNamePresent == true,
                     isPixVersion == true )
    then
        System.out.println("This is a cisco pix device.");
       
end

It even fails to compile and add the rule into the package. Not sure what is going on ?.

Following is the error I keep getting :-

java.lang.NullPointerException
    at org.drools.reteoo.CompositeObjectSinkAdapter$HashKey.setValue (CompositeObjectSinkAdapter.java:501)
    at org.drools.reteoo.CompositeObjectSinkAdapter$HashKey.<init>(CompositeObjectSinkAdapter.java:441)
    at org.drools.reteoo.CompositeObjectSinkAdapter.hashSinks(CompositeObjectSinkAdapter.java :158)
    at org.drools.reteoo.CompositeObjectSinkAdapter.addObjectSink(CompositeObjectSinkAdapter.java:72)
    at org.drools.reteoo.ObjectSource.addObjectSink(ObjectSource.java:104)
    at org.drools.reteoo.ObjectTypeNode.addObjectSink (ObjectTypeNode.java:313)
    at org.drools.reteoo.AlphaNode.attach(AlphaNode.java:116)
    at org.drools.reteoo.builder.BuildUtils.attachNode(BuildUtils.java:129)
    at org.drools.reteoo.builder.PatternBuilder.attachAlphaNodes (PatternBuilder.java:119)
    at org.drools.reteoo.builder.PatternBuilder.attachPattern(PatternBuilder.java:71)
    at org.drools.reteoo.builder.PatternBuilder.build(PatternBuilder.java:55)
    at org.drools.reteoo.builder.GroupElementBuilder$AndBuilder.build (GroupElementBuilder.java:111)
    at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:69)
    at org.drools.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:143)
    at org.drools.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:108)
    at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:112)
    at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java :266)
    at org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:293)
    at com.sample.CfiTest.readRule(CfiTest.java:71)
    at com.sample.CfiTest.main(CfiTest.java:23)


Any ideas why this is happening ?.

-Krishnan.

--
Sivaramakrishna Iyer Krishnan (Anand)

Never assume the obvious is true.
- William Safire