List of usage examples for com.google.common.util.concurrent Futures immediateFailedFuture
@CheckReturnValue public static <V> ListenableFuture<V> immediateFailedFuture(Throwable throwable)
From source file:org.thingsboard.server.service.script.AbstractJsInvokeService.java
@Override public ListenableFuture<Object> invokeFunction(UUID scriptId, Object... args) { String functionName = scriptIdToNameMap.get(scriptId); if (functionName == null) { return Futures.immediateFailedFuture( new RuntimeException("No compiled script found for scriptId: [" + scriptId + "]!")); }//w w w.jav a 2 s .com if (!isBlackListed(scriptId)) { return doInvokeFunction(scriptId, functionName, args); } else { return Futures.immediateFailedFuture(new RuntimeException( "Script is blacklisted due to maximum error count " + getMaxErrors() + "!")); } }
From source file:com.google.wave.splash.rpc.WaveServiceAdapter.java
@Override public ListenableFuture<Wavelet> fetchWavelet(WaveId waveId, WaveletId waveletId) { try {/*from www . j a v a2 s. c om*/ return Futures.immediateFuture(waveService.fetchWavelet(waveId, waveletId, rpcEndpoint)); } catch (IOException e) { return Futures.immediateFailedFuture(e); } }
From source file:com.sk89q.worldguard.protection.databases.AbstractProtectionDatabase.java
@Override public ListenableFuture<?> save(RegionManager manager, boolean async) { setRegions(manager.getRegions());//from w w w .j a va 2 s . com try { save(); } catch (ProtectionDatabaseException e) { return Futures.immediateFailedFuture(e); } return Futures.immediateCheckedFuture(this); }
From source file:org.thingsboard.rule.engine.util.EntitiesFieldsAsyncLoader.java
public static ListenableFuture<EntityFieldsData> findAsync(TbContext ctx, EntityId original) { switch (original.getEntityType()) { case TENANT:/*from w w w .j av a 2 s . c om*/ return getAsync(ctx.getTenantService().findTenantByIdAsync(ctx.getTenantId(), (TenantId) original), EntityFieldsData::new); case CUSTOMER: return getAsync( ctx.getCustomerService().findCustomerByIdAsync(ctx.getTenantId(), (CustomerId) original), EntityFieldsData::new); case USER: return getAsync(ctx.getUserService().findUserByIdAsync(ctx.getTenantId(), (UserId) original), EntityFieldsData::new); case ASSET: return getAsync(ctx.getAssetService().findAssetByIdAsync(ctx.getTenantId(), (AssetId) original), EntityFieldsData::new); case DEVICE: return getAsync(ctx.getDeviceService().findDeviceByIdAsync(ctx.getTenantId(), (DeviceId) original), EntityFieldsData::new); case ALARM: return getAsync(ctx.getAlarmService().findAlarmByIdAsync(ctx.getTenantId(), (AlarmId) original), EntityFieldsData::new); case RULE_CHAIN: return getAsync( ctx.getRuleChainService().findRuleChainByIdAsync(ctx.getTenantId(), (RuleChainId) original), EntityFieldsData::new); default: return Futures.immediateFailedFuture(new TbNodeException("Unexpected original EntityType " + original)); } }
From source file:zipkin.storage.elasticsearch.ElasticsearchSpanConsumer.java
@Override public ListenableFuture<Void> accept(List<Span> spans) { if (spans.isEmpty()) return VOID; try {//from w w w.j a v a2s .c o m return indexSpans(client.bulkSpanIndexer(), spans).execute(); } catch (Exception e) { return Futures.immediateFailedFuture(e); } }
From source file:zipkin.collector.scribe.ScribeSpanConsumer.java
@Override public ListenableFuture<ResultCode> log(List<LogEntry> messages) { metrics.incrementMessages();//from w w w .j a v a2 s.c o m List<byte[]> thrifts; try { thrifts = messages.stream().filter(m -> m.category.equals(category)) .map(m -> m.message.getBytes(StandardCharsets.ISO_8859_1)) .map(b -> Base64.getMimeDecoder().decode(b)) // finagle-zipkin uses mime encoding .collect(Collectors.toList()); } catch (RuntimeException e) { metrics.incrementMessagesDropped(); return Futures.immediateFailedFuture(e); } SettableFuture<ResultCode> result = SettableFuture.create(); collector.acceptSpans(thrifts, Codec.THRIFT, new Callback<Void>() { @Override public void onSuccess(@Nullable Void value) { result.set(ResultCode.OK); } @Override public void onError(Throwable t) { result.setException(t); } }); return result; }
From source file:org.thingsboard.server.dao.nosql.RateLimitedResultSetFuture.java
public RateLimitedResultSetFuture(Session session, AsyncRateLimiter rateLimiter, Statement statement) { this.rateLimitFuture = Futures.catchingAsync(rateLimiter.acquireAsync(), Throwable.class, t -> { if (!(t instanceof BufferLimitException)) { rateLimiter.release();//from w w w. j av a 2s .c o m } return Futures.immediateFailedFuture(t); }); this.originalFuture = Futures.transform(rateLimitFuture, i -> executeAsyncWithRelease(rateLimiter, session, statement)); }
From source file:com.orangerhymelabs.helenus.cassandra.database.DatabaseService.java
public ListenableFuture<Database> create(Database database) { try {/*from w ww. j av a 2 s .c o m*/ ValidationEngine.validateAndThrow(database); return databases.create(database); } catch (ValidationException e) { return Futures.immediateFailedFuture(e); } }
From source file:com.spotify.folsom.FakeRawMemcacheClient.java
@Override public <T> ListenableFuture<T> send(Request<T> request) { if (!connected) { return Futures.immediateFailedFuture(new MemcacheClosedException("Disconnected")); }/* w w w . ja v a2 s.c o m*/ if (request instanceof SetRequest) { map.put(ByteBuffer.wrap(request.getKey()), ((SetRequest) request).getValue()); return (ListenableFuture<T>) Futures.<MemcacheStatus>immediateFuture(MemcacheStatus.OK); } if (request instanceof GetRequest) { byte[] value = map.get(ByteBuffer.wrap(request.getKey())); if (value == null) { return (ListenableFuture<T>) Futures.immediateFuture(null); } return (ListenableFuture<T>) Futures.immediateFuture(GetResult.success(value, 0L)); } if (request instanceof MultiRequest) { List<GetResult<byte[]>> result = Lists.newArrayList(); MultiRequest<?> multiRequest = (MultiRequest<?>) request; for (byte[] key : multiRequest.getKeys()) { byte[] value = map.get(ByteBuffer.wrap(key)); if (value != null) { result.add(GetResult.success(value, 0)); } else { result.add(null); } } return (ListenableFuture<T>) Futures.<List<GetResult<byte[]>>>immediateFuture(result); } // Don't actually do anything here if (request instanceof TouchRequest) { return (ListenableFuture<T>) Futures.<MemcacheStatus>immediateFuture(MemcacheStatus.OK); } if (request instanceof IncrRequest) { IncrRequest incrRequest = (IncrRequest) request; byte[] key = request.getKey(); byte[] value = map.get(ByteBuffer.wrap(key)); if (value == null) { return (ListenableFuture<T>) Futures.<Long>immediateFuture(null); } long longValue = Long.parseLong(new String(value)); long newValue = longValue + incrRequest.multiplier() * incrRequest.getBy(); map.put(ByteBuffer.wrap(key), Long.toString(newValue).getBytes()); return (ListenableFuture<T>) Futures.<Long>immediateFuture(newValue); } if (request instanceof DeleteRequest) { map.remove(ByteBuffer.wrap(request.getKey())); return (ListenableFuture<T>) Futures.<MemcacheStatus>immediateFuture(MemcacheStatus.OK); } throw new RuntimeException("Unsupported operation: " + request.getClass()); }
From source file:co.cask.cdap.internal.pipeline.SynchronousPipeline.java
/** * Executes a pipeline in synchronous mode. * <p>//from w ww. j av a2 s. com * Waits for the results of previous to be available to move to next * stage of processing. * </p> * * @param o argument to run the pipeline. */ @SuppressWarnings("unchecked") @Override public ListenableFuture<T> execute(Object o) { Context ctx = new StageContext(o); try { for (Stage stage : getStages()) { stage.process(ctx); // Output of previous stage is input to next stage ctx = new StageContext(ctx.getDownStream()); } return Futures.immediateFuture((T) ctx.getUpStream()); } catch (Throwable th) { return Futures.immediateFailedFuture(th); } finally { Stage finalStage = getFinalStage(); if (finalStage != null) { try { finalStage.process(ctx); } catch (Throwable t) { LOG.warn("Exception thrown when executing final stage {}", finalStage, t); } } } }