-
Bug
-
Resolution: Done
-
Major
-
5.0.1.FINAL
When following package is used:
package BROKEN_TEST;
import pl.wosik.conversion.BrokenTest.Holder;
rule "_12"
salience 3
activation-group "BROKEN"
when
$a : Holder(value in (0))
then
System.out.println("setting 0");
$a.setOutcome("setting 0");
end
rule "_13"
salience 2
activation-group "BROKEN"
when
$a : Holder(value in (1))
then
System.out.println("setting 1");
$a.setOutcome("setting 1");
end
rule "_22"
salience 1
activation-group "BROKEN"
when
$a : Holder(value == null)
then
System.out.println("setting null");
$a.setOutcome("setting null");
end
Rule "_12" will not be fired even when Holder.value is 0 because some strange interference between it's and rule _22's condition (note that _22 won't be fired as expected).
When "Holder(value in (0))" is changed into "Holder(value == 0)" or "Holder(value in (0,9))" or the whole rule_22 is removed rule _12 will be fired.
This issue is important as such seemingly strange "in (0)" condition can be generated from a decision table (as was in my case).
I will attach a self-contained Test Case.