List of usage examples for com.google.common.util.concurrent Futures addCallback
public static <V> void addCallback(ListenableFuture<V> future, FutureCallback<? super V> callback)
From source file:io.crate.executor.transport.task.UpdateTask.java
@Override public void start() { if (subTasks.size() == 0) { result.set(RowCountResult.EMPTY_RESULT); return;/*from w w w . j a v a2s. c o m*/ } final List<ListenableFuture<TaskResult>> subTasksResult = transportExecutor.execute(subTasks); Futures.addCallback(Futures.allAsList(subTasksResult), new FutureCallback<List<TaskResult>>() { @Override public void onSuccess(@Nullable List<TaskResult> results) { if (results == null) { result.setException(new NullPointerException()); return; } assert results.size() == 1 : "Last sub-task is expected to have 1 result only"; result.set(new RowCountResult(((Number) results.get(0).rows()[0][0]).longValue())); } @Override public void onFailure(@Nonnull Throwable t) { if (t == null) { t = new NullPointerException(); } result.setException(t); } }); }
From source file:com.google.devtools.build.lib.concurrent.MoreFutures.java
/** * Creates a new {@code ListenableFuture} whose value is a list containing the * values of all its input futures, if all succeed. If any input fails, the * returned future fails. If any of the futures fails, it cancels all the other futures. * * <p> This method is similar to {@code Futures.allAsList} but additionally it cancels all the * futures in case any of them fails./*from www. ja v a2 s . c om*/ */ public static <V> ListenableFuture<List<V>> allAsListOrCancelAll( final Iterable<? extends ListenableFuture<? extends V>> futures) { ListenableFuture<List<V>> combinedFuture = Futures.allAsList(futures); Futures.addCallback(combinedFuture, new FutureCallback<List<V>>() { @Override public void onSuccess(@Nullable List<V> vs) { } /** * In case of a failure of any of the futures (that gets propagated to combinedFuture) we * cancel all the futures in the list. */ @Override public void onFailure(Throwable ignore) { for (ListenableFuture<? extends V> future : futures) { future.cancel(true); } } }); return combinedFuture; }
From source file:io.crate.executor.task.DDLTask.java
@Override public void execute(final RowReceiver rowReceiver, Row parameters) { ListenableFuture<Long> future = ddlStatementDispatcher.dispatch(analyzedStatement, jobId()); Futures.addCallback(future, new OneRowActionListener<>(rowReceiver, new Function<Long, Row>() { @Nullable/*from w ww . jav a2 s . c o m*/ @Override public Row apply(@Nullable Long input) { return new Row1(input == null ? -1 : input); } })); }
From source file:org.jclouds.compute.extensions.internal.DelegatingImageExtension.java
public ListenableFuture<Image> createImage(ImageTemplate template) { ListenableFuture<Image> future = delegate.createImage(template); Futures.addCallback(future, new FutureCallback<Image>() { @Override//www. j a va 2 s. c o m public void onSuccess(Image result) { imageCache.registerImage(result); } @Override public void onFailure(Throwable t) { } }); return future; }
From source file:com.microsoft.office365.starter.FilesFolders.O365FileListModel.java
public void postUpdatedFileContents(final O365APIsStart_Application application, final Activity currentActivity, SharePointClient fileClient, final String updatedContents) { ListenableFuture<Void> future = fileClient.getfiles().getById(application.getDisplayedFile().getId()) .asFile().putContent(updatedContents.getBytes()); Futures.addCallback(future, new FutureCallback<Void>() { @Override//from ww w. j av a2 s .c om public void onFailure(Throwable t) { Log.e("Asset", t.getMessage()); // Notify caller that the Event update operation failed OperationResult opResult = new OperationResult("Post updated file contents", "failed: " + APIErrorMessageHelper.getErrorMessage(t.getMessage()), ""); mEventOperationCompleteListener.onOperationComplete(opResult); } @Override public void onSuccess(Void v) { // Update file contents in model O365FileModel fileItem = mApplication.getDisplayedFile(); fileItem.setContents(currentActivity, updatedContents); // Notify caller that the Event update operation is complete and // succeeded OperationResult opResult = new OperationResult("Post updated file contents", "Posted updated file contents", "FileContentsUpdate"); mEventOperationCompleteListener.onOperationComplete(opResult); } }); }
From source file:org.opendaylight.ocpplugin.impl.services.SalFaultMgmtServiceImpl.java
@Override public Future<RpcResult<GetFaultOutput>> getFault(final GetFaultInput input) { ListenableFuture<RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetFaultOutput>> future = getFault .handleServiceCall(input);//from w w w .j a va2 s . c o m final SettableFuture<RpcResult<GetFaultOutput>> finalFuture = SettableFuture.create(); Futures.addCallback(future, new FutureCallback<RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetFaultOutput>>() { @Override public void onSuccess( final RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetFaultOutput> result) { org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetFaultOutput output = result .getResult(); GetFaultOutputBuilder builder = new GetFaultOutputBuilder(); builder.setObj(output.getObj()); builder.setResult(output.getResult()); RpcResultBuilder<GetFaultOutput> rpcResultBuilder = RpcResultBuilder.success(builder); finalFuture.set(rpcResultBuilder.build()); } @Override public void onFailure(final Throwable t) { RpcResultBuilder<GetFaultOutput> rpcResultBuilder = RpcResultBuilder.failed(); finalFuture.set(rpcResultBuilder.build()); } }); return finalFuture; }
From source file:com.microsoft.windowsazure.mobileservices.zumoe2etestapp.framework.LogServiceFilter.java
@Override public ListenableFuture<ServiceFilterResponse> handleRequest(ServiceFilterRequest request, NextServiceFilterCallback nextServiceFilterCallback) { final SettableFuture<ServiceFilterResponse> resultFuture = SettableFuture.create(); String content = request.getContent(); if (content == null) content = "NULL"; String url = request.getUrl(); if (url == null) url = ""; Log.d("REQUEST URL", url); Log.d("REQUEST CONTENT", content); ListenableFuture<ServiceFilterResponse> nextServiceFilterCallbackFuture = nextServiceFilterCallback .onNext(request);/* w w w. ja v a 2 s . c om*/ Futures.addCallback(nextServiceFilterCallbackFuture, new FutureCallback<ServiceFilterResponse>() { @Override public void onFailure(Throwable exception) { resultFuture.setException(exception); } @Override public void onSuccess(ServiceFilterResponse response) { if (response != null) { String content = response.getContent(); if (content != null) { Log.d("RESPONSE CONTENT", content); } } resultFuture.set(response); } }); return resultFuture; }
From source file:org.opendaylight.controller.config.yang.netconf.mdsal.monitoring.MonitoringToMdsalWriter.java
@Override public void close() { final WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); tx.delete(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(NetconfState.class)); final CheckedFuture<Void, TransactionCommitFailedException> submit = tx.submit(); Futures.addCallback(submit, new FutureCallback<Void>() { @Override/*from www . jav a2 s.c o m*/ public void onSuccess(final Void aVoid) { LOG.debug("Netconf state cleared successfully"); } @Override public void onFailure(final Throwable throwable) { LOG.warn("Unable to clear netconf state", throwable); } }); }
From source file:us.physion.ovation.ui.editor.NewProtocolAction.java
@Override public void actionPerformed(final ActionEvent e) { DataContext ctx = Lookup.getDefault().lookup(ConnectionProvider.class).getDefaultContext(); final Protocol p = ctx.insertProtocol(Bundle.CTL_NewProtocolName(), ""); ListenableFuture<Void> reset = BrowserUtilities.reloadView(BrowserUtilities.PROTOCOL_BROWSER_ID); Futures.addCallback(reset, new FutureCallback<Void>() { @Override/*from w ww . j a v a 2s . c o m*/ public void onSuccess(Void result) { selectNode(p, BrowserUtilities.PROTOCOL_BROWSER_ID); } @Override public void onFailure(Throwable t) { LoggerFactory.getLogger(NewProjectAction.class).error("Unable to reset view", t); } }); }
From source file:us.physion.ovation.ui.editor.NewSourceAction.java
@Override public void actionPerformed(final ActionEvent e) { DataContext ctx = Lookup.getDefault().lookup(ConnectionProvider.class).getDefaultContext(); final Source s = ctx.insertSource(Bundle.CTL_NewSourceLabel(), ""); ListenableFuture<Void> reset = BrowserUtilities.reloadView(BrowserUtilities.SOURCE_BROWSER_ID); Futures.addCallback(reset, new FutureCallback<Void>() { @Override//from w w w.j av a 2 s. c o m public void onSuccess(Void result) { selectNode(s, BrowserUtilities.SOURCE_BROWSER_ID); } @Override public void onFailure(Throwable t) { LoggerFactory.getLogger(NewProjectAction.class).error("Unable to reset view", t); } }); }