private String getBlockingDetails(Task<?> task) { List<TaskInternal<?>> taskChain = Lists.newArrayList(); TaskInternal<?> taskI = (TaskInternal<?>) task; while (taskI != null) { taskChain.add(taskI); if (taskI.getBlockingDetails() != null) { return taskI.getBlockingDetails(); } taskI = (TaskInternal<?>) taskI.getBlockingTask(); } throw new IllegalStateException("No blocking details for "+task+" (walked task chain "+taskChain+")"); }
@Override protected boolean doCancel(org.apache.brooklyn.util.core.task.TaskInternal.TaskCancellationMode mode) { if (nextRun!=null) { ((TaskInternal<?>)nextRun).cancel(mode); } return super.doCancel(mode); }
@Override public T get(long arg0, TimeUnit arg1) throws InterruptedException, ExecutionException, TimeoutException { return delegate().get(arg0, arg1); }
assertFalse(t.isDone()); assertFalse(t.isDone()); log.debug("runBasicTaskWithWaits, BasicTask status: {}", t.getStatusDetail(false)); assertEquals("a", t.get());
@Override public String getBlockingDetails() { return delegate().getBlockingDetails(); }
log.trace("Submitting task {} ({}), with flags {}, and tags {}, job {}; caller {}", new Object[] {task.getId(), task, Sanitizer.sanitize(flags), task.getTags(), (task instanceof TaskInternal ? ((TaskInternal<T>)task).getJob() : "<unavailable>"), Tasks.current() }); if (Tasks.current()==null && BrooklynTaskTags.isTransient(task)) { if (((TaskInternal<T>)task).getJob() == null) throw new NullPointerException("Task "+task+" submitted with with null job: job must be supplied."); ListenableFuture<T> listenableFuture = new CancellingListenableForwardingFutureForTask<T>(this, future, ((TaskInternal<T>)task).getListeners(), task); ((TaskInternal<T>)task).addListener(new SubmissionListenerToCallOtherListeners<T>(task), runner); ((TaskInternal<T>)task).initInternalFuture(listenableFuture);
@Override public Task<?> getBlockingTask() { return delegate().getBlockingTask(); }
log.trace("CLFFT cancelling "+task+" mode "+mode); if (!task.isCancelled()) result |= ((TaskInternal<T>)task).cancel(mode); result |= delegate().cancel(mode.isAllowedToInterruptTask()); if (((TaskInternal<?>)child).cancel(mode)) { result = true; subtasksReallyCancelled++; if (((TaskInternal<?>)t).cancel(mode)) { result = true; subtasksReallyCancelled++; ((TaskInternal<?>)task).runListeners(); return result;
Entity entity = BrooklynTaskTags.getTargetOrContextEntity(current); if (entity == null) throw new IllegalStateException("Should only be invoked in a running task with an entity tag; "+ current+" has no entity tag ("+current.getStatusDetail(false)+")"); String prevBlockingDetails = current.setBlockingDetails(blockingDetails); try { if (semaphore.tryAcquire(nextPeriod.toMilliseconds(), TimeUnit.MILLISECONDS)) { current.setBlockingDetails(prevBlockingDetails);
@Override public String getStatusDetail(boolean multiline) { return delegate().getStatusDetail(multiline); }
@Override public boolean isDone() { return delegate().isDone(); }
@Override public void addListener(Runnable listener, Executor executor) { delegate().addListener(listener, executor); }
@Override public Boolean call() { TaskInternal<?> current = (TaskInternal<?>)Tasks.current(); assertEquals(current.getBlockingDetails(), description); return true; } });
@Override public void run() { t.getStatusDetail(false).toLowerCase().contains("waiting"); }}); // "details="+t.getStatusDetail(false))
private String getBlockingDetails(Task<?> task) { List<TaskInternal<?>> taskChain = Lists.newArrayList(); TaskInternal<?> taskI = (TaskInternal<?>) task; while (taskI != null) { taskChain.add(taskI); if (taskI.getBlockingDetails() != null) { return taskI.getBlockingDetails(); } taskI = (TaskInternal<?>) taskI.getBlockingTask(); } throw new IllegalStateException("No blocking details for "+task+" (walked task chain "+taskChain+")"); }
@Override public boolean cancel(TaskCancellationMode mode) { return delegate.cancel(mode); } }
@Override public T get(Duration duration) throws InterruptedException, ExecutionException, TimeoutException { return delegate().get(duration); }
task.getStatusSummary(), result, task.isError(), task.isCancelled(), children, asLink(task.getSubmittedByTask(), ub), task.isDone() ? null : task instanceof TaskInternal ? asLink(((TaskInternal<?>)task).getBlockingTask(), ub) : null, task.isDone() ? null : task instanceof TaskInternal ? ((TaskInternal<?>)task).getBlockingDetails() : null, task.getStatusDetail(true), streams,
@Override public boolean cancel(boolean arg0) { return delegate().cancel(arg0); }
@Override public T get() throws InterruptedException, ExecutionException { return delegate().get(); }