<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <font face="Verdana">Hi</font> <br>
     i have a problem that seems to me quite similar to this
    <a class="moz-txt-link-freetext" href="http://drools.46999.n3.nabble.com/rules-users-Exception-when-using-retract-td4023520.html">http://drools.46999.n3.nabble.com/rules-users-Exception-when-using-retract-td4023520.html</a>
    (i cannot reply to this post, don't Know why)<br>
    <br>
    In my case exception is<br>
    <br>
    java.lang.NullPointerException<br>
        at
    ConditionEvaluator9935e5dba4084774a05641a0448cd694.evaluate(Unknown
    Source)<br>
        at
org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:200)<br>
        at
org.drools.rule.constraint.MvelConstraint.isAllowedCachedLeft(MvelConstraint.java:169)<br>
        at
org.drools.common.DoubleBetaConstraints.isAllowedCachedLeft(DoubleBetaConstraints.java:88)<br>
        at org.drools.reteoo.NotNode.assertLeftTuple(NotNode.java:78)<br>
        at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:232)<br>
        at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:89)<br>
        at
    org.drools.reteoo.JoinNode.propagateFromLeft(JoinNode.java:107)<br>
        at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:95)<br>
        at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:232)<br>
        at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:116)<br>
        at
org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:154)<br>
        at
org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)<br>
        at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)<br>
        at
    org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)<br>
        at
    org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)<br>
        at
    org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)<br>
        at
    org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311)<br>
        at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)<br>
        at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)<br>
        at
org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269)<br>
        at
    it.eximia.meerkat.re.core.RuleEngine.executeSession(RuleEngine.java:212)<br>
        at it.eximia.meerkat.re.core.RuleEngine.run(RuleEngine.java:180)<br>
        at
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)<br>
        at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)<br>
        at
    java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)<br>
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)<br>
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)<br>
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)<br>
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)<br>
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)<br>
        at java.lang.Thread.run(Thread.java:662)<br>
    |#]<br>
    <br>
    [#|2014-06-07T04:05:11.418+0200|WARNING|sun-appserver2.1|RuleEngine|_ThreadID=25;_ThreadName=pool-5-thread-1;_RequestID=b189af67-c681-411d-ad8c-44f1ec1646bf;|errore
    nel Rule Engine<br>
    Exception executing consequence for rule "temperatura normale" in
    it.sure.template: java.lang.NullPointerException<br>
        at
org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)<br>
        at
    org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)<br>
        at
    org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)<br>
        at
    org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)<br>
        at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)<br>
        at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)<br>
        at
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)<br>
        at
    it.eximia.meerkat.re.core.RuleEngine.executeSession(RuleEngine.java:215)<br>
        at it.eximia.meerkat.re.core.RuleEngine.run(RuleEngine.java:180)<br>
        at
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)<br>
        at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)<br>
        at
    java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)<br>
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)<br>
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)<br>
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)<br>
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)<br>
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)<br>
        at java.lang.Thread.run(Thread.java:662)<br>
    Caused by: java.lang.NullPointerException<br>
        at
org.drools.core.util.index.LeftTupleIndexHashTable.remove(LeftTupleIndexHashTable.java:370)<br>
        at org.drools.reteoo.NotNode.retractLeftTuple(NotNode.java:214)<br>
        at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateRetractLeftTuple(CompositeLeftTupleSinkAdapter.java:250)<br>
        at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateRetractRightTuple(CompositeLeftTupleSinkAdapter.java:165)<br>
        at
    org.drools.reteoo.JoinNode.retractRightTuple(JoinNode.java:184)<br>
        at
    org.drools.reteoo.ObjectTypeNode.retractObject(ObjectTypeNode.java:283)<br>
        at
    org.drools.reteoo.EntryPointNode.retractObject(EntryPointNode.java:354)<br>
        at
    org.drools.common.NamedEntryPoint.retract(NamedEntryPoint.java:568)<br>
        at
org.drools.base.DefaultKnowledgeHelper.retract(DefaultKnowledgeHelper.java:357)<br>
        at
it.sure.template.Rule_temperatura_normale_53fab538df67455491288390ebd5c29c.defaultConsequence(Rule_temperatura_normale_53fab538df67455491288390ebd5c29c.java:49)<br>
        at
    it.sure.template.Rule_temperatura_normale_53fab538df67455491288390ebd5c29cDefaultConsequenceInvokerGenerated.evaluate(Unknown
    Source)<br>
        at
    it.sure.template.Rule_temperatura_normale_53fab538df67455491288390ebd5c29cDefaultConsequenceInvoker.evaluate(Unknown
    Source)<br>
        at
    org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)<br>
        ... 16 more<br>
    |#]<br>
    <br>
    <br>
    <br>
    i'm using drools 5.5.0 Final<br>
    <br>
    here is the rule, (i removed some statements don't seems relevant)<br>
    <br>
    <br>
    rule "temperatura normale"<br>
    salience -2<br>
    when<br>
        $nowTimestamp : ExecutionTimestamp()<br>
        $event: ScalarEvent(name == "TEMPERATURE_EVENT", $creation:
    creationDateTime, $uuid : sensorUUID ) from entry-point "event"<br>
        not(ScalarEvent(name == "TEMPERATURE_EVENT",
    creationDateTime.time &lt; $creation.getTime(), sensorUUID == $uuid)
    from entry-point "event")    <br>
        $sensor: EnvironmentalSensor(sensorUUID == $event.sensorUUID,
    $sensor.type.keyId == "TEMP_ENV_TYPE", $sensor.assessable == true)<br>
        $temperature1: Number( floatValue &gt;= 
    Float.valueOf($sensor.getPropertyValue("min")) ) from $event.measure<br>
        $temperature2: Number( floatValue &lt;= 
    Float.valueOf($sensor.getPropertyValue("max")) ) from $event.measure<br>
        $sensorInAlarm: SensorInAlarm (sensorUUID == $uuid) <br>
    then<br>
                        ConcurrentHashMap&lt;String, String&gt;
    statusInfo = sensorCache.get($sensor.getId().toString());<br>
                        SimpleDateFormat formatter = new
    SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br>
                        long sensorId = $sensor.getId();<br>
                        Date alarmTimestamp =
    $event.getCreationDateTime();<br>
                        String measure = $event.getMeasure() + "";<br>
                        String alarmType = "TEMPERATURE_OK";<br>
                        statusInfo.put("eventMeasure", measure);<br>
                        statusInfo.put("eventTimestamp",
    formatter.format(alarmTimestamp));<br>
                       
    $sensorInAlarm.setEventTimestamp(alarmTimestamp);<br>
                        $sensorInAlarm.setEventMeasure(measure); <br>
                        update($sensorInAlarm);<br>
                        sensorCache.update($sensor.getId().toString(),
    statusInfo);<br>
                        RuleEngineLogger.log(RuleEngineLoggerLevel.INFO,
    "normale");<br>
                        retract($event);<br>
    end<br>
    <br>
    <br>
    <br>
    <br>
    <span style="color: rgb(0, 0, 0); font-family: Verdana, Geneva,
      Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: auto; text-align: start;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;
      display: inline !important; float: none; background-color:
      rgb(255, 255, 255);"> The exception does not immediately occur
      sometimes it  takes days before occurs<br>
      <br>
      Rule is fire when event </span><span style="color: rgb(0, 0, 0);
      font-family: Verdana, Geneva, Helvetica, Arial, sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline
      !important; float: none; background-color: rgb(255, 255, 255);">TEMPERATURE_EVENT
      occurs.  </span><span style="color: rgb(0, 0, 0); font-family:
      Verdana, Geneva, Helvetica, Arial, sans-serif; font-size: 13px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: auto;
      text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; display: inline !important; float:
      none; background-color: rgb(255, 255, 255);"><span style="color:
        rgb(0, 0, 0); font-family: Verdana, Geneva, Helvetica, Arial,
        sans-serif; font-size: 13px; font-style: normal; font-variant:
        normal; font-weight: normal; letter-spacing: normal;
        line-height: normal; orphans: auto; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;
        display: inline !important; float: none; background-color:
        rgb(255, 255, 255);">TEMPERATURE_EVENT is a measure from a
        thermometer, i have a dispather that  simultaneously sends 10
        measures (coming from 10 different sensors), then dispatcher
        stops sending data  for few minutes then it sends again new 10
        measures, an so on.</span><br>
      <br>
      <br>
      Same situation for me: When the exception is thrown, it looks like
      that the event is not removed from the knowledge base (I watch the
      number of events in the knowledge base &#8211; fact count)<br>
      <br>
      I more than 10 rules, fired every 1s<br>
      <br>
      Any help would be appreciated<br>
      <br>
      Sara<br>
      <br>
    </span><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div class="moz-signature">-- <br>
      <div>
        <div>
          <table style="border:0px solid #ecdece" cellpadding="4"
            cellspacing="0" width="640" bgcolor="#FFFFFF" border="0"
            height="50">
            <tbody>
              <tr>
                <td>
                  <table style="border:1px solid #ecdece">
                    <tbody>
                      <tr>
                        <td style="padding-left:2px" width="200"> <a
                            href="http://www.eximia.it" target="_blank"><img
src="cid:part1.02020307.07060308@eximia.it" alt="Eximia Srl" width="118"
                              border="0" height="168"></a> </td>
                        <td
                          style="font-family:Helvetica;font-size:10px;line-height:14px"
                          width="240"> <br>
                          <span
style="font-family:Helvetica;font-size:12px;line-height:14px;font-weight:bold">Sara
                            Didaci</span><br>
                          <span
style="font-family:Helvetica;font-size:10px;line-height:16px;font-style:italic">Application
                            Engineer</span><br>
                          Eximia S.r.l.<br>
                          Via Sassari, 3<br>
                          09123 Cagliari - Italy<br>
                          Tel +39 070 7966776<br>
                          Fax +39 070 680904<br>
                          Mob +39 328 4660322<br>
                          Email <a href="mailto:sara.didaci@eximia.it"
                            target="_blank"><span class="il">sara.didaci@eximia.it</span></a><br>
                          Web <a href="http://www.eximia.it"
                            target="_blank">www.eximia.it</a><br>
                          <br>
                        </td>
                      </tr>
                    </tbody>
                  </table>
                </td>
                <td style="padding-right:2px" width="260" align="right">
                  <span
style="font-family:Helvetica;font-size:9px;line-height:14px;color:#aaaaaa">Eximia
                    č un'azienda certificata ISO 9001</span><br>
                  <img src="cid:part5.05060606.09060209@eximia.it"
                    alt="Image" align="right" hspace="6"> </td>
              </tr>
              <tr>
                <td colspan="3"
style="font-family:Helvetica;font-size:9px;color:#aaaaaa;font-style:italic;line-height:12px">Il
                  contenuto di questa e-mail e dei file allegati č
                  RISERVATO e da considerarsi utilizzabile solamente
                  dalla persona o ente al quale č indirizzato. Se avete
                  ricevuto questa e-mail per errore, siete pregati di
                  rimandarla al mittente e di eliminarla. (Legge
                  italiana 196/2003).<br>
                  <br>
                  The content of this e-mail and any files is
                  CONFIDENTIAL and intended solely for the use of the
                  individual or entity to whom it is addressed. If you
                  have received this e-mail in error, please return it
                  to the sender and delete it. (Italian Law 196/2003). </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
  </body>
</html>