]
Mark Proctor resolved JBRULES-2398.
-----------------------------------
Fix Version/s: 5.2.0.CR1
Resolution: Done
This doesn't fail on master, for 5.2. I'm comitting the unit test to catch
regressions.
Rule not fired when using 'in (0)' condition and another rule
with condition ' == null' exists
----------------------------------------------------------------------------------------------
Key: JBRULES-2398
URL:
https://issues.jboss.org/browse/JBRULES-2398
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-compiler (expert)
Affects Versions: 5.0.1.FINAL
Environment: Windows Xp Pro, Java 1.5.07
Reporter: Jaroslaw Wosik
Assignee: Mark Proctor
Labels: in_condition, interference, rule_not_fired
Fix For: 5.2.0.CR1
Attachments: test_case.zip
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.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: