@Override
    public void handlerAdded(ChannelHandlerContext ctx) throws Exception {
        if (ctx.channel().isRegistered()) {
            // This should always be true with our current DefaultChannelPipeline implementation.
            // The good thing about calling initChannel(...) in handlerAdded(...) is that there will be no ordering
            // surprises if a ChannelInitializer will add another ChannelInitializer. This is as all handlers
            // will be added in the expected order.
            if (initChannel(ctx)) {

                // We are done with init the Channel, removing the initializer now.
                removeState(ctx);
            }
        }
    }
@ Override public void handlerAdded ( ChannelHandlerContext ctx ) throws Exception { if ( ctx . channel ( ) . isRegistered ( ) ) { if ( initChannel ( ctx ) ) { removeState ( ctx ) ; } } }
{@inheritDoc} If override this method ensure you call super!