[ https://issues.apache.org/jira/browse/HADOOP-19102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17837629#comment-17837629 ]
ASF GitHub Bot commented on HADOOP-19102: ----------------------------------------- saxenapranav commented on code in PR #6617: URL: https://github.com/apache/hadoop/pull/6617#discussion_r1567064541 ########## hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/functional/FutureIO.java: ########## @@ -114,6 +117,75 @@ public static <T> T awaitFuture(final Future<T> future, } } + /** + * Evaluates a collection of futures and returns their results as a list. + * <p> + * This method blocks until all futures in the collection have completed. + * If any future throws an exception during its execution, this method + * extracts and rethrows that exception. + * </p> + * + * @param collection collection of futures to be evaluated + * @param <T> type of the result. + * @return the list of future's result, if all went well. + * @throws InterruptedIOException future was interrupted + * @throws IOException if something went wrong + * @throws RuntimeException any nested RTE thrown + */ + public static <T> List<T> awaitFuture(final Collection<Future<T>> collection) + throws InterruptedIOException, IOException, RuntimeException { + List<T> results = new ArrayList<>(); + try { + for (Future<T> future : collection) { + results.add(future.get()); + } + return results; + } catch (InterruptedException e) { + throw (InterruptedIOException) new InterruptedIOException(e.toString()) + .initCause(e); + } catch (ExecutionException e) { + return raiseInnerCause(e); + } + } + + /** + * Evaluates a collection of futures and returns their results as a list, + * but only waits up to the specified timeout for each future to complete. + * <p> + * This method blocks until all futures in the collection have completed or + * the timeout expires, whichever happens first. If any future throws an + * exception during its execution, this method extracts and rethrows that exception. + * </p> + * + * @param collection collection of futures to be evaluated + * @param timeout timeout to wait + * @param unit time unit. + * @param <T> type of the result. + * @return the list of future's result, if all went well. + * @throws InterruptedIOException future was interrupted + * @throws IOException if something went wrong + * @throws RuntimeException any nested RTE thrown + * @throws TimeoutException the future timed out. + */ + public static <T> List<T> awaitFuture(final Collection<Future<T>> collection, Review Comment: 1. Made name awaitAllFutures 2. Taking java.time.Duration as argument. ########## hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/functional/FutureIO.java: ########## @@ -114,6 +117,75 @@ public static <T> T awaitFuture(final Future<T> future, } } + /** + * Evaluates a collection of futures and returns their results as a list. + * <p> + * This method blocks until all futures in the collection have completed. + * If any future throws an exception during its execution, this method + * extracts and rethrows that exception. + * </p> + * + * @param collection collection of futures to be evaluated + * @param <T> type of the result. + * @return the list of future's result, if all went well. + * @throws InterruptedIOException future was interrupted + * @throws IOException if something went wrong + * @throws RuntimeException any nested RTE thrown + */ + public static <T> List<T> awaitFuture(final Collection<Future<T>> collection) Review Comment: Refaactored the name. > [ABFS]: FooterReadBufferSize should not be greater than readBufferSize > ---------------------------------------------------------------------- > > Key: HADOOP-19102 > URL: https://issues.apache.org/jira/browse/HADOOP-19102 > Project: Hadoop Common > Issue Type: Sub-task > Components: fs/azure > Affects Versions: 3.4.0 > Reporter: Pranav Saxena > Assignee: Pranav Saxena > Priority: Major > Labels: pull-request-available > > The method `optimisedRead` creates a buffer array of size `readBufferSize`. > If footerReadBufferSize is greater than readBufferSize, abfs will attempt to > read more data than the buffer array can hold, which causes an exception. > Change: To avoid this, we will keep footerBufferSize = > min(readBufferSizeConfig, footerBufferSizeConfig) > > -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org