[jboss-jira] [JBoss JIRA] (DROOLS-467) Invalid DRL throws an IndexOutOfBoundsException, but it should throw a better error message, including the line number

Geoffrey De Smet (JIRA) issues at jboss.org
Wed Apr 16 05:36:34 EDT 2014


     [ https://issues.jboss.org/browse/DROOLS-467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Geoffrey De Smet updated DROOLS-467:
------------------------------------

    Description: 
*The DRL in the first comment should throw a better error message than just IndexOutOfBoundsException. It should at least mention the line number.*
The rest of this discussion - which relates to decision tables etc - is irrelevant.




I apparently did something wrong in my xls. But the error message doesn't give me a clue.

{code}
Exception in thread "main" java.lang.IndexOutOfBoundsException: Error trying to access field at position 0
	at org.drools.core.factmodel.ClassDefinition.getField(ClassDefinition.java:185)
	at org.drools.compiler.rule.builder.PatternBuilder.processPositional(PatternBuilder.java:606)
	at org.drools.compiler.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:515)
	at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:326)
	at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:137)
	at org.drools.compiler.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67)
	at org.drools.compiler.rule.builder.RuleBuilder.build(RuleBuilder.java:90)
	at org.drools.compiler.compiler.PackageBuilder.addRule(PackageBuilder.java:3520)
	at org.drools.compiler.compiler.PackageBuilder.compileRules(PackageBuilder.java:1093)
	at org.drools.compiler.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:972)
	at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildRules(CompositeKnowledgeBuilderImpl.java:275)
	at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildPackages(CompositeKnowledgeBuilderImpl.java:99)
	at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:87)
	at org.drools.compiler.kie.builder.impl.AbstractKieModule.buildKnowledgePackages(AbstractKieModule.java:219)
	at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:39)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:208)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:177)
	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildKieBase(ScoreDirectorFactoryConfig.java:376)
	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildDroolsScoreDirectorFactory(ScoreDirectorFactoryConfig.java:318)
	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:213)
	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:201)
	at org.optaplanner.core.config.solver.SolverConfig.buildSolver(SolverConfig.java:178)
	at org.optaplanner.core.impl.solver.XStreamXmlSolverFactory.buildSolver(XStreamXmlSolverFactory.java:128)
	at org.optaplanner.examples.cloudbalancing.app.CloudBalancingApp.createSolver(CloudBalancingApp.java:48)
	at org.optaplanner.examples.common.app.CommonApp.createSolutionBusiness(CommonApp.java:106)
	at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:92)
	at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:88)
	at org.optaplanner.examples.cloudbalancing.app.CloudBalancingApp.main(CloudBalancingApp.java:34)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
{code}

  was:
*The DRL in the first comment should throw a better error message than just IndexOutOfBoundsException.*
The rest of this discussion - which relates to decision tables etc - is irrelevant.




I apparently did something wrong in my xls. But the error message doesn't give me a clue.

{code}
Exception in thread "main" java.lang.IndexOutOfBoundsException: Error trying to access field at position 0
	at org.drools.core.factmodel.ClassDefinition.getField(ClassDefinition.java:185)
	at org.drools.compiler.rule.builder.PatternBuilder.processPositional(PatternBuilder.java:606)
	at org.drools.compiler.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:515)
	at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:326)
	at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:137)
	at org.drools.compiler.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67)
	at org.drools.compiler.rule.builder.RuleBuilder.build(RuleBuilder.java:90)
	at org.drools.compiler.compiler.PackageBuilder.addRule(PackageBuilder.java:3520)
	at org.drools.compiler.compiler.PackageBuilder.compileRules(PackageBuilder.java:1093)
	at org.drools.compiler.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:972)
	at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildRules(CompositeKnowledgeBuilderImpl.java:275)
	at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildPackages(CompositeKnowledgeBuilderImpl.java:99)
	at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:87)
	at org.drools.compiler.kie.builder.impl.AbstractKieModule.buildKnowledgePackages(AbstractKieModule.java:219)
	at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:39)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:208)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:177)
	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildKieBase(ScoreDirectorFactoryConfig.java:376)
	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildDroolsScoreDirectorFactory(ScoreDirectorFactoryConfig.java:318)
	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:213)
	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:201)
	at org.optaplanner.core.config.solver.SolverConfig.buildSolver(SolverConfig.java:178)
	at org.optaplanner.core.impl.solver.XStreamXmlSolverFactory.buildSolver(XStreamXmlSolverFactory.java:128)
	at org.optaplanner.examples.cloudbalancing.app.CloudBalancingApp.createSolver(CloudBalancingApp.java:48)
	at org.optaplanner.examples.common.app.CommonApp.createSolutionBusiness(CommonApp.java:106)
	at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:92)
	at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:88)
	at org.optaplanner.examples.cloudbalancing.app.CloudBalancingApp.main(CloudBalancingApp.java:34)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
{code}


    
> Invalid DRL throws an IndexOutOfBoundsException, but it should throw a better error message, including the line number
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: DROOLS-467
>                 URL: https://issues.jboss.org/browse/DROOLS-467
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 6.1.0.Beta2
>            Reporter: Geoffrey De Smet
>            Assignee: Edson Tirelli
>         Attachments: cloudBalancingExtraScoreRules.xls, cloudBalancingScoreRules.drl
>
>
> *The DRL in the first comment should throw a better error message than just IndexOutOfBoundsException. It should at least mention the line number.*
> The rest of this discussion - which relates to decision tables etc - is irrelevant.
> I apparently did something wrong in my xls. But the error message doesn't give me a clue.
> {code}
> Exception in thread "main" java.lang.IndexOutOfBoundsException: Error trying to access field at position 0
> 	at org.drools.core.factmodel.ClassDefinition.getField(ClassDefinition.java:185)
> 	at org.drools.compiler.rule.builder.PatternBuilder.processPositional(PatternBuilder.java:606)
> 	at org.drools.compiler.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:515)
> 	at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:326)
> 	at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:137)
> 	at org.drools.compiler.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67)
> 	at org.drools.compiler.rule.builder.RuleBuilder.build(RuleBuilder.java:90)
> 	at org.drools.compiler.compiler.PackageBuilder.addRule(PackageBuilder.java:3520)
> 	at org.drools.compiler.compiler.PackageBuilder.compileRules(PackageBuilder.java:1093)
> 	at org.drools.compiler.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:972)
> 	at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildRules(CompositeKnowledgeBuilderImpl.java:275)
> 	at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildPackages(CompositeKnowledgeBuilderImpl.java:99)
> 	at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:87)
> 	at org.drools.compiler.kie.builder.impl.AbstractKieModule.buildKnowledgePackages(AbstractKieModule.java:219)
> 	at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:39)
> 	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:208)
> 	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:177)
> 	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildKieBase(ScoreDirectorFactoryConfig.java:376)
> 	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildDroolsScoreDirectorFactory(ScoreDirectorFactoryConfig.java:318)
> 	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:213)
> 	at org.optaplanner.core.config.score.director.ScoreDirectorFactoryConfig.buildScoreDirectorFactory(ScoreDirectorFactoryConfig.java:201)
> 	at org.optaplanner.core.config.solver.SolverConfig.buildSolver(SolverConfig.java:178)
> 	at org.optaplanner.core.impl.solver.XStreamXmlSolverFactory.buildSolver(XStreamXmlSolverFactory.java:128)
> 	at org.optaplanner.examples.cloudbalancing.app.CloudBalancingApp.createSolver(CloudBalancingApp.java:48)
> 	at org.optaplanner.examples.common.app.CommonApp.createSolutionBusiness(CommonApp.java:106)
> 	at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:92)
> 	at org.optaplanner.examples.common.app.CommonApp.init(CommonApp.java:88)
> 	at org.optaplanner.examples.cloudbalancing.app.CloudBalancingApp.main(CloudBalancingApp.java:34)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list