@Override protected void encode(ChannelHandlerContext ctx, Object msg, List<Object> out) throws Exception { com.alibaba.dubbo.remoting.buffer.ChannelBuffer buffer = com.alibaba.dubbo.remoting.buffer.ChannelBuffers.dynamicBuffer(1024); NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler); try { codec.encode(channel, buffer, msg); } finally { NettyChannel.removeChannelIfDisconnected(ctx.channel()); } out.add(Unpooled.wrappedBuffer(buffer.toByteBuffer())); }