@Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { Netty4Utils.maybeDie(cause); super.exceptionCaught(ctx, cause); } }
@Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { Netty4Utils.maybeDie(cause); transport.exceptionCaught(ctx, cause); }
NettyTcpChannel(Channel channel) { this.channel = channel; this.channel.closeFuture().addListener(f -> { if (f.isSuccess()) { closeContext.complete(null); } else { Throwable cause = f.cause(); if (cause instanceof Error) { Netty4Utils.maybeDie(cause); closeContext.completeExceptionally(cause); } else { closeContext.completeExceptionally(cause); } } }); }
@Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { Netty4Utils.maybeDie(cause); super.exceptionCaught(ctx, cause); } }
@Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { Netty4Utils.maybeDie(cause); super.exceptionCaught(ctx, cause); }
@Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { Netty4Utils.maybeDie(cause); serverTransport.exceptionCaught(ctx, cause); }
@Override protected NettyTcpChannel initiateChannel(DiscoveryNode node, TimeValue connectTimeout, ActionListener<Void> listener) throws IOException { ChannelFuture channelFuture = bootstrap.connect(node.getAddress().address()); Channel channel = channelFuture.channel(); if (channel == null) { Netty4Utils.maybeDie(channelFuture.cause()); throw new IOException(channelFuture.cause()); } addClosedExceptionLogger(channel); NettyTcpChannel nettyChannel = new NettyTcpChannel(channel); channel.attr(CHANNEL_KEY).set(nettyChannel); channelFuture.addListener(f -> { if (f.isSuccess()) { listener.onResponse(null); } else { Throwable cause = f.cause(); if (cause instanceof Error) { Netty4Utils.maybeDie(cause); listener.onFailure(new Exception(cause)); } else { listener.onFailure((Exception) cause); } } }); return nettyChannel; }
@Override public void sendMessage(BytesReference reference, ActionListener<Void> listener) { ChannelPromise writePromise = channel.newPromise(); writePromise.addListener(f -> { if (f.isSuccess()) { listener.onResponse(null); } else { final Throwable cause = f.cause(); Netty4Utils.maybeDie(cause); assert cause instanceof Exception; listener.onFailure((Exception) cause); } }); channel.writeAndFlush(Netty4Utils.toByteBuf(reference), writePromise); if (channel.eventLoop().isShutdown()) { listener.onFailure(new TransportException("Cannot send message, event loop is shutting down.")); } }