Program: 80154
Project: 80154
Buggy source:
@SafeVarargs @SuppressWarnings("String_Node_Str") public static <T>void testSerializeDeserialize(T... objects) throws Exception {
  ByteBufferOutputStream os=new ByteBufferOutputStream();
  DataOutputStream dos=new DataOutputStream(os);
  ByteBufferInputStream is=null;
  DataInputStream dis=null;
  GoraMapReduceUtils.setIOSerializations(conf,true);
  try {
    for (    T before : objects) {
      IOUtils.serialize(conf,dos,before,(Class<T>)before.getClass());
      dos.flush();
    }
    is=new ByteBufferInputStream(os.getBufferList());
    dis=new DataInputStream(is);
    for (    T before : objects) {
      T after=IOUtils.deserialize(conf,dis,null,(Class<T>)before.getClass());
      if (before instanceof BoolArrayWrapper) {
        if (after instanceof BoolArrayWrapper) {
          log.info("String_Node_Str" + java.util.Arrays.toString(((BoolArrayWrapper)before).arr));
          log.info("String_Node_Str" + java.util.Arrays.toString(((BoolArrayWrapper)after).arr));
        }
      }
 else       if (before instanceof StringArrayWrapper) {
        if (after instanceof StringArrayWrapper) {
          log.info("String_Node_Str" + java.util.Arrays.toString(((StringArrayWrapper)before).arr));
          log.info("String_Node_Str" + java.util.Arrays.toString(((StringArrayWrapper)after).arr));
        }
      }
 else {
        log.info("String_Node_Str" + before);
        log.info("String_Node_Str" + before);
      }
      assertEquals(before,after);
    }
    try {
      long skipped=dis.skip(1);
      assertEquals(0,skipped);
    }
 catch (    EOFException expected) {
    }
  }
  finally {
    org.apache.hadoop.io.IOUtils.closeStream(dos);
    org.apache.hadoop.io.IOUtils.closeStream(os);
    org.apache.hadoop.io.IOUtils.closeStream(dis);
    org.apache.hadoop.io.IOUtils.closeStream(is);
  }
}

Fixed version (ground truth):
@SafeVarargs @SuppressWarnings("String_Node_Str") public static <T>void testSerializeDeserialize(T... objects) throws Exception {
  ByteBufferOutputStream os=new ByteBufferOutputStream();
  DataOutputStream dos=new DataOutputStream(os);
  ByteBufferInputStream is=null;
  DataInputStream dis=null;
  GoraMapReduceUtils.setIOSerializations(conf,true);
  try {
    for (    T before : objects) {
      IOUtils.serialize(conf,dos,before,(Class<T>)before.getClass());
      dos.flush();
    }
    is=new ByteBufferInputStream(os.getBufferList());
    dis=new DataInputStream(is);
    for (    T before : objects) {
      T after=IOUtils.deserialize(conf,dis,null,(Class<T>)before.getClass());
      if (before instanceof BoolArrayWrapper) {
        if (after instanceof BoolArrayWrapper) {
          log.info("String_Node_Str" + java.util.Arrays.toString(((BoolArrayWrapper)before).arr));
          log.info("String_Node_Str" + java.util.Arrays.toString(((BoolArrayWrapper)after).arr));
        }
      }
 else       if (before instanceof StringArrayWrapper) {
        if (after instanceof StringArrayWrapper) {
          log.info("String_Node_Str" + java.util.Arrays.toString(((StringArrayWrapper)before).arr));
          log.info("String_Node_Str" + java.util.Arrays.toString(((StringArrayWrapper)after).arr));
        }
      }
 else {
        log.info("String_Node_Str" + before);
        log.info("String_Node_Str" + before);
      }
      assertEquals(before,after);
    }
    long skipped=dis.skip(1);
    assertEquals(0,skipped);
  }
 catch (  EOFException expected) {
  }
 finally {
    org.apache.hadoop.io.IOUtils.closeStream(dos);
    org.apache.hadoop.io.IOUtils.closeStream(os);
    org.apache.hadoop.io.IOUtils.closeStream(dis);
    org.apache.hadoop.io.IOUtils.closeStream(is);
  }
}