diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java index 4f2378566..647dec2a3 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java @@ -86,7 +86,7 @@ public abstract class VersionList { } public Task loadAsync(String gameVersion) { - return Task.composeAsync(() -> { + return Task.composeAsync(null, () -> { lock.readLock().lock(); boolean loaded; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CancellableTaskExecutor.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CancellableTaskExecutor.java index cfe9f1539..ad7e076c0 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CancellableTaskExecutor.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/CancellableTaskExecutor.java @@ -143,7 +143,7 @@ public class CancellableTaskExecutor extends TaskExecutor { .findAny().orElse(null); if (!doDependentsSucceeded && task.isRelyingOnDependents() || cancelled.get()) { task.setException(dependentsException); - throw new CancellationException(); + throw new ExecutionException(dependentsException); } if (doDependentsSucceeded) @@ -183,7 +183,7 @@ public class CancellableTaskExecutor extends TaskExecutor { if (!doDependenciesSucceeded && task.isRelyingOnDependencies()) { Logging.LOG.severe("Subtasks failed for " + task.getName()); task.setException(dependenciesException); - throw new CancellationException(); + throw new ExecutionException(dependenciesException); } flag = true; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FileDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FileDownloadTask.java index cf0236f6e..14ce4a34f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FileDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FileDownloadTask.java @@ -211,7 +211,7 @@ public class FileDownloadTask extends Task { Exception exception = null; for (int repeat = 0; repeat < retry * urls.size(); repeat++) { - URL url = urls.get(repeat / urls.size()); + URL url = urls.get(repeat / retry); if (isCancelled()) { break; }