[jboss-jira] [JBoss JIRA] Closed: (JBRULES-1311) NPE when compiling rule consequences
Edson Tirelli (JIRA)
jira-events at lists.jboss.org
Wed Oct 31 13:17:44 EDT 2007
[ http://jira.jboss.com/jira/browse/JBRULES-1311?page=all ]
Edson Tirelli closed JBRULES-1311.
----------------------------------
Fix Version/s: 4.0.4
Resolution: Done
Fixed.
> NPE when compiling rule consequences
> ------------------------------------
>
> Key: JBRULES-1311
> URL: http://jira.jboss.com/jira/browse/JBRULES-1311
> Project: JBoss Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Rule Assemply/SPI, Drl Parser/Builder
> Affects Versions: 4.0.0.GA, 4.0.1, 4.0.2, 4.0.3
> Reporter: Edson Tirelli
> Assigned To: Edson Tirelli
> Fix For: 4.0.4, 4.1.0
>
>
> I have the following code: (note String[] ruleFiles contains only one string)
>
> public class Engine {
> private static RuleBase ruleBase;
>
> public void start(String[] ruleFiles) throws Exception {
> PackageBuilderConfiguration cfg = new PackageBuilderConfiguration();
> JavaDialectConfiguration javaConf = (JavaDialectConfiguration) cfg.getDialectConfiguration("java");
> javaConf.setCompiler(JavaDialectConfiguration.ECLIPSE);
> PackageBuilder builder = new PackageBuilder(cfg);
> for (String file : ruleFiles) {
> builder.addPackageFromDrl(new InputStreamReader(ClassLoader.getSystemResourceAsStream(file)));
> }
> Package pkg = builder.getPackage();
>
> PackageBuilderErrors errors = builder.getErrors();
> if (errors.getErrors().length != 0) {
> // do something
> }
>
> RuleBaseConfiguration conf = new RuleBaseConfiguration();
> conf.setAssertBehaviour(RuleBaseConfiguration.AssertBehaviour.EQUALITY);
>
> ruleBase = RuleBaseFactory.newRuleBase();
> ruleBase.addPackage(pkg);
> ruleBase.newStatefulSession(false);
>
> }
> }
>
> At the builder.addPackageFromDrl(new InputStreamReader(ClassLoader.getSystemResourceAsStream(file))); line I'm getting the following exception:
> java.lang.NullPointerException
> at org.drools.rule.builder.dialect.java.JavaConsequenceBuilder.build(JavaConsequenceBuilder.java:54)
> at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:67)
> at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:446)
> at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:304)
> at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:167)
> at myPackage.rivoli.service.rules.Engine.start(Engine.java:33)
> at myPackage.rivoli.rules.LeaderKingAndHeirTest.setUp(LeaderKingAndHeirTest.java:26)
> at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>
> I am using Drools 4.0.3
> I have the following jars in my class path:
> antlr-runtime-3.0.jar
> core-3.2.3.v_686_R32x.jar
> drools-compiler-4.0.3.jar
> drools-core-4.0.3.jar
> mvel14-1.2.10.jar
>
> Any ideas would be helpful. Thanks.
>
> rule "leaders in same location"
> salience 10
> when
> $result : RuleResult(rulesPassed not contains "leaders in same location")
> $loc : LocationImpl()
> $leaderName : String()
> $leader1 : LeaderImpl(name == $leaderName, location == $loc)
> $leader2 : LeaderImpl(name != $leaderName, this != $leader1, location == $loc)
> then
> $result.addPassedRule(leaders in same location);
> update($result);
> end
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list