Program: 111954
Project: 111954
Buggy source:
private void initializeInternalReader(ParquetInputSplit split,Configuration configuration) throws IOException {
  Path path=split.getPath();
  long[] rowGroupOffsets=split.getRowGroupOffsets();
  List<BlockMetaData> filteredBlocks;
  ParquetMetadata footer;
  if (rowGroupOffsets == null) {
    footer=readFooter(configuration,path,range(split.getStart(),split.getEnd()));
    MessageType fileSchema=footer.getFileMetaData().getSchema();
    Filter filter=getFilter(configuration);
    filteredBlocks=filterRowGroups(filter,footer.getBlocks(),fileSchema);
  }
 else {
    footer=readFooter(configuration,path,NO_FILTER);
    Set<Long> offsets=new HashSet<Long>();
    for (    long offset : rowGroupOffsets) {
      offsets.add(offset);
    }
    filteredBlocks=new ArrayList<BlockMetaData>();
    for (    BlockMetaData block : footer.getBlocks()) {
      if (offsets.contains(block.getStartingPos())) {
        filteredBlocks.add(block);
      }
    }
    if (filteredBlocks.size() != rowGroupOffsets.length) {
      long[] foundRowGroupOffsets=new long[footer.getBlocks().size()];
      for (int i=0; i < foundRowGroupOffsets.length; i++) {
        foundRowGroupOffsets[i]=footer.getBlocks().get(i).getStartingPos();
      }
      throw new IllegalStateException("String_Node_Str" + "String_Node_Str" + Arrays.toString(rowGroupOffsets) + "String_Node_Str"+ filteredBlocks+ "String_Node_Str"+ Arrays.toString(foundRowGroupOffsets)+ "String_Node_Str"+ split.getStart()+ "String_Node_Str"+ split.getEnd());
    }
  }
  checkDeltaByteArrayProblem(footer.getFileMetaData(),configuration,filteredBlocks.get(0));
  MessageType fileSchema=footer.getFileMetaData().getSchema();
  internalReader.initialize(fileSchema,footer.getFileMetaData(),path,filteredBlocks,configuration);
}

Fixed version (ground truth):
private void initializeInternalReader(ParquetInputSplit split,Configuration configuration) throws IOException {
  Path path=split.getPath();
  long[] rowGroupOffsets=split.getRowGroupOffsets();
  List<BlockMetaData> filteredBlocks;
  ParquetMetadata footer;
  if (rowGroupOffsets == null) {
    footer=readFooter(configuration,path,range(split.getStart(),split.getEnd()));
    MessageType fileSchema=footer.getFileMetaData().getSchema();
    Filter filter=getFilter(configuration);
    filteredBlocks=filterRowGroups(filter,footer.getBlocks(),fileSchema);
  }
 else {
    footer=readFooter(configuration,path,NO_FILTER);
    Set<Long> offsets=new HashSet<Long>();
    for (    long offset : rowGroupOffsets) {
      offsets.add(offset);
    }
    filteredBlocks=new ArrayList<BlockMetaData>();
    for (    BlockMetaData block : footer.getBlocks()) {
      if (offsets.contains(block.getStartingPos())) {
        filteredBlocks.add(block);
      }
    }
    if (filteredBlocks.size() != rowGroupOffsets.length) {
      long[] foundRowGroupOffsets=new long[footer.getBlocks().size()];
      for (int i=0; i < foundRowGroupOffsets.length; i++) {
        foundRowGroupOffsets[i]=footer.getBlocks().get(i).getStartingPos();
      }
      throw new IllegalStateException("String_Node_Str" + "String_Node_Str" + Arrays.toString(rowGroupOffsets) + "String_Node_Str"+ filteredBlocks+ "String_Node_Str"+ Arrays.toString(foundRowGroupOffsets)+ "String_Node_Str"+ split.getStart()+ "String_Node_Str"+ split.getEnd());
    }
  }
  if (!filteredBlocks.isEmpty()) {
    checkDeltaByteArrayProblem(footer.getFileMetaData(),configuration,filteredBlocks.get(0));
  }
  MessageType fileSchema=footer.getFileMetaData().getSchema();
  internalReader.initialize(fileSchema,footer.getFileMetaData(),path,filteredBlocks,configuration);
}