@Override public final void channelInactive(final ChannelHandlerContext ctx) { LOG.debug("Channel {} inactive.", ctx.channel()); endOfInput(); try { // Forward channel inactive event, all handlers in pipeline might be interested in the event e.g. close channel handler of reconnect promise super.channelInactive(ctx); } catch (final Exception e) { throw new RuntimeException("Failed to delegate channel inactive event on channel " + ctx.channel(), e); } }