Github user kl0u commented on a diff in the pull request: https://github.com/apache/flink/pull/5062#discussion_r154890227 --- Diff: flink-queryable-state/flink-queryable-state-client-java/src/main/java/org/apache/flink/queryablestate/network/Client.java --- @@ -312,32 +345,41 @@ private void handInChannel(Channel channel) { /** * Close the connecting channel with a ClosedChannelException. */ - private void close() { - close(new ClosedChannelException()); + private CompletableFuture<Void> close() { + return close(new ClosedChannelException()); } /** * Close the connecting channel with an Exception (can be {@code null}) * or forward to the established channel. */ - private void close(Throwable cause) { - synchronized (connectLock) { - if (!closed) { + private CompletableFuture<Void> close(Throwable cause) { + CompletableFuture<Void> future = new CompletableFuture<>(); + if (connectionShutdownFuture.compareAndSet(null, future)) { + synchronized (connectLock) { if (failureCause == null) { failureCause = cause; } + closed = true; --- End diff -- Yes. I will remove that.
---