With an odd usage of "from" like this,
when $p1 : Person ( ) $p2 : Person ( age < 2 ) from $p1
At modifyObject(), if LeftInputAdapterNode has JoinNode and FromNode as its sinks, when the first sink is a JoinNode, its mask doesn't intersect so doUpdateObject() is not called so the rule "R2" is not cancelled. If the first sink is a FromNode, its mask intersects so doUpdateObject() is called hence the rule "R2" is cancelled.
It may cause a random rule behaviour because the order of adding nodes depend on the order of enlisted rule assets and the assets is HashSet which has no order. (If it's single drl file like the unit test, we can expect that the nodes are added in the rule order in the file.)
Exists also a PR for a unit test: https://github.com/kiegroup/drools/pull/4194
- is caused by
-
DROOLS-6821 Inconsistent propety reactivity with Join and From
- Closed