I'm trying to build a benchmark for drools business rule system, for that I have to take into account the specialties of the RETE algorithm. The RETE view in Drools eclispe plugin offers the opportunity to display the corresponding RETE net according to a drl. Look the code below, with this code the RETE view works, but if I replace the &&-operator with ||-operator the RETE view shows a NullPointException. Can someone plz explain this behaviour? As I can see the statements are still valid with ||-operator.
EDIT: I try to precise my question. Does the RETE network look the same no matter if || or && is used?
package performance.drools;
declare EvalFact0
e0_attrib0 : double
e0_attrib1 : double
end
declare EvalFact1
e1_attrib0 : double
e1_attrib1 : double
end
declare EvalFact2
e2_attrib0 : double
e2_attrib1 : double
end
declare EvalFact3
e3_attrib0 : double
e3_attrib1 : double
end
rule "R0"
when
$e0 : EvalFact0((e0_attrib0 > 0.187) && (e0_attrib1 > 0.469))
$e1 : EvalFact1((e1_attrib0 > 0.479) && (e1_attrib1 > 0.706))
$e2 : EvalFact2((e2_attrib0 > 0.479) && (e2_attrib1 > 0.706))
$e3 : EvalFact3((e3_attrib0 > 0.479) && (e3_attrib1 > 0.706))
then
// some action
end