zhijiangW commented on a change in pull request #9854: [FLINK-14230][task] Change the endInput call of the downstream operator to after the upstream operator closes URL: https://github.com/apache/flink/pull/9854#discussion_r338534542
########## File path: flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/tasks/SourceStreamTaskTest.java ########## @@ -479,5 +481,40 @@ public void cancel() { running = false; } } + + private static final class OutputRecordInCloseTestSource extends RichSourceFunction<String> { + + private final String name; + private final String[] elements; + + private transient volatile boolean canceled = false; + + private transient SourceContext<String> context; + + public OutputRecordInCloseTestSource(String name, String ... elements) { + this.name = name; + this.elements = elements.clone(); + } + + public void run(SourceContext<String> ctx) { + context = ctx; + int i = 0; + while (!canceled && i < elements.length) { + context.collect(elements[i++]); + } + } + + public void close() { + if (!canceled) { + checkNotNull(context); + context.collect("[" + name + "]: Bye"); + } + } + + @Override + public void cancel() { + canceled = true; Review comment: I guess we could make this method empty and remove `canceled` variable for this concrete unit test. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services