@Override
 public ChannelFuture write(Object msg, ChannelPromise promise) {
   AbstractChannelHandlerContext next = findContextOutbound();
   ReferenceCountUtil.touch(msg, next);
   next.invoker().invokeWrite(next, msg, promise);
   return promise;
 }
 @Override
 public ChannelHandlerContext fireChannelRead(Object msg) {
   AbstractChannelHandlerContext next = findContextInbound();
   ReferenceCountUtil.touch(msg, next);
   invokedNextChannelRead = true;
   next.invoker().invokeChannelRead(next, msg);
   return this;
 }