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

forall pattern with date constraint fail to match

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • 7.29.0.Final, 7.30.0.Final, 7.31.0.Final
    • core engine
    • None
    • 2020 Week 01-03 (from Dec 30)
    • Hide

      run

      mvn clean test
      

      on attached reproducer.

      Show
      run mvn clean test on attached reproducer.
    • NEW
    • NEW

      As of Drools 7.29.0.Final, forall patterns containing equality constraints on dates won't match as expected.

      For instance, given the following drl

          declare Fact
            d : java.util.Date
          end
          
          rule "forall with date"
          when
            forall(Fact(d == "01-Jan-2020"))
          then
          end
      

      and the following working memory:

          Fact( d=Wed Jan 01 00:00:00 CET 2020 )
          Fact( d=Wed Jan 01 00:00:00 CET 2020 )
          Fact( d=Wed Jan 01 00:00:00 CET 2020 )
      

      Drools <= 7.28.0.Final will fire 1 rule, whereas Drools >= 7.29.0.Final will fire 0 rules.

      This is probably due to the fact that the rewriting implemented in DROOLS-4632 fails to negate the constraint on the date, as visible in the attached picture of the network.

      I am wondering whether there would be an equivalent problem with any constraint on dates (e.g., >=, <=, ...)?

              mfusco@redhat.com Mario Fusco
              mcasalino Matteo Casalino (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: