Add doDependenciesSucceeded in Task
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
package org.jackhuang.hmcl.mod;
|
||||||
|
|
||||||
|
public class ModpackUpdateTask {
|
||||||
|
}
|
||||||
@@ -95,6 +95,16 @@ public abstract class Task {
|
|||||||
dependentsSucceeded = true;
|
dependentsSucceeded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean dependenciesSucceeded = false;
|
||||||
|
|
||||||
|
public boolean isDependenciesSucceeded() {
|
||||||
|
return dependenciesSucceeded;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setDependenciesSucceeded() {
|
||||||
|
dependenciesSucceeded = true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* True if requires all {@link #getDependents} finishing successfully.
|
* True if requires all {@link #getDependents} finishing successfully.
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
@@ -185,11 +185,15 @@ public final class TaskExecutor {
|
|||||||
variables.set(taskResult.getId(), taskResult.getResult());
|
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());
|
Logging.LOG.severe("Subtasks failed for " + task.getName());
|
||||||
throw new SilentException();
|
throw new SilentException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (doDependenciesSucceeded)
|
||||||
|
task.setDependenciesSucceeded();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
task.getScheduler().schedule(task::postExecute).get();
|
task.getScheduler().schedule(task::postExecute).get();
|
||||||
} catch (ExecutionException e) {
|
} catch (ExecutionException e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user