In STREAM mode, the clock may have to have advanced beyond the latest fact so<br>that certain conditions can be evaluated safely.<br><br>For instance, another event could still be inserted at the same millisecond. If<br>a condition such as <br>
  not Event( this coincides $event )<br>were evaluated prematurely, it would produce an incorrect result.<br><br>Is this the explanation?<br>-W<br><br><div class="gmail_quote">On 4 November 2010 10:09, Wolfgang Laun <span dir="ltr">&lt;<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">The .drl:<br><br>declare Leave<br>  @role( event )<br>  @timestamp( timestamp )<br>end<br><br>
rule &quot;XXX Leave not !=&quot;<br>when<br>    $leave: Leave()<br>    not Leave( this != $leave )<br>then<br>    System.out.println( &quot;XXX only one Leave - not !=&quot; );<br>
end<br><br>rule &quot;YYY Leave not after&quot;<br>when<br>    $leave: Leave()<br>    not Leave( this before $leave )<br>then<br>    System.out.println( &quot;YYY only one Leave - not before&quot; );<br>end<br><br><br>A) The pseudo-clock is advanced according to the timestamp; then<br>

exactly one event Leave is inserted; then fireAllRules() is called.<br><br>1) Running in CLOUD mode, both rules fire.<br>2) But running in STREAM mode, ONLY rule XXX fires.<br><br>B) Like A, but the session clock is advanced by (at least) 1ms<br>

prior to calling fireAllRules().<br><br>3) Either mode, both rules fire.<br><br>I think that A2) is incorrect; why should passing another msec change the logic?<br><br>JIRA?<br><font color="#888888"><br>Wolfgang<br><br><br>
<br>
</font></blockquote></div><br>