List of usage examples for io.netty.util.concurrent Future cause
Throwable cause();
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(); }