Details
-
Bug
-
Status: Reopened
-
Not a Priority
-
Resolution: Unresolved
-
1.7.2
-
None
-
None
Description
Let's make an input stream like this:
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime) val events = env.fromElements( Event(timestamp = 0L, siteId), Event(timestamp = 500L, siteId) ) .assignTimestampsAndWatermarks(new BoundedOutOfOrdernessTimestampExtractor{...})
For this stream the event with timestamp = 0L will be treated as late. The reason is AbstractKeyedCEPPatternOperator that initializes lastWatermark with the default value provided by the compiler: zero. Would it be more correct to initialize lastWatermark with Long.MIN_VALUE?
Of course, this is not a blocking defect, but I had really hard times to find why my unit test disregards the first event. Strictly speaking, this behavior seems incorrect.