Details
-
Bug
-
Resolution: Won't Do
-
Major
-
5.2.0.CR1
-
None
Description
using the following DRL:
package contrived.example
import contrived.example.EventWithTimestamp
declare EventWithTimestamp
@role(event)
@duration( duration )
@timestamp( timestamp )
end
rule "no event in window"
when
not EventWithTimestamp (someProp=="whatever") over window:length(3) from entry-point "Event Stream"
then
System.err.println("retract");
end
if we start with an initial matching (someProp=="whatever") event and fire a long sequence of non-matching events:
{"something else", "something else" ... "something else"}the rule should fire sometime into the long chain of "something else" events (it should fire after the 3rd such event - when the window contains 3 non-matching events and the 1st matching event has been pushed out).
in practice the rule never fires. worse, it also retains all the events in memory when it should only keep the last 3.
to reproduce the issue, simply build the attached maven project (mvn clean install)