Program: 13690
Project: 13690
Buggy source:
private static Object parseValue(String type,String[] values){
  if ("String_Node_Str".equals(type) || "String_Node_Str".equals(type)) {
    return values[0];
  }
 else   if ("String_Node_Str".equals(type)) {
    return values;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Integer(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    int[] is=new int[values.length];
    for (int i=0; i < is.length; i++) {
      is[i]=Integer.parseInt(values[i]);
    }
    return is;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Short(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    short[] ss=new short[values.length];
    for (int i=0; i < ss.length; i++) {
      ss[i]=Short.parseShort(values[i]);
    }
    return ss;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Byte(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    byte[] bs=new byte[values.length];
    for (int i=0; i < bs.length; i++) {
      bs[i]=Byte.parseByte(values[i]);
    }
    return bs;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Long(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    long[] ls=new long[values.length];
    for (int i=0; i < ls.length; i++) {
      ls[i]=Long.parseLong(values[i]);
    }
    return ls;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Boolean(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    boolean[] bs=new boolean[values.length];
    for (int i=0; i < bs.length; i++) {
      bs[i]=Boolean.getBoolean(values[i]);
    }
    return bs;
  }
 else   if ("String_Node_Str".equals(type)) {
    DatatypeConverter.setDatatypeConverter(DatatypeConverterImpl.theInstance);
    Calendar cal=DatatypeConverter.parseTime(values[0]);
    return cal;
  }
 else {
    System.out.println("String_Node_Str" + type);
  }
  return null;
}

Fixed version (ground truth):
private static Object parseValue(String type,String[] values){
  if ("String_Node_Str".equals(type) || "String_Node_Str".equals(type)) {
    return values[0];
  }
 else   if ("String_Node_Str".equals(type)) {
    return values;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Integer(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    int[] is=new int[values.length];
    for (int i=0; i < is.length; i++) {
      is[i]=Integer.parseInt(values[i]);
    }
    return is;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Short(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    short[] ss=new short[values.length];
    for (int i=0; i < ss.length; i++) {
      ss[i]=Short.parseShort(values[i]);
    }
    return ss;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Byte(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    byte[] bs=new byte[values.length];
    for (int i=0; i < bs.length; i++) {
      bs[i]=Byte.parseByte(values[i]);
    }
    return bs;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Long(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    long[] ls=new long[values.length];
    for (int i=0; i < ls.length; i++) {
      ls[i]=Long.parseLong(values[i]);
    }
    return ls;
  }
 else   if ("String_Node_Str".equals(type)) {
    return new Boolean(values[0]);
  }
 else   if ("String_Node_Str".equals(type)) {
    boolean[] bs=new boolean[values.length];
    for (int i=0; i < bs.length; i++) {
      bs[i]=Boolean.getBoolean(values[i]);
    }
    return bs;
  }
 else   if ("String_Node_Str".equals(type)) {
    Calendar cal=DatatypeConverter.parseTime(values[0]);
    return cal;
  }
 else {
    System.out.println("String_Node_Str" + type);
  }
  return null;
}