Felipe,
Thanks. I'm working on it.
BTW, I forgot to mention, what you are doing to control rules is a not a good way to do it. You should try agenda-group+lock-on-active rule attributes instead.
Look at the conway's game of life as an example, and maybe help us document the feature... :)
[]s
Edson2007/7/3, Felipe Piccolini < felipe.piccolini@bluesoft.cl>:Edson,Thanks for the reply... it is nasty...Jira created...ThanksPD: duplicated email because I forgot to cut the huge-company-signature... :)On 03-07-2007, at 14:18, Edson Tirelli wrote:
Felipe,
Ok, this is a nasty damn bug. :(
I'm working on a solution for it right now. May I ask you please to open a JIRA for it and attach your code bellow?
Thank you,
Edson2007/7/3, Felipe Piccolini < felipe.piccolini@bluesoft.cl>:I know I already asked this in a previous email, but no answer and diferent subject... so I'll ask againI have an issue using update in 2 rules that update the same object... a loop is created even when I try toavoid the loop adding an extra condition to each rule... Im inserting an ArrayList as a fact too, so I can checkthe extra condition...Can anyone tell me how to fix this?Consider this://-------RULES-----------------------------package cl.bluesoft.test#list any import classes here.import java.util.Listimport java.util.ArrayListimport cl.bluesoft.test.rules.Fact#declare any global variables hererule "test update A"salience 699no-loopwhen$f : Fact($n: number > 0)$list: ArrayList( this excludes "key1" )thenSystem.out.println( "A-fact number1:"+$f.getNumber()+ " list 1:"+$list);$list.add( "key1" );$f.setNumber($n + 1);update ($f);update ($list);System.out.println("A-fact number2:" +$f.getNumber()+" list 2:" +$list);endrule "test update B"salience 699no-loopwhen$f : Fact($n: number > 1)$list: ArrayList( this excludes "key2" )thenSystem.out.println( "B-fact number1:" +$f.getNumber()+" list 1:" +$list);$list.add("key2" );$f.setNumber($n + 1);update ($f);update ($list);System.out.println("B-fact number2:" +$f.getNumber()+ " list 2:"+$list);end//-------FACT-----------------------------public class Fact implements Serializable {private static final long serialVersionUID = 331627137981862975L;private int number;public Fact(int number){this.number = number;}public Fact(){this(0);}/*** @return the number*/public int getNumber() {return number;}
/*** @param number the number to set*/public void setNumber(int number) {this.number = number;}}//------TEST---------public class TestUpdateFact implements Serializable {private static final long serialVersionUID = -574789596641083743L;/*** @param args*/public static void main(String[] args) {RuleBase ruleBase = RuleBaseFactory.newRuleBase();Package pkg = builder.getPackage();....WorkingMemory session = ruleBase.getStatefulSession();...etc etc...List list = new ArrayList();Fact fact1 = new Fact(1);session.fireAllRules();....etc, etc...}}//--------OUTPUT------------A-fact number1:1 list 1:[]A-fact number2:2 list 2:[key1]B-fact number1:2 list 1:[key1]B-fact number2:3 list 2:[key1, key2]A-fact number1:3 list 1:[key1, key2]A-fact number2:4 list 2:[key1, key2, key1]B-fact number1:4 list 1:[key1, key2, key1]B-fact number2:5 list 2:[key1, key2, key1, key2]A-fact number1:5 list 1:[key1, key2, key1, key2]A-fact number2:6 list 2:[key1, key2, key1, key2, key1]B-fact number1:6 list 1:[key1, key2, key1, key2, key1]B-fact number2:7 list 2:[key1, key2, key1, key2, key1, key2]A-fact number1:7 list 1:[key1, key2, key1, key2, key1, key2]A-fact number2:8 list 2:[key1, key2, key1, key2, key1, key2, key1]B-fact number1:8 list 1:[key1, key2, key1, key2, key1, key2, key1].... for ever.....So I have a loop... only when I use update and both rules... condition about thelist not containing "key1" and "key2" seems not properly chequed... I dont know...Can somebody help me? Am I missing something here?Thanks.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @ www.jboss.com_______________________________________________rules-users mailing list
_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @ www.jboss.com_______________________________________________rules-dev mailing list