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

The behavior of binding of a boolean unary expression in executable model is different from the one in plain drl.

    XMLWordPrintable

Details

    • Bug
    • Status: Verified (View Workflow)
    • Major
    • Resolution: Done
    • 7.1.0.GA, 7.9.1.GA
    • 7.10.1.GA
    • BRE
    • This issue is applicable for all releases from RHDM 7.1.0 to 7.9.1.

    • CR1
    • Hide
      1. Extract reproducer.
        $ unzip reproducer_model_compiler_19a.zip
        $ cd reproducer_model_compiler_19a
        
      2. Build and execute the rule.
        $ mvn clean compile exec:exec -DgenerateModel=NO
            :
            :
        ***** start
        ***** Action of rule19aT: $flag = true
        ***** Action of rule19aF: $flag = false
        ***** end
            :
            :
        
        $ mvn clean compile exec:exec -DgenerateModel=YES
            :
            :
        ***** start
        ***** Action of rule19aT: $flag = true
        ***** end
            :
            :
        
      Show
      Extract reproducer. $ unzip reproducer_model_compiler_19a.zip $ cd reproducer_model_compiler_19a Build and execute the rule. $ mvn clean compile exec:exec -DgenerateModel=NO : : ***** start ***** Action of rule19aT: $flag = true ***** Action of rule19aF: $flag = false ***** end : : $ mvn clean compile exec:exec -DgenerateModel=YES : : ***** start ***** Action of rule19aT: $flag = true ***** end : :
    • Release Notes
    • 2021 Week 07-09 (from Feb 15)
    • +

    Description

      The behavior of binding of a boolean unary expression in executable model is different from the one in plain drl.
      Concretely, when executing a rule (*1) that uses binding of a boolean unary expression in executable model and in plain drl respectively, the binding works as also a constraint in executable model while it does only binding in plain drl. The behavior between both should be the same.

      (*1)

      package com.example.reproducer
      
      dialect "java"
      
      rule "rule19aT"
        when
          $bus: Bus( $flag : Boolean.valueOf("TRUE") )
        then
          System.out.println("***** Action of rule19aT: $flag = " + $flag);
      end
      
      rule "rule19aF"
        when
          $bus: Bus( $flag : Boolean.valueOf("FALSE") )
        then
          System.out.println("***** Action of rule19aF: $flag = " + $flag);
      end
      

      Attachments

        Issue Links

          Activity

            People

              mfusco@redhat.com Mario Fusco
              rhn-support-myoshida Masato Yoshida
              Daniel Rosa Daniel Rosa
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: