A rule updates a list in a fact:
rule "Init"
dialect "mvel"
when
$fl: FactWithList(items.size()==0)
then
$fl.getItems().add("A");
$fl.getItems().add("B");
update($fl);
end
A second rule verifies if other facts exist, matching the items in the updated list:
rule "Expected Outcome"
dialect "mvel"
when
$fl: FactWithList($itemList : items != null)
$l: java.util.ArrayList(size > 0) from collect(FactWithString($itemList contains stringValue));
then
System.out.println("--> Rule: " + kcontext.getRule().getName() + " fired, " + $fl + ", collect list: " + $l.size());
end
This rule is not fired if
- mvel dialect is used and
- Drools is executed with ForceEagerActivationOption.YES (jBPM use case)
Note: This worked in 7.17 and earlier!
- clones
-
DROOLS-4468 Invalid result with collect, mvel and ForceEagerActivationOption.YES
-
- Closed
-