Christian,<br><br> Yes, looks like a bug. Can you please open a JIRA for it?<br><br> Thank you,<br> Edson<br><br><br><div><span class="gmail_quote">2007/7/27, Christian Spurk <<a href="mailto:Christian.Spurk@dfki.de">
Christian.Spurk@dfki.de</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi all,<br><br>I'm trying to migrate my JBoss v3.0.6
rules to the latest v4.0.0<br>release. I could already resolve some issues but now I'm already stuck<br>for hours with a NullPointerException that I can't get rid of. I broke<br>the problem down to a relatively small set of test files that I'd like
<br>to show you here:<br><br><br>/* SimpleTest.java */<br>package com.sample;<br>// ... imports removed for brevity<br>public class SimpleTest {<br> public static final void main(String[] args) throws Exception {<br> PackageBuilder builder = new PackageBuilder();
<br> builder.addPackageFromDrl(new InputStreamReader(SimpleTest.class<br> .getResourceAsStream("/rf1.drl")));<br> builder.addPackageFromDrl(new InputStreamReader(SimpleTest.class<br> .getResourceAsStream("/rf2.drl")));
<br> RuleBase rb = RuleBaseFactory.newRuleBase();<br> rb.addPackage(builder.getPackage());<br> WorkingMemory wm = rb.newStatefulSession();<br> wm.insert(new Task()); // <-- crashes here<br> wm.fireAllRules
();<br> }<br>}<br><br><br>/* Task.java */<br>package com.sample;<br>public class Task {<br> private String next = null;<br> public String getNext() {<br> return next;<br> }<br> public void setNext(String next) {
<br> this.next = next;<br> }<br>}<br><br><br>// rf1.drl<br>package com.sample<br>rule "r0"<br> when<br> Task( next == null ); # <-- change to "x"<br> then<br> System.out.println
("r0");<br>end<br>rule "r1"<br> when<br> Task( next == "1" );<br> then<br> System.out.println("r1");<br>end<br><br><br>// rf2.drl<br>package com.sample<br>rule "r2"
<br> when<br> Task( next == "2" );<br> then<br> System.out.println("r1");<br>end<br><br><br>As you can see there are two Drools rule files and two Java classes. If<br>I run the SimpleTest class, I get the following exception:
<br><br>Exception in thread "main" java.lang.NullPointerException<br> at<br>org.drools.reteoo.CompositeObjectSinkAdapter$HashKey.equals(CompositeObjectSinkAdapter.java:608)<br> at<br>org.drools.util.AbstractHashTable$EqualityEquals.equal
(AbstractHashTable.java:345)<br> at org.drools.util.ObjectHashMap.get(ObjectHashMap.java:86)<br> at<br>org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:295)<br>
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:168)<br> at org.drools.reteoo.Rete.assertObject(Rete.java:168)<br> at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java
:190)<br> at<br>org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:70)<br> at<br>org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:848)<br> at<br>org.drools.common.AbstractWorkingMemory.insert
(AbstractWorkingMemory.java:822)<br> at<br>org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:623)<br> at com.sample.SimpleTest.main(SimpleTest.java:22)<br><br>I've marked the position in the source code at which the run crashes.
<br>Does anybody have an idea what's wrong here?<br><br>Some more strange things relating to this problem:<br> * If I change the 'null' in rf1.drl to '""' (empty string), the<br>problem remains.
<br> * If I change the 'null' in rf1.drl to '"x"' (or some other non-empty<br>string), then the exception is gone.<br> * If I remove any of the two rule files, the exception is gone, too.<br><br>
Any ideas? Should I file a bug?<br><br>Thanks in advance!<br><br>Cheers,<br>Christian<br><br>_______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org
</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br><br></blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> Software Engineer - JBoss Rules Core Developer
<br> Office: +55 11 3529-6000<br> Mobile: +55 11 9287-5646<br> JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a>