siddharthteotia commented on a change in pull request #4418: Fix potential
resource leak in the way we close a collection of closeables
URL: https://github.com/apache/incubator-pinot/pull/4418#discussion_r303692239
##########
File path:
pinot-common/src/main/java/org/apache/pinot/common/utils/FileUtils.java
##########
@@ -64,4 +70,60 @@ public static void transferBytes(FileChannel src, long
position, long count, Fil
count -= numBytesTransferred;
}
}
+
+ /**
+ * Close a collection of {@link Closeable} resources
+ * This is a utility method to help release multiple {@link Closeable}
+ * resources in a safe manner without leaking.
+ * As an example if we have a list of Closeable resources,
+ * then the following code is prone to leaking 1 or more
+ * subsequent resources if an exception is thrown while
+ * closing one of them.
+ *
+ * for (closeable_resource : resources) {
+ * closeable_resource.close()
+ * }
+ *
+ * The helper methods provided here do this safely
+ * while keeping track of exception(s) raised during
+ * close() of each resource and still continuing to close
+ * subsequent resources.
+ * @param closeables collection of resources to close
+ * @throws IOException
+ */
+ public static void close(Iterable<? extends Closeable> closeables)
+ throws IOException {
+
Review comment:
Done
----------------------------------------------------------------
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:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]