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