Uploaded image for project: 'Red Hat Decision Manager'
  1. Red Hat Decision Manager
  2. RHDM-678

[GSS] (7.0.z) Beta node indexes don't support type coercion

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Won't Do
    • Affects Version/s: 7.0.0.GA
    • Fix Version/s: None
    • Component/s: BRE
    • Labels:

      Description

      When there is a type mismatch (e.g. String vs Integer) in a constraint, usually a type is coerced and a rule is fired.

      rule "R2"
          when
              $f : MyFactB( strData == 20 )
          then
              System.out.println( "R2 fired : $f = " + $f );
      end
      

      As far as I investigate, in case of AlphaNode, MVEL does the coercion. Also AlphaNode hashing does the coercion (https://github.com/kiegroup/drools/blob/7.5.0.Final/drools-core/src/main/java/org/drools/core/reteoo/CompositeObjectSinkAdapter.java#L748).

      However, in case of JoinNode, it doesn't coerce so doesn't fire.

      rule "R1"
          when
              MyFactA( $i : intData )
              $f : MyFactB( strData == $i )
          then
              System.out.println( "R1 fired : $f = " + $f );
      end
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  mfusco Mario Fusco
                  Reporter:
                  tkobayashi Toshiya Kobayashi
                  Tester:
                  Tibor Zimanyi
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: