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:eu.point.registry.impl.LinkRegistryUtils.java
/** * The method which initializes the registry data tree. *//*from w w w . ja v a2 s. co m*/ public void initializeDataTree() { LOG.debug("Preparing to initialize the Link registry"); WriteTransaction transaction = db.newWriteOnlyTransaction(); InstanceIdentifier<LinkRegistry> iid = InstanceIdentifier.create(LinkRegistry.class); LinkRegistry greetingRegistry = new LinkRegistryBuilder().build(); transaction.put(LogicalDatastoreType.OPERATIONAL, iid, greetingRegistry); CheckedFuture<Void, TransactionCommitFailedException> future = transaction.submit(); Futures.addCallback(future, new LoggingFuturesCallBack<>("Failed to create Link registry", LOG)); }
From source file:io.crate.executor.task.join.NestedLoopTask.java
@Override public void start(PageInfo pageInfo) { Futures.addCallback(operation.execute(Optional.of(pageInfo)), new ForwardingFutureCallback<>(result)); }
From source file:com.microsoft.office365.connect.SendMailActivity.java
/** * Handler for the onclick event of the send mail button. It locates the service endpoints * for the mail service using the DiscoveryController class. It also uses the MailController * class to send an email to the address stored in the mEmailEditText view. * The subject and body of the message is stored in the strings.xml file. * @param v//from w ww .j av a 2 s .c om */ public void onSendMailButtonClick(View v) { final SettableFuture<ServiceInfo> serviceDiscovered; resetUIForSendMail(); serviceDiscovered = DiscoveryController.getInstance().getServiceInfo(Constants.MAIL_CAPABILITY); Futures.addCallback(serviceDiscovered, new FutureCallback<ServiceInfo>() { @Override public void onSuccess(ServiceInfo serviceInfo) { Log.i(TAG, "onSendMailButtonClick - Mail service discovered"); showDiscoverSuccessUI(); MailController.getInstance().setServiceResourceId(serviceInfo.getserviceResourceId()); MailController.getInstance().setServiceEndpointUri(serviceInfo.getserviceEndpointUri()); try { // Since we are no longer on the UI thread, // we can call this method synchronously without blocking the UI Boolean mailSent = MailController.getInstance() .sendMail(mEmailEditText.getText().toString(), getResources().getString(R.string.mail_subject_text), MessageFormat.format(getResources().getString(R.string.mail_body_text), getIntent().getStringExtra("givenName"))) .get(); Log.i(TAG, "sendMailToRecipient - Mail sent"); showSendMailSuccessUI(); } catch (InterruptedException | ExecutionException e) { Log.e(TAG, "onSendMailButtonClick - " + e.getMessage()); showSendMailErrorUI(); } } @Override public void onFailure(final Throwable t) { Log.e(TAG, "onSendMailButtonClick - " + t.getMessage()); showDiscoverErrorUI(); } }); }
From source file:com.google.bitcoin.utils.MockTransactionBroadcaster.java
@Override public SettableFuture<Transaction> broadcastTransaction(Transaction tx) { // Use a lock just to catch lock ordering inversions e.g. wallet->broadcaster. lock.lock();//from w ww. j av a 2s .c o m try { SettableFuture<Transaction> result = SettableFuture.create(); broadcasts.put(new TxFuturePair(tx, result)); Futures.addCallback(result, new FutureCallback<Transaction>() { @Override public void onSuccess(Transaction result) { try { wallet.receivePending(result, null); } catch (VerificationException e) { throw new RuntimeException(e); } } @Override public void onFailure(Throwable t) { } }); return result; } catch (InterruptedException e) { throw new RuntimeException(e); } finally { lock.unlock(); } }
From source file:io.crate.jobs.CountContext.java
@Override public void innerStart() { try {//from w w w .j av a 2s. c o m countFuture = countOperation.count(indexShardMap, whereClause); } catch (IOException | InterruptedException e) { throw Throwables.propagate(e); } Futures.addCallback(countFuture, new FutureCallback<Long>() { @Override public void onSuccess(@Nullable Long result) { rowReceiver.setNextRow(new Row1(result)); close(); } @Override public void onFailure(@Nonnull Throwable t) { close(t); } }); }
From source file:org.opendaylight.openflowplugin.impl.services.FlowService.java
ListenableFuture<RpcResult<O>> processFlowModInputBuilders(final List<FlowModInputBuilder> ofFlowModInputs) { final List<ListenableFuture<RpcResult<O>>> partialFutures = new ArrayList<>(ofFlowModInputs.size()); for (final FlowModInputBuilder flowModInputBuilder : ofFlowModInputs) { partialFutures.add(handleServiceCall(flowModInputBuilder)); }//from www .j a v a2s . com final ListenableFuture<List<RpcResult<O>>> allFutures = Futures.successfulAsList(partialFutures); final SettableFuture<RpcResult<O>> finalFuture = SettableFuture.create(); Futures.addCallback(allFutures, new FutureCallback<List<RpcResult<O>>>() { @Override public void onSuccess(final List<RpcResult<O>> results) { final ArrayList<RpcError> errors = new ArrayList(); for (RpcResult<O> flowModResult : results) { if (flowModResult == null) { errors.add(RpcResultBuilder.newError(RpcError.ErrorType.PROTOCOL, OFConstants.APPLICATION_TAG, "unexpected flowMod result (null) occurred")); } else if (!flowModResult.isSuccessful()) { errors.addAll(flowModResult.getErrors()); } } final RpcResultBuilder<O> rpcResultBuilder; if (errors.isEmpty()) { rpcResultBuilder = RpcResultBuilder.success(); } else { rpcResultBuilder = RpcResultBuilder.<O>failed().withRpcErrors(errors); } finalFuture.set(rpcResultBuilder.build()); } @Override public void onFailure(final Throwable t) { RpcResultBuilder<O> rpcResultBuilder = RpcResultBuilder.failed(); finalFuture.set(rpcResultBuilder.build()); } }); return finalFuture; }
From source file:io.v.android.impl.google.services.beam.BeamActivity.java
@Override public void onResume() { super.onResume(); NdefMessage msgs[] = null;/*from w w w . j a v a 2 s.com*/ Intent intent = getIntent(); if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) { Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); if (rawMsgs != null) { msgs = new NdefMessage[rawMsgs.length]; for (int i = 0; i < rawMsgs.length; i++) { msgs[i] = (NdefMessage) rawMsgs[i]; } } } if (msgs == null) { Log.d(TAG, "No ndef messages"); finish(); return; } VBeamManager.Data data = null; for (NdefMessage m : msgs) { data = VBeamManager.decodeMessage(m); if (data != null) break; } if (data == null) { Log.w(TAG, "Unable to deserialize data"); finish(); return; } Log.d(TAG, "connecting to " + data.name); VContext ctx = V.init(this).withTimeout(Duration.standardSeconds(2)); Options opts = new Options(); opts.set(OptionDefs.SERVER_AUTHORIZER, VSecurity.newPublicKeyAuthorizer(data.key)); IntentBeamerClient client = IntentBeamerClientFactory.getIntentBeamerClient(data.name); ListenableFuture<IntentBeamerClient.GetIntentOut> out = client.getIntent(ctx, data.secret, opts); Futures.addCallback(out, new FutureCallback<IntentBeamerClient.GetIntentOut>() { @Override public void onSuccess(IntentBeamerClient.GetIntentOut result) { try { Log.d(TAG, "got intent " + result.intentUri); int flags = 0; if (result.intentUri.startsWith("intent:")) { flags = Intent.URI_INTENT_SCHEME; } else { flags = Intent.URI_ANDROID_APP_SCHEME; } Intent resultIntent = Intent.parseUri(result.intentUri, flags); resultIntent.putExtra(VBeamManager.EXTRA_VBEAM_PAYLOAD, result.payload); startActivity(resultIntent); finish(); } catch (Throwable t) { t.printStackTrace(); } } @Override public void onFailure(Throwable t) { t.printStackTrace(); finish(); } }); }
From source file:io.crate.autocomplete.TransportSQLAutoCompleteAction.java
@Override protected void doExecute(SQLAutoCompleteRequest request, final ActionListener<SQLAutoCompleteResponse> listener) { try {//from w w w .ja v a2s. c o m ListenableFuture<CompletionResult> completionFuture = autoCompleter.complete(request.statement()); Futures.addCallback(completionFuture, new FutureCallback<CompletionResult>() { @Override public void onSuccess(@Nullable CompletionResult result) { assert result != null; listener.onResponse(new SQLAutoCompleteResponse(result.startIdx(), result.completions())); } @Override public void onFailure(@Nonnull Throwable t) { listener.onFailure(t); } }); } catch (Throwable e) { listener.onFailure(e); } }
From source file:org.robotninjas.concurrent.FluentFutureTask.java
@Override public FluentFuture<V> addCallback(FutureCallback<V> callback) { Futures.addCallback(this, callback); return this; }
From source file:org.apache.flink.streaming.connectors.cassandra.CassandraSinkBase.java
@Override public void invoke(IN value) throws Exception { if (exception != null) { throw new IOException("invoke() failed", exception); }/*from w w w . jav a 2 s .c o m*/ ListenableFuture<V> result = send(value); Futures.addCallback(result, callback); }