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

Accumulate: min with BigDecimal doesn't work as expected when drools.propertySpecific=ALLOWED

XMLWordPrintable

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

      run attached reproducer by mvn clean test.

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

      Regarding accumulate, min function with BigDecimal does not work as expected when drools.propertySpecific is "ALLOWED".

      The following rule worked with BRMS6.1.4(6.2.0.Final-redhat-13).

      rule "rule1_BigDecimal"
          agenda-group "BigDecimal"
          when  
              accumulate( Fact( $bdVal: bdVal), $minVal : min($bdVal))
              accumulate( Fact( $bdVal2: bdVal, $bdVal2 > $minVal), $minVal2 : min($bdVal2))
           
              $minFact: Fact( bdVal == new BigDecimal($minVal.intValue()))
              $minFact2: Fact( bdVal == new BigDecimal($minVal2.intValue()))
          then
          ...
       end
      

      But after upgrading to RHPAM 7 and setting drools.propertySpecific=ALLOWED, this does not work.
      i.e. rule fires one more time than expected even though there is only one fact at the last iteration.

      This does not happen at least with Long type.

              mfusco@redhat.com Mario Fusco
              rhn-support-hmiura Hiroko Miura
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: