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.
---