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

unbalanced braces ( ... ) error when performing equalsIgnoreCase where LHS contains !. operator

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 5.5.1.Final, 6.0.0.Alpha9
    • 5.5.0.Final
    • None
    • None
    • Hide

      The project attached to the issue has the setup necessary to replicate the issue

      Show
      The project attached to the issue has the setup necessary to replicate the issue
    • Workaround Exists
    • Hide

      Change the order of comparison:

      INSTEAD:

      rule "Nested nested model rule - doesn't compile"
      dialect "mvel"
      when
      $model : Model( $nestedModel : nestedModel,
      $nestedNestedModel : nestedModel!.nestedNestedModel,
      "NestedNestedModelName".equalsIgnoreCase(nestedModel!.nestedNestedModel!.nestedNestedModelName) )
      then
      System.out.println( "I'm a nested nested model! My name is [" + $nestedNestedModel.nestedNestedModelName +"] " );
      end

      DO:

      rule "Nested nested model rule - compiles"
      dialect "mvel"
      when
      $model : Model( $nestedModel : nestedModel,
      $nestedNestedModel : nestedModel!.nestedNestedModel,
      nestedModel!.nestedNestedModel!.nestedNestedModelName.equalsIgnoreCase("NestedNestedModel") )
      then
      System.out.println( "I'm a nested nested model! My name is [" + $nestedNestedModel.nestedNestedModelName +"] " );
      end

      Show
      Change the order of comparison: INSTEAD: rule "Nested nested model rule - doesn't compile" dialect "mvel" when $model : Model( $nestedModel : nestedModel, $nestedNestedModel : nestedModel!.nestedNestedModel, "NestedNestedModelName".equalsIgnoreCase(nestedModel!.nestedNestedModel!.nestedNestedModelName) ) then System.out.println( "I'm a nested nested model! My name is [" + $nestedNestedModel.nestedNestedModelName +"] " ); end DO: rule "Nested nested model rule - compiles" dialect "mvel" when $model : Model( $nestedModel : nestedModel, $nestedNestedModel : nestedModel!.nestedNestedModel, nestedModel!.nestedNestedModel!.nestedNestedModelName.equalsIgnoreCase("NestedNestedModel") ) then System.out.println( "I'm a nested nested model! My name is [" + $nestedNestedModel.nestedNestedModelName +"] " ); end

      GIVEN RULE:

      rule "Nested nested model rule - doesn't compile"
      dialect "mvel"
      when
      $model : Model( $nestedModel : nestedModel,
      $nestedNestedModel : nestedModel!.nestedNestedModel,
      "NestedNestedModelName".equalsIgnoreCase(nestedModel!.nestedNestedModel!.nestedNestedModelName) )
      then
      System.out.println( "I'm a nested nested model! My name is [" + $nestedNestedModel.nestedNestedModelName +"] " );
      end

      The following error occurs:

      Caused by: java.lang.RuntimeException: Unable to Analyse Expression "NestedNestedModelName".equalsIgnoreCase(nestedModel != null && "NestedNestedModelName".equalsIgnoreCase(nestedModel.nestedNestedModel != null && "NestedNestedModelName".equalsIgnoreCase(nestedModel.nestedNestedModel.nestedNestedModelName):
      [Error: unbalanced braces ( ... )]
      [Near :

      {... me".equalsIgnoreCase(nestedModel != null && "Neste ....}

      ]
      ^
      [Line: 6, Column: 4] : [Rule name='Nested nested model rule - doesn't compile']

      at org.drools.container.spring.beans.KnowledgeBaseBeanFactory.afterPropertiesSet(KnowledgeBaseBeanFactory.java:121)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
      ... 17 more

      The project needed to replicate the issue is attached to the issue

            mfusco@redhat.com Mario Fusco
            marcin.grzejszczak Marcin Grzejszczak (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: