From 8813ef3e881ba94282af87b28cfa158f347088ed Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Tue, 27 Oct 2020 16:27:12 +0100 Subject: [PATCH] Update CompletableFutureUtils.java --- .../future/CompletableFutureUtils.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java b/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java index fc28d5f..34e3040 100644 --- a/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java +++ b/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java @@ -28,6 +28,28 @@ import org.warp.commonutils.type.ScoredValue; public class CompletableFutureUtils { + /** + * Safely get a CompletableFuture asynchronously + */ + public static CompletableFuture getCompletableFutureAsync(Supplier> completableFutureSupplier, Executor executor) { + CompletableFuture cf = new CompletableFuture<>(); + executor.execute(() -> { + try { + var cf2 = completableFutureSupplier.get(); + cf2.whenComplete((result, error) -> { + if (error == null) { + cf.complete(result); + } else { + cf.completeExceptionally(error); + } + }); + } catch (Exception ex) { + cf.completeExceptionally(ex); + } + }); + return cf; + } + /** * Safely get a CompletableFuture or a FailedFuture */