Program: 51708
Project: 51708
Buggy source:
public static void register(NetworkManager manager){
  ChannelPipeline pipeline=manager.channel().pipeline();
  final EnumPacketDirection direction=manager.getDirection();
  if (manager.isLocalChannel()) {
    pipeline.addBefore("String_Node_Str","String_Node_Str",new SimpleChannelInboundHandler<Packet>(){
      @Override protected void channelRead0(      ChannelHandlerContext ctx,      Packet msg) throws Exception {
        PacketBuffer buf=new PacketBuffer(Unpooled.buffer());
        msg.writePacketData(buf);
        FMLLog.log(Level.DEBUG,"String_Node_Str",msg.getClass().getSimpleName(),ByteBufUtils.getContentDump(buf));
        ctx.fireChannelRead(msg);
      }
    }
);
    pipeline.addBefore("String_Node_Str","String_Node_Str",new ChannelOutboundHandlerAdapter(){
      @Override public void write(      ChannelHandlerContext ctx,      Object msg,      ChannelPromise promise) throws Exception {
        if (msg instanceof Packet) {
          PacketBuffer buf=new PacketBuffer(Unpooled.buffer());
          ((Packet)msg).writePacketData(buf);
          FMLLog.log(Level.DEBUG,"String_Node_Str",msg.getClass().getSimpleName(),ByteBufUtils.getContentDump(buf));
        }
        ctx.write(msg,promise);
      }
    }
);
  }
 else {
    pipeline.replace("String_Node_Str","String_Node_Str",new MessageDeserializer2(){
      String prefix=(direction == EnumPacketDirection.SERVERBOUND ? "String_Node_Str" : "String_Node_Str");
      @Override protected void decode(      ChannelHandlerContext context,      ByteBuf input,      List output){
        super.decode(context,input,output);
        for (        ByteBuf pkt : (List<ByteBuf>)output) {
          pkt.markReaderIndex();
          FMLLog.log(Level.DEBUG,"String_Node_Str",prefix,ByteBufUtils.getContentDump(pkt));
          pkt.resetReaderIndex();
        }
      }
    }
);
    pipeline.replace("String_Node_Str","String_Node_Str",new MessageSerializer2(){
      String prefix=(direction == EnumPacketDirection.SERVERBOUND ? "String_Node_Str" : "String_Node_Str");
      @Override protected void encode(      ChannelHandlerContext context,      ByteBuf input,      ByteBuf output){
        input.markReaderIndex();
        FMLLog.log(Level.DEBUG,"String_Node_Str",prefix,ByteBufUtils.getContentDump(input));
        input.resetReaderIndex();
        super.encode(context,input,output);
      }
    }
);
  }
}

Fixed version (ground truth):
public static void register(NetworkManager manager){
  ChannelPipeline pipeline=manager.channel().pipeline();
  final EnumPacketDirection direction=manager.getDirection();
  if (manager.isLocalChannel()) {
    pipeline.addBefore("String_Node_Str","String_Node_Str",new SimpleChannelInboundHandler<Packet>(){
      String prefix=(direction == EnumPacketDirection.SERVERBOUND ? "String_Node_Str" : "String_Node_Str");
      @Override protected void channelRead0(      ChannelHandlerContext ctx,      Packet msg) throws Exception {
        PacketBuffer buf=new PacketBuffer(Unpooled.buffer());
        msg.writePacketData(buf);
        FMLLog.log(Level.DEBUG,"String_Node_Str",prefix,msg.getClass().getSimpleName(),ByteBufUtils.getContentDump(buf));
        ctx.fireChannelRead(msg);
      }
    }
);
    pipeline.addBefore("String_Node_Str","String_Node_Str",new ChannelOutboundHandlerAdapter(){
      String prefix=(direction == EnumPacketDirection.SERVERBOUND ? "String_Node_Str" : "String_Node_Str");
      @Override public void write(      ChannelHandlerContext ctx,      Object msg,      ChannelPromise promise) throws Exception {
        if (msg instanceof Packet) {
          PacketBuffer buf=new PacketBuffer(Unpooled.buffer());
          ((Packet)msg).writePacketData(buf);
          FMLLog.log(Level.DEBUG,"String_Node_Str",prefix,msg.getClass().getSimpleName(),ByteBufUtils.getContentDump(buf));
        }
        ctx.write(msg,promise);
      }
    }
);
  }
 else {
    pipeline.replace("String_Node_Str","String_Node_Str",new MessageDeserializer2(){
      String prefix=(direction == EnumPacketDirection.SERVERBOUND ? "String_Node_Str" : "String_Node_Str");
      @Override protected void decode(      ChannelHandlerContext context,      ByteBuf input,      List output){
        super.decode(context,input,output);
        for (        ByteBuf pkt : (List<ByteBuf>)output) {
          pkt.markReaderIndex();
          FMLLog.log(Level.DEBUG,"String_Node_Str",prefix,ByteBufUtils.getContentDump(pkt));
          pkt.resetReaderIndex();
        }
      }
    }
);
    pipeline.replace("String_Node_Str","String_Node_Str",new MessageSerializer2(){
      String prefix=(direction == EnumPacketDirection.SERVERBOUND ? "String_Node_Str" : "String_Node_Str");
      @Override protected void encode(      ChannelHandlerContext context,      ByteBuf input,      ByteBuf output){
        input.markReaderIndex();
        FMLLog.log(Level.DEBUG,"String_Node_Str",prefix,ByteBufUtils.getContentDump(input));
        input.resetReaderIndex();
        super.encode(context,input,output);
      }
    }
);
  }
}