<br> Seems like a bug and I did fixed a problem that raised NPE in a similar situation a few weeks back in trunk. If you can try trunk and let us know if it still happens, it would be great. Otherwise I will try it myself as soon as I have a chance.<br>
<br> Thanks,<br> Edson<br><br><div class="gmail_quote">2009/11/16 richarda <span dir="ltr"><<a href="mailto:richard.ambridge@gmail.com">richard.ambridge@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;">
<br>
I wish to have a rule that says, if I get one event, but not another one<br>
after a period, then do something.<br>
But I also want to only do this once..<br>
<br>
So, I wrote the rules: (using the eclipse sample project)<br>
<br>
<br>
<br>
declare Message<br>
@role( event )<br>
end<br>
<br>
rule "Hello World"<br>
when<br>
$m : Message( status == Message.HELLO )<br>
not ( Message( status== Message.GOODBYE, this after [0s,1m] $m)) ;<br>
then<br>
System.out.println( "Hello" );<br>
end<br>
<br>
rule "GoodBye"<br>
when<br>
$one : Message( status == Message.HELLO )<br>
$two : Message( status == Message.HELLO )<br>
then<br>
System.out.println( "Two hellos, remove one" );<br>
retract($two);<br>
end<br>
<br>
<br>
But, when I run;<br>
Message message = new Message();<br>
message.setMessage("Hello World");<br>
message.setStatus(Message.HELLO);<br>
ksession.insert(message);<br>
<br>
Message message2 = new Message();<br>
message2.setMessage("Hello World");<br>
message2.setStatus(Message.HELLO);<br>
ksession.insert(message2);<br>
ksession.fireAllRules();<br>
<br>
I get:<br>
Two hellos, remove one<br>
java.lang.NullPointerException<br>
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:970)<br>
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:885)<br>
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1086)<br>
at<br>
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:660)<br>
at<br>
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:627)<br>
at<br>
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:183)<br>
at com.sample.DroolsTest.main(DroolsTest.java:38)<br>
<br>
<br>
What am i doing wrong?<br>
<font color="#888888">--<br>
View this message in context: <a href="http://old.nabble.com/Null-pointer-when-retracting-Event-which-has-an-%27after%27-tp26374807p26374807.html" target="_blank">http://old.nabble.com/Null-pointer-when-retracting-Event-which-has-an-%27after%27-tp26374807p26374807.html</a><br>
Sent from the drools - user mailing list archive at Nabble.com.<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" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</font></blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> JBoss Drools Core Development<br> JBoss by Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a><br>