List of usage examples for com.google.common.util.concurrent Futures catchingAsync
@GwtIncompatible("AVAILABLE but requires exceptionType to be Throwable.class") public static <V, X extends Throwable> ListenableFuture<V> catchingAsync(ListenableFuture<? extends V> input, Class<X> exceptionType, AsyncFunction<? super X, ? extends V> fallback)
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 ava2 s. c o m*/ } return Futures.immediateFailedFuture(t); }); this.originalFuture = Futures.transform(rateLimitFuture, i -> executeAsyncWithRelease(rateLimiter, session, statement)); }
From source file:com.spotify.folsom.retry.RetryingClient.java
@Override public <T> ListenableFuture<T> send(final Request<T> request) { final ListenableFuture<T> future = delegate.send(request); return Futures.catchingAsync(future, MemcacheClosedException.class, new AsyncFunction<MemcacheClosedException, T>() { @Override/* w w w . j a va 2 s . com*/ public ListenableFuture<T> apply(final MemcacheClosedException e) { if (delegate.isConnected()) { return delegate.send(request); } else { return Futures.immediateFailedFuture(e); } } }); }
From source file:io.vitess.client.grpc.GrpcClient.java
@Override public ListenableFuture<ExecuteResponse> execute(Context ctx, ExecuteRequest request) throws SQLException { return Futures.catchingAsync(getFutureStub(ctx).execute(request), Exception.class, new ExceptionConverter<ExecuteResponse>()); }
From source file:io.vitess.client.grpc.GrpcClient.java
@Override public ListenableFuture<ExecuteShardsResponse> executeShards(Context ctx, ExecuteShardsRequest request) throws SQLException { return Futures.catchingAsync(getFutureStub(ctx).executeShards(request), Exception.class, new ExceptionConverter<ExecuteShardsResponse>()); }
From source file:io.vitess.client.grpc.GrpcClient.java
@Override public ListenableFuture<ExecuteKeyspaceIdsResponse> executeKeyspaceIds(Context ctx, ExecuteKeyspaceIdsRequest request) throws SQLException { return Futures.catchingAsync(getFutureStub(ctx).executeKeyspaceIds(request), Exception.class, new ExceptionConverter<ExecuteKeyspaceIdsResponse>()); }
From source file:io.vitess.client.grpc.GrpcClient.java
@Override public ListenableFuture<ExecuteKeyRangesResponse> executeKeyRanges(Context ctx, ExecuteKeyRangesRequest request) throws SQLException { return Futures.catchingAsync(getFutureStub(ctx).executeKeyRanges(request), Exception.class, new ExceptionConverter<ExecuteKeyRangesResponse>()); }
From source file:io.vitess.client.grpc.GrpcClient.java
@Override public ListenableFuture<ExecuteEntityIdsResponse> executeEntityIds(Context ctx, ExecuteEntityIdsRequest request) throws SQLException { return Futures.catchingAsync(getFutureStub(ctx).executeEntityIds(request), Exception.class, new ExceptionConverter<ExecuteEntityIdsResponse>()); }
From source file:io.vitess.client.grpc.GrpcClient.java
@Override public ListenableFuture<Vtgate.ExecuteBatchResponse> executeBatch(Context ctx, Vtgate.ExecuteBatchRequest request) throws SQLException { return Futures.catchingAsync(getFutureStub(ctx).executeBatch(request), Exception.class, new ExceptionConverter<Vtgate.ExecuteBatchResponse>()); }
From source file:io.vitess.client.grpc.GrpcClient.java
@Override public ListenableFuture<ExecuteBatchShardsResponse> executeBatchShards(Context ctx, ExecuteBatchShardsRequest request) throws SQLException { return Futures.catchingAsync(getFutureStub(ctx).executeBatchShards(request), Exception.class, new ExceptionConverter<ExecuteBatchShardsResponse>()); }
From source file:io.vitess.client.grpc.GrpcClient.java
@Override public ListenableFuture<ExecuteBatchKeyspaceIdsResponse> executeBatchKeyspaceIds(Context ctx, ExecuteBatchKeyspaceIdsRequest request) throws SQLException { return Futures.catchingAsync(getFutureStub(ctx).executeBatchKeyspaceIds(request), Exception.class, new ExceptionConverter<ExecuteBatchKeyspaceIdsResponse>()); }