diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModUpdatesPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModUpdatesPage.java index f2a9e858e..092afed4b 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModUpdatesPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/ModUpdatesPage.java @@ -277,9 +277,7 @@ public class ModUpdatesPage extends BorderPane implements DecoratorPage { dependents = mods.stream() .map(mod -> { return Task - .runAsync(Schedulers.javafx(), () -> { - mod.getKey().setOld(true); - }) + .runAsync(Schedulers.javafx(), () -> mod.getKey().setOld(true)) .thenComposeAsync(() -> { FileDownloadTask task = new FileDownloadTask( new URL(mod.getValue().getFile().getUrl()), @@ -326,6 +324,8 @@ public class ModUpdatesPage extends BorderPane implements DecoratorPage { @Override public void execute() throws Exception { + if (!isDependentsSucceeded()) + throw getException(); } } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Task.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Task.java index 774f77ef0..0e2f60a27 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Task.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/Task.java @@ -709,7 +709,7 @@ public abstract class Task { @Override public void execute() throws Exception { if (isDependentsSucceeded() != (Task.this.getException() == null)) - throw new AssertionError("When whenComplete succeeded, Task.exception must be null."); + throw new AssertionError("When whenComplete succeeded, Task.exception must be null.", Task.this.getException()); action.execute(Task.this.getException());