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

Drl parser 'or'

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Done
    • Affects Version/s: 4.0.0.GA, 4.0.1, 4.0.2, 4.0.3
    • Fix Version/s: 5.0.0.M5
    • Component/s: drools-compiler
    • Labels:
      None

      Description

      I've tried to run this on the latest version of drools (4.0.3) but I get an error:
      applyOrTransformation could not find transformation for parent 'OR' and child 'OR'
      java.lang.RuntimeException: applyOrTransformation could not find transformation for parent 'OR' and child 'OR'
      at org.drools.rule.LogicTransformer.applyOrTransformation(LogicTransformer.java:148)
      at org.drools.rule.LogicTransformer.processTree(LogicTransformer.java:140)
      at org.drools.rule.LogicTransformer.transform(LogicTransformer.java:76)
      at org.drools.rule.Rule.getTransformedLhs(Rule.java:419)
      at org.drools.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:102)
      at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:116)
      at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java :268)
      at org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:337)
      at hr.combis.rule.editor.tester.RuleTesterFDAImpl.createRuleBase(RuleTesterFDAImpl.java:210)
      at hr.combis.rule.editor.tester.RuleTesterFDAImpl.init (RuleTesterFDAImpl.java:159)
      at hr.combis.rule.editor.testing.TestingExecutor.run(TestingExecutor.java:129)
      at java.lang.Thread.run(Thread.java:595)
      this is what the rule looks like:

      wine : Wine(color == "red")
      or
      (
      cheese : Cheese(smelly == "yes")
      and
      (
      person : Person(height == 12, fovouriteCheese == cheese)
      or
      person : Person(height == 13, fovouriteCheese == cheese)
      )
      )

      the rule looks perfectly sensical to me. If I change it to this (which, btw. looks non-sensical)
      wine : Wine(color == "red")
      or
      (
      cheese : Cheese(smelly == "yes")
      or
      (
      person : Person(height == 12, fovouriteCheese == cheese)
      and
      person : Person(height == 13, fovouriteCheese == cheese)
      )
      )

      I'm not saying the second one shouldn't work(I fail to make the sense of it however), but it looks to me, the first one should.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                tirelli Edson Tirelli
                Reporter:
                scvitanovic Stjepan Cvitanović
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: