Program: 141416
Project: 141416
Buggy source:
private final void parseSOAPResults(final File resultFile,final File unmapFile,final OutputCollector<Text,Text> collector,final Reporter reporter) throws IOException {
  String line;
  final Text outKey=new Text();
  final Text outValue=new Text();
  final BufferedReader readerResults=FileUtils.createBufferedReader(resultFile);
  final AlignResult aln=new AlignResult();
  String lastSequenceId=null;
  while ((line=readerResults.readLine()) != null) {
    final String trimmedLine=line.trim();
    if ("String_Node_Str".equals(trimmedLine))     continue;
    aln.parseResultLine(trimmedLine);
    reporter.incrCounter(this.counterGroup,"String_Node_Str",1);
    final String currentSequenceId=aln.getSequenceId();
    if (aln.getNumberOfHits() == 1) {
      outKey.set(aln.getSequenceId());
      outValue.set(StringUtils.subStringAfterFirstTab(line));
      collector.collect(outKey,outValue);
      reporter.incrCounter(this.counterGroup,"String_Node_Str",1);
    }
 else     if (currentSequenceId != null && (!currentSequenceId.equals(lastSequenceId)))     reporter.incrCounter(this.counterGroup,"String_Node_Str",1);
    lastSequenceId=currentSequenceId;
  }
  readerResults.close();
  final BufferedReader readerUnmap=FileUtils.createBufferedReader(unmapFile);
  int countUnMap=0;
  while ((line=readerUnmap.readLine()) != null)   if (line.trim().startsWith("String_Node_Str"))   countUnMap++;
  readerUnmap.close();
  reporter.incrCounter(this.counterGroup,"String_Node_Str",countUnMap);
  final Path unmapPath=new Path(this.unmapFilesDirPath,unmapFile.getName());
  PathUtils.copyLocalFileToPath(unmapFile,unmapPath,true,this.conf);
}

Fixed version (ground truth):
private final void parseSOAPResults(final File resultFile,final File unmapFile,final OutputCollector<Text,Text> collector,final Reporter reporter) throws IOException {
  String line;
  final Text outKey=new Text();
  final Text outValue=new Text();
  final BufferedReader readerResults=FileUtils.createBufferedReader(resultFile);
  final AlignResult aln=new AlignResult();
  String lastSequenceId=null;
  while ((line=readerResults.readLine()) != null) {
    final String trimmedLine=line.trim();
    if ("String_Node_Str".equals(trimmedLine))     continue;
    aln.parseResultLine(trimmedLine);
    reporter.incrCounter(this.counterGroup,"String_Node_Str",1);
    final String currentSequenceId=aln.getSequenceId();
    if (aln.getNumberOfHits() == 1) {
      outKey.set(aln.getSequenceId());
      outValue.set(StringUtils.subStringAfterFirstTab(line));
      collector.collect(outKey,outValue);
      reporter.incrCounter(this.counterGroup,Common.SOAP_ALIGNEMENT_WITH_ONLY_ONE_HIT_COUNTER,1);
    }
 else     if (currentSequenceId != null && (!currentSequenceId.equals(lastSequenceId)))     reporter.incrCounter(this.counterGroup,"String_Node_Str",1);
    lastSequenceId=currentSequenceId;
  }
  readerResults.close();
  final BufferedReader readerUnmap=FileUtils.createBufferedReader(unmapFile);
  int countUnMap=0;
  while ((line=readerUnmap.readLine()) != null)   if (line.trim().startsWith("String_Node_Str"))   countUnMap++;
  readerUnmap.close();
  reporter.incrCounter(this.counterGroup,"String_Node_Str",countUnMap);
  final Path unmapPath=new Path(this.unmapFilesDirPath,unmapFile.getName());
  PathUtils.copyLocalFileToPath(unmapFile,unmapPath,true,this.conf);
}