void fireSucceeded(T value) { TaskEvent<T> event = TaskEvent.succeeded(task, value); LOG.debug("firing succeeded event: {}", event); for (TaskListener<? super T> listener : listeners) { listener.succeeded(event); } }