private void removeResources(ClosureRemovalTaskState state, String subTaskLink) {
if (subTaskLink == null) {
createCounterSubTask(state, state.resourceLinks.size(),
(link) -> removeResources(state, link));
return;
}
try {
for (String resourceLink : state.resourceLinks) {
sendRequest(Operation
.createGet(this, resourceLink)
.setCompletion(
(o, e) -> {
if (e != null) {
failTask("Failed retrieving closure state: " + resourceLink,
e);
return;
}
Closure closure = o.getBody(Closure.class);
doDeleteResource(state, subTaskLink, closure);
}));
}
proceedTo(SubStage.REMOVING_RESOURCE_STATES);
} catch (Throwable e) {
failTask("Unexpected exception while deleting resources", e);
}
}