All,<br><br>I&#39;m having a problem using memberOf combined with a collect statement.&nbsp; 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).
<br><br>The rules are:<br><br><br>rule &quot;TestMemberOf&quot;<br>&nbsp;&nbsp;&nbsp; salience 10<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $messages: ArrayList() from collect (Message(status == 100))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $wrappers: ArrayList() from collect (Wrapper(message memberOf $messages))
<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(&quot;TestMemberOf: &quot; + $wrappers.size());<br>end<br><br>rule &quot;TestEval1&quot;<br>&nbsp;&nbsp;&nbsp; salience 9<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $messages: ArrayList() from collect (Message(status == 100))
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $wrappers: ArrayList() from collect (Wrapper($message: message, eval($messages.contains($message))))<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(&quot;TestEval1: &quot; + $wrappers.size());<br>end<br><br>rule &quot;TestEval2&quot;
<br>&nbsp;&nbsp;&nbsp; salience 8<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $wrappers: ArrayList() from collect (Wrapper($message: message, eval($message.getStatus() == 100)))<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(&quot;TestEval2: &quot; + $wrappers.size());
<br>end<br><br><br><br>The output is (by version):<br><br>4.0.0<br><br>TestMemberOf: 0<br>TestEval1: 0<br>TestEval2: 2<br><br>4.0.1<br><br>TestMemberOf: 0<br>TestEval1: 2<br>TestEval2: 2<br><br>4.0.2.SNAPSHOT (taken 9/18/07)
<br><br>TestMemberOf: 0<br>TestEval1: 2<br>TestEval2: 2<br><br><br>The correct output should be:<br><br>TestMemberOf: 2<br>
TestEval1: 2<br>
TestEval2: 2<br><br><br>Am I using memberOf correctly?&nbsp; Is there some issue using an eval to test conditions on a list created by a collect?<br><br>Any help would be appreciated.<br><br>Attached is the full example.<br><br>
Thanks,<br>-Chris West<br>
<br><br>