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

Better error message for unknown property in query in exec-model

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Unresolved
    • Major
    • None
    • 7.56.0.Final
    • executable model
    • None
    • 2021 Week 28-30 (from Jul 12), 2021 Week 37-39 (from Sep 13), 2021 Week 40-42 (from Oct 4), 2021 Week 49-51 (from Dec 6th)
    • Undefined
    • NEW
    • NEW

    Description

      For query like this, assuming xxx is not Person's field,

      query Q1
          $p : Person($xxx : xxx)
      end 
      

      standard-drl gives an error like this:

         text=Field Reader does not exist for declaration '$xxx' in '$xxx : xxx' in the rule 'Q1']]
      

      but exec-model raises NPE. It should give a better error message:

      java.lang.NullPointerException
      	at org.drools.modelcompiler.builder.generator.DrlxParseUtil.findRootNodeViaScopeRec(DrlxParseUtil.java:390)
      	at org.drools.modelcompiler.builder.generator.DrlxParseUtil.findRemoveRootNodeViaScope(DrlxParseUtil.java:377)
      	at org.drools.modelcompiler.builder.generator.DrlxParseUtil.findRootNodeViaScope(DrlxParseUtil.java:381)
      	at org.drools.modelcompiler.builder.generator.DrlxParseUtil.prepend(DrlxParseUtil.java:329)
      	at org.drools.modelcompiler.builder.generator.drlxparse.ConstraintParser.parseNameExpr(ConstraintParser.java:324)
      	at org.drools.modelcompiler.builder.generator.drlxparse.ConstraintParser.getDrlxParseResult(ConstraintParser.java:203)
      	at org.drools.modelcompiler.builder.generator.drlxparse.ConstraintParser.drlxParse(ConstraintParser.java:117)
      	at org.drools.modelcompiler.builder.generator.visitor.pattern.PatternDSL.findAllConstraint(PatternDSL.java:143)
      	at org.drools.modelcompiler.builder.generator.visitor.pattern.PatternDSL.buildPattern(PatternDSL.java:264)
      	at org.drools.modelcompiler.builder.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:139)
      	at org.drools.compiler.lang.descr.PatternDescr.accept(PatternDescr.java:303)
      	at org.drools.modelcompiler.builder.generator.visitor.AndVisitor.visit(AndVisitor.java:50)
      	at org.drools.modelcompiler.builder.generator.visitor.ModelGeneratorVisitor.visit(ModelGeneratorVisitor.java:80)
      	at org.drools.modelcompiler.builder.generator.QueryGenerator.processQuery(QueryGenerator.java:110)
      	at org.drools.modelcompiler.builder.generator.ModelGenerator.processRuleDescr(ModelGenerator.java:172)
      	at org.drools.modelcompiler.builder.generator.ModelGenerator.generateModel(ModelGenerator.java:165)
      	at org.drools.modelcompiler.builder.ModelBuilderImpl.compileKnowledgePackages(ModelBuilderImpl.java:270)
      	at org.drools.modelcompiler.builder.ModelBuilderImpl.buildRules(ModelBuilderImpl.java:206)
      	at org.drools.modelcompiler.builder.ModelBuilderImpl.doSecondBuildStep(ModelBuilderImpl.java:117)
      	at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:115)
      	at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:99)
      	at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:270)
      	at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:216)
      	at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:80)
      	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:277)
      	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:245)
      	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:202)
      	at org.drools.modelcompiler.BaseModelTest.createKieBuilder(BaseModelTest.java:147)
      	at org.drools.modelcompiler.BaseModelTest.createKieBuilder(BaseModelTest.java:130)
      	at org.drools.modelcompiler.BaseModelTest.getKieContainer(BaseModelTest.java:119)
      	at org.drools.modelcompiler.BaseModelTest.getKieContainer(BaseModelTest.java:112)
      	at org.drools.modelcompiler.BaseModelTest.getKieSession(BaseModelTest.java:108)
      	at org.drools.modelcompiler.BaseModelTest.getKieSession(BaseModelTest.java:104)
      	at org.drools.modelcompiler.QueryTest.testUnknownProp(QueryTest.java:1151)
      

      Attachments

        Activity

          People

            rhn-support-tkobayas Toshiya Kobayashi
            rhn-support-tkobayas Toshiya Kobayashi
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: