<div>Hi everyone,</div>
<div>i&#39;m developing a java application using drools 4 for domotic control;</div>
<div>i ve implemented a listener on my working memory with the method&nbsp;<font size="2">afterActivationFired(...) and <font size="2">activationCancelled(...) .</font></font></div>
<div><font size="2">At startup of my app i&#39;ve write the following lines:</font></div>
<div>&nbsp;</div>
<div><font color="#0000c0" size="2">listener</font><font size="2"> = </font><b><font color="#7f0055" size="2">new</font></b><font size="2"> FiredRulesListener();</font></div>
<div><font color="#0000c0" size="2">workingMemory</font><font size="2">.addEventListener(</font><font color="#0000c0" size="2">listener</font><font size="2">);</font></div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2">Each time a rule is fired the method <font size="2">afterActivationFired(...) is called and it is ok; but when the rule stop to be&nbsp;true the method&nbsp;<font size="2">activationCancelled&nbsp;&nbsp;</font>isn&#39;t never called.</font></font></div>

<div><font size="2">I try to be more clear:</font></div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2">i &#39;ve the following rule:</font></div>
<div><font size="2">when mylamp==&quot;on&quot;</font></div>
<div><font size="2">then</font></div>
<div><font size="2">System.out.println(&quot;light 1 on&quot;);</font></div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2">When i turn on the light 1 the method <font size="2">afterActivationFired(...)&nbsp; is called, but when i turn off the light the method <font size="2">activationCancelled </font><font size="2">isn&#39;t called. </font></font></font></div>

<div><font size="2"><font size="2"><font size="2">Can someboy help me??</font></font></font></div>
<div><font size="2">Thanks in advance.</font></div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2">Cla</font></div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2">My listener code:</font></div>
<div><font size="2"></font>&nbsp;</div>
<div><font size="2"><b><font color="#7f0055" size="2">
<p align="left">public</p></font></b></font><font size="2"> </font><b><font color="#7f0055" size="2">static</font></b><font size="2"> </font><b><font color="#7f0055" size="2">class</font></b><font size="2"> FiredRulesListener </font><b><font color="#7f0055" size="2">extends</font></b><font size="2"> DefaultAgendaEventListener
<p align="left">{</p>
<p align="left">List&lt;Rule&gt; </p></font><font color="#0000c0" size="2">firedRules</font><font size="2"> = </font><b><font color="#7f0055" size="2">new</font></b><font size="2"> ArrayList&lt;Rule&gt;();
<p align="left"></p></font><b><font color="#7f0055" size="2">
<p align="left">public</p></font></b><font size="2"> List&lt;Rule&gt; getFiredRules()
<p align="left">{</p></font><b><font color="#7f0055" size="2">
<p align="left">return</p></font></b><font size="2"> </font><b><font color="#7f0055" size="2">this</font></b><font size="2">.</font><font color="#0000c0" size="2">firedRules</font><font size="2">;
<p align="left">}</p>
<p align="left"></p></font><font color="#646464" size="2">
<p align="left">@Override</p></font><b><font color="#7f0055" size="2">
<p align="left">public</p></font></b><font size="2"> </font><b><font color="#7f0055" size="2">void</font></b><font size="2"> afterActivationFired(AfterActivationFiredEvent event, WorkingMemory workingMemory)
<p align="left">{</p>
<p align="left">Rule rule = event.getActivation().getRule();</p></font><b><font color="#7f0055" size="2">
<p align="left">if</p></font></b><font size="2"> (!</font><b><font color="#7f0055" size="2">this</font></b><font size="2">.</font><font color="#0000c0" size="2">firedRules</font><font size="2">.contains(rule))
<p align="left"></p></font><b><font color="#7f0055" size="2">this</font></b><font size="2">.</font><font color="#0000c0" size="2">firedRules</font><font size="2">.add(rule);
<p align="left">}</p>
<p align="left"></p></font><font color="#646464" size="2">
<p align="left">@Override</p></font><b><font color="#7f0055" size="2">
<p align="left">public</p></font></b><font size="2"> </font><b><font color="#7f0055" size="2">void</font></b><font size="2"> activationCancelled (ActivationCancelledEvent event, WorkingMemory workingMemory)
<p align="left">{</p>
<p align="left"><strong>System.out.println(&quot;i never see this message&quot;);</strong></p>
<p align="left"></p></font><font size="2">Rule <strong>rule</strong>= event.getActivation().getRule();</font>
<p align="left"><font size="2"><strong><font color="#7f0055">this</font></strong><font size="2">.</font><font color="#0000c0" size="2">firedRules</font><font size="2">.remove(rule);</font></font></p>
<p align="left"></p>
<p>}</p></div>