List of usage examples for com.google.common.util.concurrent SettableFuture setException
@Override public boolean setException(Throwable throwable)
From source file:org.opendaylight.ovsdb.lib.impl.OvsdbClientImpl.java
private void populateSchema(final List<String> dbNames, final Map<String, DatabaseSchema> schema, final SettableFuture<Map<String, DatabaseSchema>> sfuture) { if (dbNames == null || dbNames.isEmpty()) { return;//from w w w . j av a 2 s . c om } Futures.transform(rpc.get_schema(Lists.newArrayList(dbNames.get(0))), new com.google.common.base.Function<JsonNode, Void>() { @Override public Void apply(JsonNode jsonNode) { try { schema.put(dbNames.get(0), DatabaseSchema.fromJson(dbNames.get(0), jsonNode)); if (schema.size() > 1 && !sfuture.isCancelled()) { populateSchema(dbNames.subList(1, dbNames.size()), schema, sfuture); } else if (schema.size() == 1) { sfuture.set(schema); } } catch (Exception e) { sfuture.setException(e); } return null; } }); }
From source file:io.crate.action.sql.DDLAnalysisDispatcher.java
@Override public ListenableFuture<Long> visitAddColumnAnalysis(final AddColumnAnalysis analysis, Void context) { final SettableFuture<Long> result = SettableFuture.create(); if (analysis.newPrimaryKeys()) { Plan plan = genCountStarPlan(analysis.table()); Job job = executorProvider.get().newJob(plan); ListenableFuture<List<TaskResult>> resultFuture = Futures .allAsList(executorProvider.get().execute(job)); Futures.addCallback(resultFuture, new FutureCallback<List<TaskResult>>() { @Override/*w ww . j ava 2s. c o m*/ public void onSuccess(@Nullable List<TaskResult> resultList) { assert resultList != null && resultList.size() == 1; Object[][] rows = resultList.get(0).rows(); if ((Long) rows[0][0] == 0L) { addColumnToTable(analysis, result); } else { result.setException(new UnsupportedOperationException( "Cannot add a primary key column to a table that isn't empty")); } } @Override public void onFailure(@Nonnull Throwable t) { result.setException(t); } }); } else { addColumnToTable(analysis, result); } return result; }
From source file:com.microsoft.windowsazure.mobileservices.table.MobileServiceJsonTable.java
/** * Delete an element from a Mobile Service Table * * @param element The JsonObject to undelete * @param parameters A list of user-defined parameters and values to include in the * request URI query string */// www . j a v a 2 s . co m public ListenableFuture<Void> delete(JsonObject element, List<Pair<String, String>> parameters) { validateId(element); final SettableFuture<Void> future = SettableFuture.create(); Object id = null; String version = null; try { id = validateId(element); } catch (Exception e) { future.setException(e); return future; } if (!isNumericType(id)) { version = getVersionSystemProperty(element); } EnumSet<MobileServiceFeatures> features = mFeatures.clone(); if (parameters != null && parameters.size() > 0) { features.add(MobileServiceFeatures.AdditionalQueryParameters); } parameters = addSystemProperties(mSystemProperties, parameters); List<Pair<String, String>> requestHeaders = null; if (version != null) { requestHeaders = new ArrayList<Pair<String, String>>(); requestHeaders.add(new Pair<String, String>("If-Match", getEtagFromValue(version))); features.add(MobileServiceFeatures.OpportunisticConcurrency); } ListenableFuture<Pair<JsonObject, ServiceFilterResponse>> internalFuture = this.executeTableOperation( TABLES_URL + mTableName + "/" + id.toString(), null, "DELETE", requestHeaders, parameters, features); Futures.addCallback(internalFuture, new FutureCallback<Pair<JsonObject, ServiceFilterResponse>>() { @Override public void onFailure(Throwable exc) { future.setException(exc); } @Override public void onSuccess(Pair<JsonObject, ServiceFilterResponse> result) { future.set(null); } }); return future; }
From source file:com.microsoft.windowsazure.mobileservices.table.MobileServiceJsonTable.java
/** * Undelete an element from a Mobile Service Table * * @param element The JsonObject to undelete * @param parameters A list of user-defined parameters and values to include in the * request URI query string */// w ww . j a v a 2 s. c om public ListenableFuture<JsonObject> undelete(final JsonObject element, List<Pair<String, String>> parameters) { final SettableFuture<JsonObject> future = SettableFuture.create(); Object id = null; String version = null; try { id = validateId(element); } catch (Exception e) { future.setException(e); return future; } if (!isNumericType(id)) { version = getVersionSystemProperty(element); } EnumSet<MobileServiceFeatures> features = mFeatures.clone(); if (parameters != null && parameters.size() > 0) { features.add(MobileServiceFeatures.AdditionalQueryParameters); } parameters = addSystemProperties(mSystemProperties, parameters); List<Pair<String, String>> requestHeaders = null; if (version != null) { requestHeaders = new ArrayList<Pair<String, String>>(); requestHeaders.add(new Pair<String, String>("If-Match", getEtagFromValue(version))); features.add(MobileServiceFeatures.OpportunisticConcurrency); } ListenableFuture<Pair<JsonObject, ServiceFilterResponse>> internalFuture = this.executeTableOperation( TABLES_URL + mTableName + "/" + id.toString(), null, "POST", requestHeaders, parameters, features); Futures.addCallback(internalFuture, new FutureCallback<Pair<JsonObject, ServiceFilterResponse>>() { @Override public void onFailure(Throwable exc) { future.setException(exc); } @Override public void onSuccess(Pair<JsonObject, ServiceFilterResponse> result) { JsonObject patchedJson = patchOriginalEntityWithResponseEntity(element, result.first); updateVersionFromETag(result.second, patchedJson); future.set(patchedJson); } }); return future; }
From source file:com.microsoft.sharepointservices.DocLibClient.java
/** * Get a FileSystemItem from a path in a document library * /*from ww w . j ava 2s . co m*/ * @param library * the document library * @param path * the path * @return OfficeFuture<List<FileSystemItem>> */ public ListenableFuture<FileSystemItem> getFileSystemItem(String path, final String library) { final SettableFuture<FileSystemItem> files = SettableFuture.create(); String getFilesUrl; if (library != null) { getFilesUrl = getSiteUrl() + "_api/web/lists/GetByTitle('%s')/files(%s)"; getFilesUrl = String.format(getFilesUrl, urlEncode(library), getUrlPath(path)); } else { getFilesUrl = getSiteUrl() + String.format("_api/files(%s)", getUrlPath(path)); } try { ListenableFuture<JSONObject> request = executeRequestJson(getFilesUrl, "GET"); Futures.addCallback(request, new FutureCallback<JSONObject>() { @Override public void onFailure(Throwable t) { files.setException(t); } @Override public void onSuccess(JSONObject json) { try { FileSystemItem item = new FileSystemItem(); item.loadFromJson(json); files.set(item); } catch (Throwable e) { files.setException(e); } } }); } catch (Throwable t) { files.setException(t); } return files; }
From source file:org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode.java
@StateTransition(currentState = { State.UNINITIALIZED, State.STOPPED, State.ERRORED }, desiredState = State.ACTIVE) protected ListenableFuture<Void> doActivate() { final SettableFuture<Void> returnVal = SettableFuture.create(); try {/* w ww .j av a2s . com*/ addFutureCallback(activate(), new FutureCallback<Void>() { @Override public void onSuccess(final Void result) { try { setState(State.ACTIVE); } finally { returnVal.set(null); } } @Override public void onFailure(final Throwable t) { setState(State.ERRORED); if (_broker.isManagementMode()) { LOGGER.warn("Failed to make " + this + " active.", t); returnVal.set(null); } else { returnVal.setException(t); } } }, getTaskExecutor()); } catch (RuntimeException e) { setState(State.ERRORED); returnVal.set(null); if (_broker.isManagementMode()) { LOGGER.warn("Failed to make " + this + " active.", e); } else { throw e; } } return returnVal; }
From source file:com.microsoft.windowsazure.mobileservices.table.MobileServiceJsonTable.java
/** * Updates an element from a Mobile Service Table * * @param element The JsonObject to update * @param parameters A list of user-defined parameters and values to include in the * request URI query string *//*from ww w. ja v a 2 s . co m*/ public ListenableFuture<JsonObject> update(final JsonObject element, List<Pair<String, String>> parameters) { final SettableFuture<JsonObject> future = SettableFuture.create(); Object id = null; String version = null; String content = null; try { id = validateId(element); } catch (Exception e) { future.setException(e); return future; } if (!isNumericType(id)) { version = getVersionSystemProperty(element); content = removeSystemProperties(element).toString(); } else { content = element.toString(); } EnumSet<MobileServiceFeatures> features = mFeatures.clone(); if (parameters != null && parameters.size() > 0) { features.add(MobileServiceFeatures.AdditionalQueryParameters); } parameters = addSystemProperties(mSystemProperties, parameters); List<Pair<String, String>> requestHeaders = null; if (version != null) { requestHeaders = new ArrayList<Pair<String, String>>(); requestHeaders.add(new Pair<String, String>("If-Match", getEtagFromValue(version))); features.add(MobileServiceFeatures.OpportunisticConcurrency); } ListenableFuture<Pair<JsonObject, ServiceFilterResponse>> internalFuture = this.executeTableOperation( TABLES_URL + mTableName + "/" + id.toString(), content, "PATCH", requestHeaders, parameters, features); Futures.addCallback(internalFuture, new FutureCallback<Pair<JsonObject, ServiceFilterResponse>>() { @Override public void onFailure(Throwable exc) { future.setException(exc); } @Override public void onSuccess(Pair<JsonObject, ServiceFilterResponse> result) { JsonObject patchedJson = patchOriginalEntityWithResponseEntity(element, result.first); updateVersionFromETag(result.second, patchedJson); future.set(patchedJson); } }); return future; }
From source file:org.apache.qpid.server.virtualhostnode.RedirectingVirtualHostNodeImpl.java
@StateTransition(currentState = { State.UNINITIALIZED, State.STOPPED, State.ERRORED }, desiredState = State.ACTIVE) private ListenableFuture<Void> doActivate() { final SettableFuture<Void> resultFuture = SettableFuture.create(); Map<String, Object> attributes = new HashMap<>(); attributes.put(ConfiguredObject.NAME, getName()); attributes.put(ConfiguredObject.TYPE, RedirectingVirtualHostImpl.VIRTUAL_HOST_TYPE); final ListenableFuture<VirtualHost> virtualHostFuture = getObjectFactory().createAsync(VirtualHost.class, attributes, this); addFutureCallback(virtualHostFuture, new FutureCallback<VirtualHost>() { @Override//from w w w .ja v a 2 s .com public void onSuccess(final VirtualHost virtualHost) { _virtualHost = (RedirectingVirtualHostImpl) virtualHost; setState(State.ACTIVE); resultFuture.set(null); } @Override public void onFailure(final Throwable t) { setState(State.ERRORED); if (((Broker) getParent()).isManagementMode()) { LOGGER.warn("Failed to make {} active.", this, t); resultFuture.set(null); } else { resultFuture.setException(t); } } }, getTaskExecutor()); return resultFuture; }
From source file:io.crate.action.sql.DDLAnalysisDispatcher.java
@Override public ListenableFuture<Long> visitAlterTableAnalysis(final AlterTableAnalysis analysis, Void context) { final SettableFuture<Long> result = SettableFuture.create(); final String[] indices; boolean updateTemplate = false; if (analysis.table().isPartitioned()) { if (analysis.partitionName().isPresent()) { indices = new String[] { analysis.partitionName().get().stringValue() }; } else {/*from w w w.jav a2s . c o m*/ updateTemplate = true; // only update template when updating whole partitioned table indices = analysis.table().concreteIndices(); } } else { indices = new String[] { analysis.table().ident().name() }; } if (analysis.table().isAlias()) { throw new AlterTableAliasException(analysis.table().ident().name()); } final List<ListenableFuture<?>> results = new ArrayList<>(indices.length + (updateTemplate ? 1 : 0)); if (updateTemplate) { final SettableFuture<?> templateFuture = SettableFuture.create(); results.add(templateFuture); // update template final String templateName = PartitionName.templateName(analysis.table().ident().name()); GetIndexTemplatesRequest getRequest = new GetIndexTemplatesRequest(templateName); transportGetIndexTemplatesAction.execute(getRequest, new ActionListener<GetIndexTemplatesResponse>() { @Override public void onResponse(GetIndexTemplatesResponse response) { String mapping; try { mapping = response.getIndexTemplates().get(0).getMappings() .get(Constants.DEFAULT_MAPPING_TYPE).string(); } catch (IOException e) { templateFuture.setException(e); return; } ImmutableSettings.Builder settingsBuilder = ImmutableSettings.builder(); settingsBuilder.put(response.getIndexTemplates().get(0).settings()); settingsBuilder.put(analysis.settings()); PutIndexTemplateRequest request = new PutIndexTemplateRequest(templateName).create(false) .mapping(Constants.DEFAULT_MAPPING_TYPE, mapping).settings(settingsBuilder.build()) .template(response.getIndexTemplates().get(0).template()); for (ObjectObjectCursor<String, AliasMetaData> container : response.getIndexTemplates().get(0) .aliases()) { Alias alias = new Alias(container.key); request.alias(alias); } transportPutIndexTemplateAction.execute(request, new ActionListener<PutIndexTemplateResponse>() { @Override public void onResponse(PutIndexTemplateResponse putIndexTemplateResponse) { templateFuture.set(null); } @Override public void onFailure(Throwable e) { templateFuture.setException(e); } }); } @Override public void onFailure(Throwable e) { templateFuture.setException(e); } }); } // update every concrete index for (String index : indices) { UpdateSettingsRequest request = new UpdateSettingsRequest(analysis.settings(), index); final SettableFuture<?> future = SettableFuture.create(); results.add(future); transportUpdateSettingsAction.execute(request, new ActionListener<UpdateSettingsResponse>() { @Override public void onResponse(UpdateSettingsResponse updateSettingsResponse) { future.set(null); } @Override public void onFailure(Throwable e) { future.setException(e); } }); } Futures.addCallback(Futures.allAsList(results), new FutureCallback<List<?>>() { @Override public void onSuccess(@Nullable List<?> resultList) { result.set(null); } @Override public void onFailure(@Nonnull Throwable t) { result.setException(t); } }); return result; }
From source file:co.cask.cdap.data.stream.AbstractStreamCoordinator.java
@Override public ListenableFuture<Integer> nextGeneration(final StreamConfig streamConfig, final int lowerBound) { return Futures.transform( propertyStore.get().update(streamConfig.getName(), new PropertyUpdater<StreamProperty>() { @Override/*from ww w .j av a 2s. c o m*/ public ListenableFuture<StreamProperty> apply(@Nullable final StreamProperty property) { final SettableFuture<StreamProperty> resultFuture = SettableFuture.create(); updateExecutor.execute(new Runnable() { @Override public void run() { try { long currentTTL = (property == null) ? streamConfig.getTTL() : property.getTTL(); int newGeneration = ((property == null) ? lowerBound : property.getGeneration()) + 1; // Create the generation directory Locations.mkdirsIfNotExists(StreamUtils .createGenerationLocation(streamConfig.getLocation(), newGeneration)); resultFuture.set(new StreamProperty(newGeneration, currentTTL)); } catch (IOException e) { resultFuture.setException(e); } } }); return resultFuture; } }), new Function<StreamProperty, Integer>() { @Override public Integer apply(StreamProperty property) { return property.getGeneration(); } }); }