Github user StefanRRichter commented on a diff in the pull request: https://github.com/apache/flink/pull/4639#discussion_r140455067 --- Diff: flink-core/src/main/java/org/apache/flink/util/AbstractCloseableRegistry.java --- @@ -61,13 +75,14 @@ public final void registerClosable(C closeable) throws IOException { } synchronized (getSynchronizationLock()) { - if (closed) { - IOUtils.closeQuietly(closeable); - throw new IOException("Cannot register Closeable, registry is already closed. Closing argument."); + if (!closed) { + doRegister(closeable, closeableToRef); + return; } - - doRegister(closeable, closeableToRef); } + + IOUtils.closeQuietly(closeable); --- End diff -- I have this done on purpose. For the time a ``Closeable`` is registered, it is managed by the registry but I do not want to stop somebody from removing a ``Closeable`` again and reclaim responsibility over the resource. I was, however, considering a convenience method that does the remove-and-close in one call.
---