diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CompletableFutureTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CompletableFutureTask.java index ab8f486cf..399ae7a52 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CompletableFutureTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CompletableFutureTask.java @@ -17,9 +17,10 @@ */ package org.jackhuang.hmcl.task; +import org.jackhuang.hmcl.util.Lang; + import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionException; -import java.util.concurrent.ExecutionException; public abstract class CompletableFutureTask extends Task { @@ -29,18 +30,11 @@ public abstract class CompletableFutureTask extends Task { public abstract CompletableFuture getFuture(TaskCompletableFuture executor); - protected static Throwable resolveException(Throwable e) { - if (e instanceof ExecutionException || e instanceof CompletionException) - return resolveException(e.getCause()); - else - return e; - } - public static class CustomException extends RuntimeException {} protected static CompletableFuture breakable(CompletableFuture future) { return future.thenApplyAsync(unused1 -> (Void) null).exceptionally(throwable -> { - if (resolveException(throwable) instanceof CustomException) return null; + if (Lang.resolveException(throwable) instanceof CustomException) return null; else throw new CompletionException(throwable); }); }