Example usage for io.netty.util.concurrent Future cause

List of usage examples for io.netty.util.concurrent Future cause

Introduction

In this page you can find the example usage for io.netty.util.concurrent Future cause.

Prototype

Throwable cause();

Source Link

Document

Returns the cause of the failed I/O operation if the I/O operation has failed.

Usage

From source file:io.codis.nedis.TestNedis.java

License:Apache License

private void testTxn(NedisClient txnClient, NedisClient chkClient) throws InterruptedException {
    Future<Void> multiFuture = txnClient.multi();
    Future<Boolean> setFuture1 = txnClient.set(toBytes("k1"), toBytes("v1"));
    Future<Boolean> setFuture2 = txnClient.set(toBytes("k2"), toBytes("v2"));
    Thread.sleep(1000);//  w  w  w .ja  v  a  2s . c  o  m
    assertFalse(setFuture1.isDone());
    assertFalse(setFuture2.isDone());
    assertFalse(chkClient.exists(toBytes("k1")).sync().getNow().booleanValue());
    assertFalse(chkClient.exists(toBytes("k2")).sync().getNow().booleanValue());
    List<Object> execResult = txnClient.exec().sync().getNow();
    assertTrue(multiFuture.isDone());
    assertTrue(setFuture1.getNow().booleanValue());
    assertTrue(setFuture2.getNow().booleanValue());
    assertEquals(2, execResult.size());
    assertEquals("OK", execResult.get(0).toString());
    assertEquals("OK", execResult.get(1).toString());

    multiFuture = txnClient.multi();
    setFuture1 = txnClient.set(toBytes("k1"), toBytes("v3"));
    setFuture2 = txnClient.set(toBytes("k2"), toBytes("v4"));
    Thread.sleep(1000);
    assertFalse(setFuture1.isDone());
    assertFalse(setFuture2.isDone());
    assertEquals("v1", bytesToString(chkClient.get(toBytes("k1")).sync().getNow()));
    assertEquals("v2", bytesToString(chkClient.get(toBytes("k2")).sync().getNow()));
    txnClient.discard().sync();
    assertTrue(multiFuture.isDone());
    assertTrue(setFuture1.isDone());
    assertTrue(setFuture2.isDone());
    assertThat(setFuture1.cause(), is(instanceOf(TxnDiscardException.class)));
    assertThat(setFuture2.cause(), is(instanceOf(TxnDiscardException.class)));
    assertEquals("v1", bytesToString(chkClient.get(toBytes("k1")).sync().getNow()));
    assertEquals("v2", bytesToString(chkClient.get(toBytes("k2")).sync().getNow()));

    Future<Void> watchFuture = txnClient.watch(toBytes("k1"));
    multiFuture = txnClient.multi();
    setFuture1 = txnClient.set(toBytes("k1"), toBytes("v3"));
    execResult = txnClient.exec().sync().getNow();
    assertTrue(watchFuture.isDone());
    assertTrue(multiFuture.isDone());
    assertTrue(setFuture1.getNow().booleanValue());
    assertEquals(1, execResult.size());
    assertEquals("OK", execResult.get(0).toString());
    assertEquals("v3", bytesToString(chkClient.get(toBytes("k1")).sync().getNow()));

    txnClient.watch(toBytes("k1")).sync();
    multiFuture = txnClient.multi();
    setFuture1 = txnClient.set(toBytes("k1"), toBytes("v4"));
    assertTrue(chkClient.set(toBytes("k1"), toBytes("v1")).sync().getNow().booleanValue());
    execResult = txnClient.exec().sync().getNow();
    assertTrue(watchFuture.isDone());
    assertTrue(multiFuture.isDone());
    assertTrue(setFuture1.isDone());
    assertThat(setFuture1.cause(), is(instanceOf(TxnAbortException.class)));
    assertNull(execResult);
    assertEquals("v1", bytesToString(chkClient.get(toBytes("k1")).sync().getNow()));
}

From source file:io.flood.rpc.FloodServer.java

License:Apache License

@Override
public void onBindCompleted(Future<? super Void> completefuture) {
    if (completefuture.isSuccess()) {
        bindCompleted = true;/*from   w  w w .  ja  v  a2 s  .  c  o  m*/
        Map<String, Service> serviceMap = dispatcher.getServices();
        for (Map.Entry<String, Service> entry : serviceMap.entrySet()) {
            try {
                registServiceToRemote(entry.getValue());
            } catch (Exception e) {
                LOG.warn(format(getId(), "buid service instance faild({})",
                        entry.getValue().getDescriptorForType().getFullName()));
            }
        }

        Map<String, BlockingService> blockingServiceMap = dispatcher.getBlockingServices();
        for (Map.Entry<String, BlockingService> entry : blockingServiceMap.entrySet()) {
            try {
                registServiceToRemote(entry.getValue());
            } catch (Exception e) {
                LOG.warn(format(getId(), "buid service instance faild({})",
                        entry.getValue().getDescriptorForType().getFullName()));
            }
        }

    } else {
        LOG.error(format(getId(), "start rpc server faild({})", completefuture.cause().getMessage()));
    }
}

From source file:io.gatling.http.client.impl.DefaultHttpClient.java

License:Apache License

private Future<List<InetSocketAddress>> resolveRemoteAddresses(Request request, EventLoop eventLoop,
        HttpListener listener, RequestTimeout requestTimeout) {
    if (!request.getUri().isSecured() && request.getProxyServer() instanceof HttpProxyServer) {
        // directly connect to proxy over clear HTTP
        InetSocketAddress remoteAddress = ((HttpProxyServer) request.getProxyServer()).getAddress();
        return ImmediateEventExecutor.INSTANCE.newSucceededFuture(singletonList(remoteAddress));
    } else {/* www.  j a  va 2s  .c  o m*/
        Promise<List<InetSocketAddress>> p = eventLoop.newPromise();

        request.getNameResolver().resolveAll(request.getUri().getHost(), eventLoop.newPromise())
                .addListener((Future<List<InetAddress>> whenAddresses) -> {
                    if (whenAddresses.isSuccess()) {
                        List<InetSocketAddress> remoteInetSocketAddresses = whenAddresses.getNow().stream().map(
                                address -> new InetSocketAddress(address, request.getUri().getExplicitPort()))
                                .collect(Collectors.toList());

                        p.setSuccess(remoteInetSocketAddresses);
                    } else {
                        if (!requestTimeout.isDone()) {
                            // only report if we haven't timed out
                            listener.onThrowable(whenAddresses.cause());
                        }
                        p.setFailure(whenAddresses.cause());
                    }
                });
        return p;
    }
}

From source file:io.grpc.netty.NettyClientTransport.java

License:Apache License

@Override
public ListenableFuture<SocketStats> getStats() {
    final SettableFuture<SocketStats> result = SettableFuture.create();
    if (channel.eventLoop().inEventLoop()) {
        // This is necessary, otherwise we will block forever if we get the future from inside
        // the event loop.
        result.set(getStatsHelper(channel));
        return result;
    }//from  w w  w.j a va  2 s  .c  o  m
    channel.eventLoop().submit(new Runnable() {
        @Override
        public void run() {
            result.set(getStatsHelper(channel));
        }
    }).addListener(new GenericFutureListener<Future<Object>>() {
        @Override
        public void operationComplete(Future<Object> future) throws Exception {
            if (!future.isSuccess()) {
                result.setException(future.cause());
            }
        }
    });
    return result;
}

From source file:io.jsync.net.impl.DefaultNetSocket.java

License:Open Source License

@Override
public NetSocket ssl(final Handler<Void> handler) {
    SslHandler sslHandler = channel.pipeline().get(SslHandler.class);
    if (sslHandler == null) {
        sslHandler = helper.createSslHandler(async, client);
        channel.pipeline().addFirst(sslHandler);
    }//from w ww  .  j  a v a 2  s  .  co  m
    sslHandler.handshakeFuture().addListener(new GenericFutureListener<Future<Channel>>() {
        @Override
        public void operationComplete(final Future<Channel> future) throws Exception {
            if (context.isOnCorrectWorker(channel.eventLoop())) {
                if (future.isSuccess()) {
                    try {
                        async.setContext(context);
                        handler.handle(null);
                    } catch (Throwable t) {
                        context.reportException(t);
                    }
                } else {
                    context.reportException(future.cause());
                }

            } else {
                context.execute(new Runnable() {
                    public void run() {
                        if (future.isSuccess()) {
                            handler.handle(null);
                        } else {
                            context.reportException(future.cause());
                        }
                    }
                });
            }
        }
    });
    return this;
}

From source file:io.lettuce.core.AbstractRedisClient.java

License:Apache License

private static CompletableFuture<Void> toCompletableFuture(Future<?> future) {

    CompletableFuture<Void> promise = new CompletableFuture<>();

    if (future.isDone() || future.isCancelled()) {
        if (future.isSuccess()) {
            promise.complete(null);//  w w  w .  ja va2 s . c om
        } else {
            promise.completeExceptionally(future.cause());
        }
        return promise;
    }

    future.addListener(f -> {
        if (f.isSuccess()) {
            promise.complete(null);
        } else {
            promise.completeExceptionally(f.cause());
        }
    });

    return promise;
}

From source file:io.lettuce.core.resource.Futures.java

License:Apache License

/**
 * Create a promise that emits a {@code Boolean} value on completion of the {@code future}
 *
 * @param future the future.//  ww w.  j a  va  2  s  . c  o  m
 * @return Promise emitting a {@code Boolean} value. {@literal true} if the {@code future} completed successfully, otherwise
 *         the cause wil be transported.
 */
static Promise<Boolean> toBooleanPromise(Future<?> future) {

    DefaultPromise<Boolean> result = new DefaultPromise<>(GlobalEventExecutor.INSTANCE);

    if (future.isDone() || future.isCancelled()) {
        if (future.isSuccess()) {
            result.setSuccess(true);
        } else {
            result.setFailure(future.cause());
        }
        return result;
    }

    future.addListener((GenericFutureListener<Future<Object>>) f -> {

        if (f.isSuccess()) {
            result.setSuccess(true);
        } else {
            result.setFailure(f.cause());
        }
    });
    return result;
}

From source file:io.pravega.client.netty.impl.ClientConnectionInboundHandler.java

License:Open Source License

@Override
public void sendAsync(List<Append> appends, CompletedCallback callback) {
    recentMessage.set(true);/*from   www.j  av  a 2 s  .co  m*/
    Channel channel = getChannel();
    ChannelPromise promise = channel.newPromise();
    for (Append append : appends) {
        batchSizeTracker.recordAppend(append.getEventNumber(), append.getData().readableBytes());
        channel.write(append, promise);
    }
    channel.flush();
    promise.addListener(new GenericFutureListener<Future<? super Void>>() {
        @Override
        public void operationComplete(Future<? super Void> future) throws Exception {
            callback.complete(new ConnectionFailedException(future.cause()));
        }
    });
}

From source file:io.termd.core.http.netty.NettyWebsocketTtyBootstrap.java

License:Apache License

public void stop(Consumer<Throwable> doneHandler) {
    if (channel != null) {
        channel.close();//  w  w  w  .jav  a 2 s .  c o  m
    }
    channelGroup.close().addListener((Future<Void> f) -> doneHandler.accept(f.cause()));
}

From source file:io.termd.core.telnet.netty.NettyTelnetBootstrap.java

License:Apache License

@Override
public void stop(Consumer<Throwable> doneHandler) {
    GenericFutureListener<Future<Object>> adapter = (Future<Object> future) -> {
        doneHandler.accept(future.cause());
    };/*from w w  w . j  av a 2s  .  c om*/
    channelGroup.close().addListener(adapter);
    group.shutdownGracefully();
}