Program: 31717
Project: 31717
Buggy source:
@Override public void readFields(DataInput in) throws IOException {
  this.isNumeric=in.readBoolean();
  this.columnNum=in.readInt();
  this.max=in.readDouble();
  this.min=in.readDouble();
  this.sum=in.readDouble();
  this.squaredSum=in.readDouble();
  this.tripleSum=in.readDouble();
  this.quarticSum=in.readDouble();
  this.missingCount=in.readLong();
  this.totalCount=in.readLong();
  int size=in.readInt();
  this.binCountPos=new long[size];
  for (int i=0; i < size; i++) {
    this.binCountPos[i]=in.readLong();
  }
  size=in.readInt();
  this.binCountNeg=new long[size];
  for (int i=0; i < size; i++) {
    this.binCountNeg[i]=in.readLong();
  }
  size=in.readInt();
  this.binWeightPos=new double[size];
  for (int i=0; i < size; i++) {
    this.binWeightPos[i]=in.readDouble();
  }
  size=in.readInt();
  this.binWeightNeg=new double[size];
  for (int i=0; i < size; i++) {
    this.binWeightNeg[i]=in.readDouble();
  }
  if (this.isNumeric) {
    size=in.readInt();
    this.binBoundaries=new ArrayList<Double>(size);
    for (int i=0; i < size; i++) {
      this.binBoundaries.add(in.readDouble());
    }
    int xMultiYSize=in.readInt();
    if (xMultiYSize != 0) {
      this.xMultiY=new double[xMultiYSize];
      for (int i=0; i < xMultiYSize; i++) {
        this.xMultiY[i]=in.readDouble();
      }
    }
  }
 else {
    size=in.readInt();
    this.binCategories=new ArrayList<String>(size);
    for (int i=0; i < size; i++) {
      int bytesSize=in.readInt();
      byte[] bytes=new byte[bytesSize];
      for (int j=0; j < bytesSize; j++) {
        bytes[j]=in.readByte();
      }
      this.binCategories.add(new String(bytes,Charset.forName("String_Node_Str")));
    }
  }
  this.cfiw=new CountAndFrequentItemsWritable();
  this.cfiw.readFields(in);
}

Fixed version (ground truth):
@Override public void readFields(DataInput in) throws IOException {
  this.isNumeric=in.readBoolean();
  this.columnNum=in.readInt();
  this.max=in.readDouble();
  this.min=in.readDouble();
  this.sum=in.readDouble();
  this.squaredSum=in.readDouble();
  this.tripleSum=in.readDouble();
  this.quarticSum=in.readDouble();
  this.missingCount=in.readLong();
  this.totalCount=in.readLong();
  int size=in.readInt();
  this.binCountPos=new long[size];
  for (int i=0; i < size; i++) {
    this.binCountPos[i]=in.readLong();
  }
  size=in.readInt();
  this.binCountNeg=new long[size];
  for (int i=0; i < size; i++) {
    this.binCountNeg[i]=in.readLong();
  }
  size=in.readInt();
  this.binWeightPos=new double[size];
  for (int i=0; i < size; i++) {
    this.binWeightPos[i]=in.readDouble();
  }
  size=in.readInt();
  this.binWeightNeg=new double[size];
  for (int i=0; i < size; i++) {
    this.binWeightNeg[i]=in.readDouble();
  }
  if (this.isNumeric) {
    size=in.readInt();
    this.binBoundaries=new ArrayList<Double>(size);
    for (int i=0; i < size; i++) {
      this.binBoundaries.add(in.readDouble());
    }
    int xMultiYSize=in.readInt();
    if (xMultiYSize != 0) {
      this.xMultiY=new double[xMultiYSize];
      for (int i=0; i < xMultiYSize; i++) {
        this.xMultiY[i]=in.readDouble();
      }
    }
  }
 else {
    size=in.readInt();
    this.binCategories=new ArrayList<String>(size);
    for (int i=0; i < size; i++) {
      int bytesSize=in.readInt();
      byte[] bytes=new byte[bytesSize];
      for (int j=0; j < bytesSize; j++) {
        bytes[j]=in.readByte();
      }
      this.binCategories.add(new String(bytes,Charset.forName("String_Node_Str")));
    }
  }
  this.cfiw=new CountAndFrequentItemsWritable();
  this.cfiw.readFields(in);
  this.isEmpty=in.readBoolean();
}