Add doDependenciesSucceeded in Task

This commit is contained in:
huanghongxun
2018-12-18 00:26:31 +08:00
parent 0fe867cd93
commit bc34427793
3 changed files with 19 additions and 1 deletions

View File

@@ -0,0 +1,4 @@
package org.jackhuang.hmcl.mod;
public class ModpackUpdateTask {
}

View File

@@ -95,6 +95,16 @@ public abstract class Task {
dependentsSucceeded = true;
}
private boolean dependenciesSucceeded = false;
public boolean isDependenciesSucceeded() {
return dependenciesSucceeded;
}
void setDependenciesSucceeded() {
dependenciesSucceeded = true;
}
/**
* True if requires all {@link #getDependents} finishing successfully.
* <p>

View File

@@ -185,11 +185,15 @@ public final class TaskExecutor {
variables.set(taskResult.getId(), taskResult.getResult());
}
if (!executeTasks(task.getDependencies()) && task.isRelyingOnDependencies()) {
boolean doDependenciesSucceeded = executeTasks(task.getDependencies());
if (!doDependenciesSucceeded && task.isRelyingOnDependencies()) {
Logging.LOG.severe("Subtasks failed for " + task.getName());
throw new SilentException();
}
if (doDependenciesSucceeded)
task.setDependenciesSucceeded();
try {
task.getScheduler().schedule(task::postExecute).get();
} catch (ExecutionException e) {