This is a really minor issue, but it confused me during testing. The WindowOperator initial watermark is -1:
https://github.com/apache/flink/blob/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperator.java#L136 Whereas TimestampsAndPunctuatedWatermarksOperator uses Long.MIN_VALUE: https://github.com/apache/flink/blob/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/operators/TimestampsAndPunctuatedWatermarksOperator.java#L39 I happened to be testing with time values near 0 (including negative ones) so that it was easier to see what window a timestamp belonged in, and it was mysterious at first where the -1 watermark was coming from, when my code was starting with watermarks below that. I doubt many users are processing data from 1969 with Flink, but perhaps it's better to use Long.MIN_VALUE everywhere? Mike