Program: 60304
Project: 60304
Buggy source:
private void decodeArray(Object obj,Class comType) throws IllegalArgumentException, IllegalAccessException {
  List list=(ArrayList)value;
  int size=list.size();
  if (DataType.isString(comType)) {
    String[] arr=new String[size];
    for (int i=0; i < size; i++) {
      arr[i]=list.get(i).toString();
    }
    field.set(obj,arr);
  }
 else   if (DataType.isInteger(comType)) {
    int[] arr=new int[size];
    for (int i=0; i < size; i++) {
      arr[i]=Integer.parseInt(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isIntegerObject(comType)) {
    Integer[] arr=new Integer[size];
    for (int i=0; i < size; i++) {
      arr[i]=Integer.valueOf(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isLong(comType)) {
    long[] arr=new long[size];
    for (int i=0; i < size; i++) {
      arr[i]=Long.parseLong(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isLongObject(comType)) {
    Long[] arr=new Long[size];
    for (int i=0; i < size; i++) {
      arr[i]=Long.valueOf(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isShort(comType)) {
    short[] arr=new short[size];
    for (int i=0; i < size; i++) {
      arr[i]=Short.parseShort(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isShortObject(comType)) {
    Short[] arr=new Short[size];
    for (int i=0; i < size; i++) {
      arr[i]=Short.valueOf(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isByteObject(comType)) {
    Byte[] arr=new Byte[size];
    for (int i=0; i < size; i++) {
      arr[i]=Byte.valueOf(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isFloat(comType)) {
    float[] arr=new float[size];
    for (int i=0; i < size; i++) {
      arr[i]=Float.parseFloat(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isFloatObject(comType)) {
    Float[] arr=new Float[size];
    for (int i=0; i < size; i++) {
      arr[i]=Float.valueOf(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isDouble(comType)) {
    double[] arr=new double[size];
    for (int i=0; i < size; i++) {
      arr[i]=Double.parseDouble(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isDoubleObject(comType)) {
    Double[] arr=new Double[size];
    for (int i=0; i < size; i++) {
      arr[i]=Double.valueOf(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isBoolean(comType)) {
    boolean[] arr=new boolean[size];
    for (int i=0; i < size; i++) {
      arr[i]=Boolean.parseBoolean(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isBooleanObject(comType)) {
    Boolean[] arr=new Boolean[size];
    for (int i=0; i < size; i++) {
      arr[i]=Boolean.valueOf(list.get(i).toString());
    }
    field.set(obj,arr);
  }
 else   if (DataType.isChar(comType)) {
    char[] arr=new char[size];
    for (int i=0; i < size; i++) {
      arr[i]=list.get(i).toString().charAt(0);
    }
    field.set(obj,arr);
  }
 else   if (DataType.isCharObject(comType)) {
    Character[] arr=new Character[size];
    for (int i=0; i < size; i++) {
      arr[i]=list.get(i).toString().charAt(0);
    }
    field.set(obj,arr);
  }
 else   if (DataType.isDate(comType)) {
    Date[] arr=new Date[size];
    for (int i=0; i < size; i++) {
      arr[i]=(Date)list.get(i);
    }
    field.set(obj,arr);
  }
 else   if (DataType.isTimestamp(comType)) {
    Timestamp[] arr=new Timestamp[size];
    for (int i=0; i < size; i++) {
      arr[i]=(Timestamp)list.get(i);
    }
    field.set(obj,arr);
  }
}

Fixed version (ground truth):
private void decodeArray(Object obj,Class comType) throws IllegalArgumentException, IllegalAccessException {
  List list=(ArrayList)value;
  Object arr=convertToArrayValue(comType,list);
  field.set(obj,arr);
}