<br> Andrey,<br><br> May I ask you please to open a JIRA with the info from your e-mail? I will investigate this.<br><br> Thanks,<br> Edson<br><br><div class="gmail_quote">2009/6/15 Andrey Nechaev <span dir="ltr"><<a href="mailto:nechaev.andrey@gmail.com">nechaev.andrey@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">Hello,
All!</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> </span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">I’m evaluating the new version of
Drools (5.0.1), so I’m especially interested in multithreading and partitioning
options, implemented in Drools v5.</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">I’ve prepared a little test case to
check how the feature works. Here is the rule I’m
using:</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">package
test</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">rule
test</span></font></p>
<p style="text-indent: 35.4pt;"><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">when</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> NODE2($p :
value > 20)</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">
then</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">
System.out.println("Fired :” + $p);</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">end</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> </span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">The NODE2 POJO is very
simple:</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">public class NODE2
{</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> private int
value;</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> public NODE2(int value)
{</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> this.value =
value;</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">
}</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> public int getValue()
{</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> return
value;</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">
}</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> </span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> public void setValue(int
value) {</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> this.value =
value;</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">
}</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">}</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> </span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">And here is the main code
snippet:</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">1:
KnowledgeBaseConfiguration conf =
KnowledgeBaseFactory.newKnowledgeBaseConfiguration();</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">2:
conf.setOption(MultithreadEvaluationOption.YES);</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">3:
conf.setOption(MaxThreadsOption.get(10));</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">4: KnowledgeBase kb =
KnowledgeBaseFactory.newKnowledgeBase(conf);</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">5:</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">6: KnowledgeBuilder bld =
KnowledgeBuilderFactory.newKnowledgeBuilder();</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">7:
bld.add(ResourceFactory.newReaderResource(new StringReader(rule)),
ResourceType.DRL);</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">8:
kb.addKnowledgePackages(bld.getKnowledgePackages());</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">9:</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">10: StatefulKnowledgeSession
session = kb.newStatefulKnowledgeSession();
</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">11: session.insert(new
NODE2(25));</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">12:</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">13:
session.fireAllRules();</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">In such a case my program hangs and
nothing is displayed in the Console.</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">If I put lines 10-11 prior to line
6, I get a NullPointerException:</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">Exception in thread "main"
java.lang.NullPointerException</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> at
org.drools.reteoo.ObjectSource.addObjectSink(ObjectSource.java:124)</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">…</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">But, if I comment out the lines
2&3, everything works ok…</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">So, please help – what I’m doing
wrong?</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US"> </span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">Best
regards,</span></font></p>
<p><font size="2" face="Arial"><span style="font-size: 10pt; font-family: Arial;" lang="EN-US">Andrey</span></font></p></div>
<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" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> JBoss Drools Core Development<br> JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a><br>