[jboss-jira] [JBoss JIRA] Updated: (JBRULES-2751) NullPointerException in DeclarationTypeFixer: An rule compilation error should give a clear errow warning with an indication of which rule is the culprit instead of a NPE
Geoffrey De Smet (JIRA)
jira-events at lists.jboss.org
Sun Oct 24 04:17:54 EDT 2010
[ https://jira.jboss.org/browse/JBRULES-2751?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Geoffrey De Smet updated JBRULES-2751:
--------------------------------------
Summary: NullPointerException in DeclarationTypeFixer: An rule compilation error should give a clear errow warning with an indication of which rule is the culprit instead of a NPE (was: NullPointerException in DeclarationTypeFixer: An rule compilation error should give a clear errow warning with an indecation of which rule is the culprit instead of a NPE)
> NullPointerException in DeclarationTypeFixer: An rule compilation error should give a clear errow warning with an indication of which rule is the culprit instead of a NPE
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: JBRULES-2751
> URL: https://jira.jboss.org/browse/JBRULES-2751
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: drools-compiler (expert)
> Affects Versions: 5.1.1.FINAL
> Reporter: Geoffrey De Smet
> Assignee: Edson Tirelli
> Fix For: 5.2.0.M1
>
>
> {code}
> Exception in thread "main" java.lang.NullPointerException
> at org.drools.rule.builder.dialect.java.DeclarationTypeFixer.fix(DeclarationTypeFixer.java:17)
> at org.drools.rule.builder.dialect.java.AbstractJavaRuleBuilder.createVariableContext(AbstractJavaRuleBuilder.java:90)
> at org.drools.rule.builder.dialect.java.JavaAccumulateBuilder.build(JavaAccumulateBuilder.java:112)
> at org.drools.rule.builder.dialect.java.JavaAccumulateBuilder.build(JavaAccumulateBuilder.java:54)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:223)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:108)
> at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:69)
> at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:79)
> at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:1149)
> at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:631)
> at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:270)
> at org.drools.planner.config.localsearch.LocalSearchSolverConfig.buildRuleBase(LocalSearchSolverConfig.java:209)
> at org.drools.planner.config.localsearch.LocalSearchSolverConfig.buildSolver(LocalSearchSolverConfig.java:186)
> at org.drools.planner.config.XmlSolverConfigurer.buildSolver(XmlSolverConfigurer.java:93)
> at org.drools.planner.examples.cloudbalancing.app.CloudBalancingApp.createSolver(CloudBalancingApp.java:43)
> at org.drools.planner.examples.common.app.CommonApp.createSolutionBusiness(CommonApp.java:59)
> at org.drools.planner.examples.common.app.CommonApp.<init>(CommonApp.java:38)
> at org.drools.planner.examples.cloudbalancing.app.CloudBalancingApp.<init>(CloudBalancingApp.java:30)
> at org.drools.planner.examples.cloudbalancing.app.CloudBalancingApp.main(CloudBalancingApp.java:36)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)
> {code}
> Here's the rule which causes this:
> {code}
> rule "minimalCpuPowerTotal"
> when
> $cloudComputer : CloudComputer($cpuPower : cpuPower)
> $minimalCpuPowerTotal : Number(intValue > $cpuPower) from accumulate(
> CloudAssignment(
> cloudComputer == $cloudComputer,
> $minimalCpuPower : minimalCpuPower), // This is the problem, CloudAssignment.getMinimalCpuPower does not exist yet
> sum($minimalCpuPower)
> )
> then
> insertLogical(new IntConstraintOccurrence("minimalCpuPowerTotal", ConstraintType.NEGATIVE_HARD,
> $minimalCpuPowerTotal - $cpuPower,
> $cloudComputer));
> end
> {code}
> CloudAssignment did not have a getter for minimalCpuPower yet.
> The compilation error should clearly say that its the rule minimalCpuPowerTotal which has a problem and that the getter for the field minimalCpuPower wasn't found.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list