@Override public void onSuccess(final A result) { try { final ListenableFuture<V> future = second.call(result); addFutureCallback(future, new FutureCallback<V>() { @Override public void onSuccess(final V result) { returnVal.set(result); } @Override public void onFailure(final Throwable t) { returnVal.setException(t); } }, executor); } catch (Throwable e) { returnVal.setException(e); } }
protected static <V> ChainedListenableFuture<Void> doAfter(Executor executor, ListenableFuture<V> first, final Runnable second) { final ChainedSettableFuture<Void> returnVal = new ChainedSettableFuture<Void>(executor); addFutureCallback(first, new FutureCallback<V>() { @Override public void onSuccess(final V result) { try { second.run(); returnVal.set(null); } catch(Throwable e) { returnVal.setException(e); } } @Override public void onFailure(final Throwable t) { returnVal.setException(t); } }, executor); return returnVal; }
protected static <V> ChainedListenableFuture<V> doAfter(final Executor executor, ListenableFuture<V> first, final Callable<ListenableFuture<V>> second) addFutureCallback(first, new FutureCallback<V>()
@Override public ListenableFuture<X> createAsync(final ConfiguredObjectFactory factory, final Map<String, Object> attributes, final ConfiguredObject<?> parent) { final SettableFuture<X> returnVal = SettableFuture.create(); final X instance = createInstance(attributes, parent); final ListenableFuture<Void> createFuture = instance.createAsync(); AbstractConfiguredObject.addFutureCallback(createFuture, new FutureCallback<Void>() { @Override public void onSuccess(final Void result) { returnVal.set(instance); } @Override public void onFailure(final Throwable t) { returnVal.setException(t); } }, MoreExecutors.directExecutor()); return returnVal; }
@Override public void performAction(final ConfiguredObject<?> child) { ListenableFuture<Void> childCloseFuture = child.closeAsync(); addFutureCallback(childCloseFuture, new FutureCallback<Void>() { @Override public void onSuccess(final Void result) { } @Override public void onFailure(final Throwable t) { LOGGER.error("Exception occurred while closing {} : {}", child.getClass().getSimpleName(), child.getName(), t); } }, getTaskExecutor()); childCloseFutures.add(childCloseFuture); } });
protected static <V,A> ChainedListenableFuture<V> doAfter(final Executor executor, ListenableFuture<A> first, final CallableWithArgument<ListenableFuture<V>,A> second) addFutureCallback(first, new FutureCallback<A>()
final ListenableFuture<Exchange<?>> future = addExchangeAsync(attributes); final SettableFuture<Void> returnVal = SettableFuture.create(); addFutureCallback(future, new FutureCallback<Exchange<?>>()
@Override public Void execute() { try { addFutureCallback(task.execute(), new FutureCallback<T>() { @Override public void onSuccess(final T result) { returnVal.set(result); } @Override public void onFailure(final Throwable t) { returnVal.setException(t); } }, getTaskExecutor()); } catch(Throwable t) { returnVal.setException(t); } return null; }
addFutureCallback(combinedChildStateFuture, new FutureCallback<List<Void>>()
private synchronized void stealLink() { ThiefInformation thiefInformation; if ((thiefInformation = _thiefQueue.poll()) != null) { AbstractConfiguredObject.addFutureCallback(doStealLink(thiefInformation.getSession(), thiefInformation.getAttach()), new FutureCallback<LinkEndpoint<S, T>>() { @Override public void onSuccess(final LinkEndpoint<S, T> result) { thiefInformation.getFuture().set(result); stealLink(); } @Override public void onFailure(final Throwable t) { thiefInformation.getFuture().setException(t); stealLink(); } }, MoreExecutors.directExecutor()); } else { _stealingInProgress = false; } }
addFutureCallback(childDeleteFuture, new FutureCallback<Void>()
addFutureCallback(stateTransitionFuture, new FutureCallback<Void>()
addFutureCallback(attainState(), new FutureCallback<Void>()
addFutureCallback(future, new FutureCallback<Void>()
addFutureCallback(future, new FutureCallback<V>()
return Futures.immediateFuture(null); }); addFutureCallback(future, new FutureCallback<Void>()