&nbsp;&nbsp; Christian,<br><br>&nbsp;&nbsp; Yes, looks like a bug. Can you please open a JIRA for it?<br><br>&nbsp;&nbsp; Thank you,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Edson<br><br><br><div><span class="gmail_quote">2007/7/27, Christian Spurk &lt;<a href="mailto:Christian.Spurk@dfki.de">
Christian.Spurk@dfki.de</a>&gt;:</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&#39;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&#39;m already stuck<br>for hours with a NullPointerException that I can&#39;t get rid of. I broke<br>the problem down to a relatively small set of test files that I&#39;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>&nbsp;&nbsp; public static final void main(String[] args) throws Exception {<br>&nbsp;&nbsp;&nbsp;&nbsp; PackageBuilder builder = new PackageBuilder();
<br>&nbsp;&nbsp;&nbsp;&nbsp; builder.addPackageFromDrl(new InputStreamReader(SimpleTest.class<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .getResourceAsStream(&quot;/rf1.drl&quot;)));<br>&nbsp;&nbsp;&nbsp;&nbsp; builder.addPackageFromDrl(new InputStreamReader(SimpleTest.class<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .getResourceAsStream(&quot;/rf2.drl&quot;)));
<br>&nbsp;&nbsp;&nbsp;&nbsp; RuleBase rb = RuleBaseFactory.newRuleBase();<br>&nbsp;&nbsp;&nbsp;&nbsp; rb.addPackage(builder.getPackage());<br>&nbsp;&nbsp;&nbsp;&nbsp; WorkingMemory wm = rb.newStatefulSession();<br>&nbsp;&nbsp;&nbsp;&nbsp; wm.insert(new Task()); // &lt;-- crashes here<br>&nbsp;&nbsp;&nbsp;&nbsp; wm.fireAllRules
();<br>&nbsp;&nbsp; }<br>}<br><br><br>/* Task.java */<br>package com.sample;<br>public class Task {<br>&nbsp;&nbsp; private String next = null;<br>&nbsp;&nbsp; public String getNext() {<br>&nbsp;&nbsp;&nbsp;&nbsp; return next;<br>&nbsp;&nbsp; }<br>&nbsp;&nbsp; public void setNext(String next) {
<br>&nbsp;&nbsp;&nbsp;&nbsp; this.next = next;<br>&nbsp;&nbsp; }<br>}<br><br><br>// rf1.drl<br>package com.sample<br>rule &quot;r0&quot;<br>&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task( next == null ); # &lt;-- change to &quot;x&quot;<br>&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println
(&quot;r0&quot;);<br>end<br>rule &quot;r1&quot;<br>&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task( next == &quot;1&quot; );<br>&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&quot;r1&quot;);<br>end<br><br><br>// rf2.drl<br>package com.sample<br>rule &quot;r2&quot;
<br>&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task( next == &quot;2&quot; );<br>&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&quot;r1&quot;);<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 &quot;main&quot; java.lang.NullPointerException<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br>org.drools.reteoo.CompositeObjectSinkAdapter$HashKey.equals(CompositeObjectSinkAdapter.java:608)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br>org.drools.util.AbstractHashTable$EqualityEquals.equal
(AbstractHashTable.java:345)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at org.drools.util.ObjectHashMap.get(ObjectHashMap.java:86)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br>org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:295)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:168)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at org.drools.reteoo.Rete.assertObject(Rete.java:168)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java
:190)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br>org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:70)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br>org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:848)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br>org.drools.common.AbstractWorkingMemory.insert
(AbstractWorkingMemory.java:822)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br>org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:623)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at com.sample.SimpleTest.main(SimpleTest.java:22)<br><br>I&#39;ve marked the position in the source code at which the run crashes.
<br>Does anybody have an idea what&#39;s wrong here?<br><br>Some more strange things relating to this problem:<br>&nbsp;&nbsp;* If I change the &#39;null&#39; in rf1.drl to &#39;&quot;&quot;&#39; (empty string), the<br>problem remains.
<br>&nbsp;&nbsp;* If I change the &#39;null&#39; in rf1.drl to &#39;&quot;x&quot;&#39; (or some other non-empty<br>string), then the exception is gone.<br>&nbsp;&nbsp;* 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>&nbsp;&nbsp;Edson Tirelli<br>&nbsp;&nbsp;Software Engineer - JBoss Rules Core Developer
<br>&nbsp;&nbsp;Office: +55 11 3529-6000<br>&nbsp;&nbsp;Mobile: +55 11 9287-5646<br>&nbsp;&nbsp;JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a>