[jboss-jira] [JBoss JIRA] Created: (JBRULES-394) NPE trying to add the same drl to a rulebase twice

k s (JIRA) jira-events at jboss.com
Wed Aug 9 21:37:12 EDT 2006


NPE trying to add the same drl to a rulebase twice
--------------------------------------------------

                 Key: JBRULES-394
                 URL: http://jira.jboss.com/jira/browse/JBRULES-394
             Project: JBoss Rules
          Issue Type: Bug
      Security Level: Public (Everyone can see)
    Affects Versions: 3.0.3
            Reporter: k s
         Assigned To: Mark Proctor
            Priority: Minor


While doing some experimenting, I generated two almost identical DRLs out of almost identical decision tables. The only difference is in the ruleset/package name The DRLs are provided below. Then I tried to add the two DRLs as packages in the same rulebase. That was not really intentional, but that's another story!. Anyway, the attempt to add the second package resulted in a NPE at point where rule names are checked for equality. After playing around a bit, it seems that the root of the problem is that the rules in the two packages have the same names. 

----------------------------------------------------------
Here's the relevant stack trace:
----------------------------------------------------------
java.lang.NullPointerException
	at org.drools.rule.Rule.equals(Rule.java:435)
	at org.drools.reteoo.TerminalNode.equals(TerminalNode.java:320)
	at java.util.ArrayList.indexOf(ArrayList.java:220)
	at java.util.ArrayList.contains(ArrayList.java:201)
	at org.drools.reteoo.TupleSource.addTupleSink(TupleSource.java:79)
	at org.drools.reteoo.TerminalNode.attach(TerminalNode.java:250)
	at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:195)
	at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:240)
	at org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:255)
----------------------------------------------------------
Here are the first DRL:
----------------------------------------------------------
package Some_business_rules;
#generated from Decision Table
import org.drools.decisiontable.Cheese;
import org.drools.decisiontable.Person;
global java.util.List list;
#From row number: 17
rule "Cheese fans_17"
 
 salience 65519
 when
  Person(age == 42)
  Cheese(type=="stilton")
 then
  list.add("Old man stilton");
end

#From row number: 18
rule "Cheese fans_18"
 
 salience 65518
 when
  Person(age == 21)
  Cheese(type=="cheddar")
 then
  list.add("Young man cheddar");
end

----------------------------------------------------------
Here are the second DRL:
----------------------------------------------------------

Some_other_business_rules;
#generated from Decision Table
import org.drools.decisiontable.Cheese;
import org.drools.decisiontable.Person;
global java.util.List list;
#From row number: 17
rule "Cheese fans_17"
 
 salience 65519
 when
  Person(age == 42)
  Cheese(type=="stilton")
 then
  list.add("Old man stilton");
end

#From row number: 18
rule "Cheese fans_18"
 
 salience 65518
 when
  Person(age == 21)
  Cheese(type=="cheddar")
 then
  list.add("Young man cheddar");
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