Example usage for com.google.common.util.concurrent Futures catchingAsync

List of usage examples for com.google.common.util.concurrent Futures catchingAsync

Introduction

In this page you can find the example usage for com.google.common.util.concurrent Futures catchingAsync.

Prototype

@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) 

Source Link

Document

Returns a Future whose result is taken from the given primary input or, if the primary input fails with the given exceptionType , from the result provided by the fallback .

Usage

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>());
}