Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-4468

Invalid result with collect, mvel and ForceEagerActivationOption.YES

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • None
    • 7.25.0.Final
    • core engine
    • None
    • 2019 Week 35-37
    • Hide

      See test case in the linked PR as well as the attached reproducer (same rules, just added to run it easily against different versions).

      Show
      See test case in the linked PR as well as the attached reproducer (same rules, just added to run it easily against different versions).
    • NEW
    • NEW

    Description

      A rule updates a list in a fact:

      rule "Init"
          dialect "mvel"
          when
              $fl: FactWithList(items.size()==0)
          then
              $fl.getItems().add("A");
              $fl.getItems().add("B");
              update($fl);
      end
      

      A second rule verifies if other facts exist, matching the items in the updated list:

      rule "Expected Outcome"
          dialect "mvel"
          when
              $fl: FactWithList($itemList : items != null)
              $l: java.util.ArrayList(size > 0) from collect(FactWithString($itemList contains stringValue));
          then
              System.out.println("--> Rule: " + kcontext.getRule().getName() + " fired, " + $fl + ", collect list: " + $l.size());
      end
      

      This rule is not fired if

      • mvel dialect is used and
      • Drools is executed with ForceEagerActivationOption.YES (jBPM use case)

      Note: This worked in 7.17 and earlier!

      Attachments

        Issue Links

          Activity

            People

              mfusco@redhat.com Mario Fusco
              rhn-support-mputz Martin Weiler (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: