Github user GJL commented on a diff in the pull request: https://github.com/apache/flink/pull/4915#discussion_r147442314 --- Diff: flink-connectors/flink-connector-kafka-0.11/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer011.java --- @@ -563,7 +553,7 @@ public void close() throws Exception { asyncException = ExceptionUtils.firstOrSuppressed(e, asyncException); } try { - producersPool.close(); + producersPool.ifPresent(pool -> pool.close()); --- End diff -- I am not adamant about it but using `Optional` in private fields is not without controversy: https://stackoverflow.com/a/26328555 Also, `ifPresent(pool -> pool.close()` only works because `close` does not declare any checked exceptions. If it did, the code would not compile.
---