Yes, It creates the exact same infinite loop that this code does: rule "MyRule" when $p : Person(name = "Yoda") then $p.setAge(300); update($p); end
As far as I know, the results are the same. The modify() is a more compact way to do a lot of set() invocations and an update(). Maybe there are also some other advantages of using modify(), like optimization for example. Best Regards, XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Esteban Aliverti - Developer @ http://www.plugtree.com - Blog @ http://ilesteban.wordpress.com On Fri, Apr 8, 2011 at 8:39 AM, 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