Github user Aitozi commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4665#discussion_r139742368
  
    --- Diff: 
flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperator.java
 ---
    @@ -405,6 +411,8 @@ public void merge(W mergeResult,
                // windowAssigner is event time and current timestamp + allowed 
lateness no less than element timestamp
                if (isSkippedElement && lateDataOutputTag != null && 
isElementLate(element)) {
                        sideOutput(element);
    +           } else if (isSkippedElement) {
    --- End diff --
    
    i think when the `isSkippedElement` is true,  the `isElementLate(element)` 
is always be true. Because `isSkippedElement` is true when all the assigned 
window's window.endtime + allowLateness < currentLowWatermark, and 
`isElementLate` is true when element.time + allowLateness < 
currentLowWatermark. and element.time is <= bigest window.endtime.  so does 
`isElementLate` always be true when isSkippedElement is true?  And i think if i 
want to rule  out the situation that **because no windows were assigned to 
it.**, i just need to judge  whether the variable `Collection elementWindows` 
is empty?


---

Reply via email to