Chris, Thanks for reporting this.
I fixed a bug in 4.0.0 (released in 4.0.1) that causes you to see the correct value for "TestEval1" in 4.0.1 and later versions. Although, at that time I missed the memberOf scenario. I know why it happens (shadow fact related), but now I need to figure out a way to fix it. May I ask you to open a ticket for that? Thanks, Edson 2007/9/18, Chris West <[EMAIL PROTECTED]>: > > All, > > I'm having a problem using memberOf combined with a collect statement. My > test includes 3 rules each written to output the same results (I think), but > I get different results (depending on which version of Drools I use). > > The rules are: > > > rule "TestMemberOf" > salience 10 > when > $messages: ArrayList() from collect (Message(status == 100)) > $wrappers: ArrayList() from collect (Wrapper(message memberOf > $messages)) > then > System.out.println("TestMemberOf: " + $wrappers.size()); > end > > rule "TestEval1" > salience 9 > when > $messages: ArrayList() from collect (Message(status == 100)) > $wrappers: ArrayList() from collect (Wrapper($message: message, > eval($messages.contains($message)))) > then > System.out.println("TestEval1: " + $wrappers.size()); > end > > rule "TestEval2" > salience 8 > when > $wrappers: ArrayList() from collect (Wrapper($message: message, > eval($message.getStatus() == 100))) > then > System.out.println("TestEval2: " + $wrappers.size()); > end > > > > The output is (by version): > > 4.0.0 > > TestMemberOf: 0 > TestEval1: 0 > TestEval2: 2 > > 4.0.1 > > TestMemberOf: 0 > TestEval1: 2 > TestEval2: 2 > > 4.0.2.SNAPSHOT (taken 9/18/07) > > TestMemberOf: 0 > TestEval1: 2 > TestEval2: 2 > > > The correct output should be: > > TestMemberOf: 2 > TestEval1: 2 > TestEval2: 2 > > > Am I using memberOf correctly? Is there some issue using an eval to test > conditions on a list created by a collect? > > Any help would be appreciated. > > Attached is the full example. > > Thanks, > -Chris West > > > > _______________________________________________ > 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-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users