Uploaded image for project: 'JBRULES'
  1. JBRULES
  2. JBRULES-1204

Problem with memberOf and/or eval used in collect statement

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 4.0.2
    • 4.0.0.GA, 4.0.1
    • None
    • None

    Description

      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

      Attachments

        Activity

          People

            etirelli@redhat.com Edson Tirelli
            crayzfishr_jira Chris West (Inactive)
            Archiver:
            rhn-support-ceverson Clark Everson

            Dates

              Created:
              Updated:
              Resolved:
              Archived:

              PagerDuty