private void processResponse() { banLock.onBanSet(); if (responses.decrementAndGet() == 0) { if (failures.isEmpty() == false) { IllegalStateException exception = new IllegalStateException("failed to cancel children of the task [" + cancellableTask.getId() + "]"); failures.forEach(exception::addSuppressed); listener.onFailure(exception); } else { listener.onResponse(cancellableTask.taskInfo(nodeId, false)); } } } });
() -> listener.onResponse(cancellableTask.taskInfo(nodeId, false))); if (canceled) { logger.trace("task {} doesn't have any children that should be cancelled", cancellableTask.getId());
private void processResponse() { banLock.onBanSet(); if (responses.decrementAndGet() == 0) { if (failures.isEmpty() == false) { IllegalStateException exception = new IllegalStateException("failed to cancel children of the task [" + cancellableTask.getId() + "]"); failures.forEach(exception::addSuppressed); listener.onFailure(exception); } else { listener.onResponse(cancellableTask.taskInfo(nodeId, false)); } } } });
private void processResponse() { banLock.onBanSet(); if (responses.decrementAndGet() == 0) { if (failures.isEmpty() == false) { IllegalStateException exception = new IllegalStateException("failed to cancel children of the task [" + cancellableTask.getId() + "]"); failures.forEach(exception::addSuppressed); listener.onFailure(exception); } else { listener.onResponse(cancellableTask.taskInfo(nodeId, false)); } } } });
private void processResponse() { banLock.onBanSet(); if (responses.decrementAndGet() == 0) { if (failures.isEmpty() == false) { IllegalStateException exception = new IllegalStateException("failed to cancel children of the task [" + cancellableTask.getId() + "]"); failures.forEach(exception::addSuppressed); listener.onFailure(exception); } else { listener.onResponse(cancellableTask.taskInfo(nodeId, false)); } } } });
@Override protected synchronized TaskInfo taskOperation(CancelTasksRequest request, final CancellableTask cancellableTask) { final BanLock banLock = new BanLock(new Consumer<Set<String>>() { @Override public void accept(Set<String> nodes) { removeBanOnNodes(cancellableTask, nodes); } }); Set<String> childNodes = taskManager.cancel(cancellableTask, request.getReason(), new Consumer<Set<String>>() { @Override public void accept(Set<String> nodes) { banLock.onTaskFinished(nodes); } }); if (childNodes != null) { if (childNodes.isEmpty()) { logger.trace("cancelling task {} with no children", cancellableTask.getId()); return cancellableTask.taskInfo(clusterService.localNode(), false); } else { logger.trace("cancelling task {} with children on nodes [{}]", cancellableTask.getId(), childNodes); setBanOnNodes(request.getReason(), cancellableTask, childNodes, banLock); return cancellableTask.taskInfo(clusterService.localNode(), false); } } else { logger.trace("task {} is already cancelled", cancellableTask.getId()); throw new IllegalStateException("task with id " + cancellableTask.getId() + " is already cancelled"); } }
() -> listener.onResponse(cancellableTask.taskInfo(nodeId, false))); if (canceled) { logger.trace("task {} doesn't have any children that should be cancelled", cancellableTask.getId());
() -> listener.onResponse(cancellableTask.taskInfo(nodeId, false))); if (canceled) { logger.trace("task {} doesn't have any children that should be cancelled", cancellableTask.getId());
() -> listener.onResponse(cancellableTask.taskInfo(nodeId, false))); if (canceled) { logger.trace("task {} doesn't have any children that should be cancelled", cancellableTask.getId());