Program: 172741
Project: 172741
Buggy source:
@Override public ColumnBinary toBinary(final ColumnBinaryMakerConfig commonConfig,final ColumnBinaryMakerCustomConfigNode currentConfigNode,final IColumn column) throws IOException {
  ColumnBinaryMakerConfig currentConfig=commonConfig;
  if (currentConfigNode != null) {
    currentConfig=currentConfigNode.getCurrentConfig();
  }
  byte[] binaryRaw=new byte[Integer.BYTES * column.size()];
  IntBuffer intIndexBuffer=ByteBuffer.wrap(binaryRaw).asIntBuffer();
  List<Integer> numberList=new ArrayList<Integer>();
  for (int i=0; i < column.size(); i++) {
    ICell cell=column.get(i);
    if (cell instanceof ArrayCell) {
      ArrayCell arrayCell=(ArrayCell)cell;
      intIndexBuffer.put(arrayCell.getEnd() - arrayCell.getStart());
    }
 else {
      intIndexBuffer.put(0);
    }
  }
  byte[] compressData=currentConfig.compressorClass.compress(binaryRaw,0,binaryRaw.length);
  IColumn childColumn=column.getColumn(0);
  List<ColumnBinary> columnBinaryList=new ArrayList<ColumnBinary>();
  ColumnBinaryMakerCustomConfigNode childColumnConfigNode=null;
  IColumnBinaryMaker maker=commonConfig.getColumnMaker(childColumn.getColumnType());
  if (currentConfigNode != null) {
    childColumnConfigNode=currentConfigNode.getChildConfigNode(childColumn.getColumnName());
    if (childColumnConfigNode != null) {
      maker=childColumnConfigNode.getCurrentConfig().getColumnMaker(childColumn.getColumnType());
    }
  }
  columnBinaryList.add(maker.toBinary(commonConfig,childColumnConfigNode,childColumn));
  return new ColumnBinary(this.getClass().getName(),currentConfig.compressorClass.getClass().getName(),column.getColumnName(),ColumnType.ARRAY,column.size(),binaryRaw.length,0,-1,compressData,0,compressData.length,columnBinaryList);
}

Fixed version (ground truth):
@Override public ColumnBinary toBinary(final ColumnBinaryMakerConfig commonConfig,final ColumnBinaryMakerCustomConfigNode currentConfigNode,final IColumn column) throws IOException {
  ColumnBinaryMakerConfig currentConfig=commonConfig;
  if (currentConfigNode != null) {
    currentConfig=currentConfigNode.getCurrentConfig();
  }
  byte[] binaryRaw=new byte[Integer.BYTES * column.size()];
  IntBuffer intIndexBuffer=ByteBuffer.wrap(binaryRaw).asIntBuffer();
  for (int i=0; i < column.size(); i++) {
    ICell cell=column.get(i);
    if (cell instanceof ArrayCell) {
      ArrayCell arrayCell=(ArrayCell)cell;
      intIndexBuffer.put(arrayCell.getEnd() - arrayCell.getStart());
    }
 else {
      intIndexBuffer.put(0);
    }
  }
  byte[] compressData=currentConfig.compressorClass.compress(binaryRaw,0,binaryRaw.length);
  IColumn childColumn=column.getColumn(0);
  List<ColumnBinary> columnBinaryList=new ArrayList<ColumnBinary>();
  ColumnBinaryMakerCustomConfigNode childColumnConfigNode=null;
  IColumnBinaryMaker maker=commonConfig.getColumnMaker(childColumn.getColumnType());
  if (currentConfigNode != null) {
    childColumnConfigNode=currentConfigNode.getChildConfigNode(childColumn.getColumnName());
    if (childColumnConfigNode != null) {
      maker=childColumnConfigNode.getCurrentConfig().getColumnMaker(childColumn.getColumnType());
    }
  }
  columnBinaryList.add(maker.toBinary(commonConfig,childColumnConfigNode,childColumn));
  return new ColumnBinary(this.getClass().getName(),currentConfig.compressorClass.getClass().getName(),column.getColumnName(),ColumnType.ARRAY,column.size(),binaryRaw.length,0,-1,compressData,0,compressData.length,columnBinaryList);
}