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

forall CE not fworking for simple forms

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
    • 5.2.0.M1
    • 5.1.1.FINAL
    • None
    • None

    Description

      Given classes
      class Triangle

      { int a, b, c;... }

      class Quadrangle

      { int a, b, c, d;... }

      with appropriate getters (but no hashCode or equals) and these facts
      Triangle( 3, 3, 3 )
      Triangle( 3, 3, 3 ) // a duplicate, intentional
      Quadrangle ( 3, 4, 5, 6 );
      the rule
      rule "all equilaterals have a 'fitting' quadrangle"
      when
      forall( Triangle( $a: a, b == $a, c == $a )
      Quadrangle( a == $a || b == $a || c == $a || d == $a ) )
      then // ...
      end
      works as expected - it fires.

      But the rule
      rule "all equilaterals have a duplicate"
      when
      forall( $t: Triangle( $a: a, b == $a, c == $a )
      Triangle( this != $t, a == $a, b == $a , c == $a ) )
      then // ...
      end
      does not fire, not even when I omit this != $t.

      Since he following rule is just a variant of (Expert) Example 4.66, "All Buses are Red", I think that there is a bug, in 5.1.1:

      // Does not fire even though all Triangle have all sides > 0
      rule "All triangle sides are greater than 0"
      when
      forall( Triangle( a > 0, b > 0, c > 0 ) )
      then
      System.out.println( "All triangle sides are > 0." );
      end

      Also, the tortuous equivalent does not fire:

      // Does not fire even though all Triangle have all sides > 0
      rule "All triangle sides are greater than 0"
      when
      forall( $t: Triangle()
      Triangle( this == $t, a > 0, b > 0, c > 0 ) )
      then
      System.out.println( "All triangle sides are > 0." );
      end

      Attachments

        Issue Links

          Activity

            People

              etirelli@redhat.com Edson Tirelli
              laune Wolfgang Laun (Inactive)
              Archiver:
              rhn-support-ceverson Clark Everson

              Dates

                Created:
                Updated:
                Resolved:
                Archived:

                PagerDuty