Reevaluating after change is the whole idea of a production rule system. And you have to guard against it to avoid infinity. age == null age == 0 or use no-loop true
-W On 8 April 2011 13:39, Geoffrey De Smet <ge0ffrey.s...@gmail.com> wrote: > Related to the modify expression, > I 've always wondered about this code: > > rule "MyRule" > when > $p : Person(name = "Yoda") > then > modify ($p) { > setAge(300) > } > end > > Doesn't this create an infinite loop? (In my experience it does or at > least it takes a lot longer) > Because the modify ($p) schedules any rule using a Person back on the > agenda to be re-evaluated, > so also that rule, which is evaluated and executed again, modifying $p > again, ... hence the infinite loop? > > -- > With kind regards, > Geoffrey De Smet > > > _______________________________________________ > rules-dev mailing list > rules-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-dev > _______________________________________________ rules-dev mailing list rules-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-dev