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

Fails to parse a constraint connected with OR with a bind variable on right side in executable-model

XMLWordPrintable

    • False
    • None
    • False
    • CR1
    • +
    • 2022 Week 17-19 (from Apr 25), 2022 Week 20-22 (from May 16), 2022 Week 26-28 (from Jun 27), 2022 Week 29-31 (from Jul 18)

      executable-model fails to build a rule which has "||" constraint with a bind variable on right side:

      $p : Person(name == "Mario" || $a : age > 20)
      

      It results in

      com.github.javaparser.ParseProblemException: Unknown error
      Problem stacktrace : 
        org.drools.mvel.parser.utils.AstUtils.parseBindingAfterAnd(AstUtils.java:127)
        org.drools.mvel.parser.GeneratedMvelParser.DrlxExpression(GeneratedMvelParser.java:8593)
        org.drools.mvel.parser.DrlxParser.lambda$1(DrlxParser.java:46)
        org.drools.mvel.parser.MvelParser.parse(MvelParser.java:146)
        org.drools.mvel.parser.DrlxParser.simplifiedParse(DrlxParser.java:60)
        org.drools.mvel.parser.DrlxParser.parseExpression(DrlxParser.java:56)
        org.drools.modelcompiler.builder.generator.DrlxParseUtil.parseExpression(DrlxParseUtil.java:675)
        org.drools.modelcompiler.builder.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:142)
        org.drools.modelcompiler.builder.generator.visitor.pattern.PatternDSL.findAllConstraint(PatternDSL.java:147)
        org.drools.modelcompiler.builder.generator.visitor.pattern.PatternDSL.buildPattern(PatternDSL.java:306)
        org.drools.modelcompiler.builder.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:131)
        org.drools.compiler.lang.descr.PatternDescr.accept(PatternDescr.java:303)
        org.drools.modelcompiler.builder.generator.visitor.AndVisitor.visit(AndVisitor.java:51)
        org.drools.modelcompiler.builder.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:69)
        org.drools.modelcompiler.builder.generator.ModelGenerator.processRule(ModelGenerator.java:200)
        org.drools.modelcompiler.builder.generator.ModelGenerator.processRuleDescr(ModelGenerator.java:176)
        org.drools.modelcompiler.builder.generator.ModelGenerator.generateModel(ModelGenerator.java:165)
        org.drools.modelcompiler.builder.ModelBuilderImpl.compileKnowledgePackages(ModelBuilderImpl.java:287)
        org.drools.modelcompiler.builder.ModelBuilderImpl.buildRules(ModelBuilderImpl.java:222)
        org.drools.modelcompiler.builder.ModelBuilderImpl.doSecondBuildStep(ModelBuilderImpl.java:119)
        org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:115)
        org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:99)
        org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:270)
        org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:216)
        org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:80)
        org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:277)
        org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:245)
        org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:202)
        org.drools.modelcompiler.BaseModelTest.createKieBuilder(BaseModelTest.java:147)
        org.drools.modelcompiler.BaseModelTest.createKieBuilder(BaseModelTest.java:130)
        org.drools.modelcompiler.BaseModelTest.getKieContainer(BaseModelTest.java:119)
        org.drools.modelcompiler.BaseModelTest.getKieContainer(BaseModelTest.java:112)
        org.drools.modelcompiler.BaseModelTest.getKieSession(BaseModelTest.java:108)
        org.drools.modelcompiler.BaseModelTest.getKieSession(BaseModelTest.java:104)
        org.drools.modelcompiler.BindingTest.testBindingOnRightWithOr(BindingTest.java:308)
      

      On both side as well

      $p : Person($n : name == "Mario" || $a : age > 20)
      

              rhn-support-tkobayas Toshiya Kobayashi
              fgonzale@redhat.com Fernando Gonzalez Castellanos
              Daniel Rosa Daniel Rosa
              Daniel Rosa Daniel Rosa
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: