Let's make an input stream like this:
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.