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

ArrayIndexOutOfBoundsException when parsing rules with nested property access

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 5.5.1.Final, 6.0.0.CR1
    • 5.5.0.Final
    • None
    • None
    • Windows 7

    • Hide

      Import attached maven project. Execute the NestedPropertyTest.java and you should receive the stack trace.

      Show
      Import attached maven project. Execute the NestedPropertyTest.java and you should receive the stack trace.
    • Hide

      A workaround is to change the imports
      from:
      import nested.property.messages.*;

      to:
      import nested.property.messages.Message;
      import nested.property.messages.Payload;
      import nested.property.messages.PayloadType1;

      but in the real world this will get messy...

      Show
      A workaround is to change the imports from: import nested.property.messages.*; to: import nested.property.messages.Message; import nested.property.messages.Payload; import nested.property.messages.PayloadType1; but in the real world this will get messy...

      The rule

      Message(type == "PayloadType1", payload#PayloadType1.data.leaf == "5")

      gives the following Stack Trace:

      Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
      	at org.drools.lang.MVELDumper.concatDotSeparated(MVELDumper.java:264)
      	at org.drools.lang.MVELDumper.splitInClassAndField(MVELDumper.java:249)
      	at org.drools.lang.MVELDumper.processInlineCast(MVELDumper.java:188)
      	at org.drools.lang.MVELDumper.processImplicitConstraints(MVELDumper.java:169)
      	at org.drools.lang.MVELDumper.processAtomicExpression(MVELDumper.java:120)
      	at org.drools.lang.MVELDumper.dump(MVELDumper.java:88)
      	at org.drools.lang.MVELDumper.processRelationalExpression(MVELDumper.java:141)
      	at org.drools.lang.MVELDumper.dump(MVELDumper.java:92)
      	at org.drools.lang.MVELDumper.dump(MVELDumper.java:61)
      	at org.drools.rule.builder.PatternBuilder.buildCcdDescr(PatternBuilder.java:641)
      	at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:629)
      	at org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:477)
      	at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:302)
      	at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:123)
      	at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67)
      	at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:84)
      	at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2830)
      	at org.drools.compiler.PackageBuilder.compileRules(PackageBuilder.java:970)
      	at org.drools.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:879)
      	at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:871)
      	at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:466)
      	at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:694)
      	at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51)
      	at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:40)
      	at nested.property.NestedPropertyTest.main(NestedPropertyTest.java:53)
      

              mfusco@redhat.com Mario Fusco
              peter_backman Peter Bäckman (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: