Program: 141206
Project: 141206
Buggy source:
@Override protected void setup(final Context context) throws IOException, InterruptedException {
  final Configuration conf=context.getConfiguration();
  if (!EoulsanRuntime.isRuntime()) {
    HadoopEoulsanRuntime.newEoulsanRuntime(conf);
  }
  this.counterGroup=conf.get(Globals.PARAMETER_PREFIX + "String_Node_Str");
  if (this.counterGroup == null) {
    throw new IOException("String_Node_Str");
  }
  final String genomeDescFile=conf.get(GENOME_DESC_PATH_KEY);
  if (genomeDescFile == null) {
    throw new IOException("String_Node_Str");
  }
  final GenomeDescription genomeDescription=GenomeDescription.load(new DataFile(genomeDescFile).open());
  this.parser.setGenomeDescription(genomeDescription);
  try {
    final MultiReadAlignmentsFilterBuilder mrafb=new MultiReadAlignmentsFilterBuilder();
    mrafb.addParameters(jobConfToParameters(conf,MAP_FILTER_PARAMETER_KEY_PREFIX));
    this.filter=mrafb.getAlignmentsFilter(new HadoopReporterIncrementer(context),this.counterGroup);
    LOGGER.info("String_Node_Str" + Joiner.on("String_Node_Str").join(this.filter.getFilterNames()));
  }
 catch (  EoulsanException e) {
    throw new IOException(e.getMessage());
  }
  if (context.getTaskAttemptID().getTaskID().getId() == 0) {
    final Path outputPath=new Path(context.getConfiguration().get("String_Node_Str"));
    final FileSystem fs=context.getWorkingDirectory().getFileSystem(context.getConfiguration());
    Path bestFile=null;
    long maxLen=-1;
    for (    FileStatus status : fs.listStatus(outputPath)) {
      if (status.getPath().getName().startsWith(SAM_HEADER_FILE_PREFIX) && status.getLen() > maxLen) {
        maxLen=status.getLen();
        bestFile=status.getPath();
      }
    }
    if (bestFile != null) {
      final BufferedReader reader=new BufferedReader(new InputStreamReader(fs.open(bestFile)));
      String line=null;
      while ((line=reader.readLine()) != null) {
        final int indexOfFirstTab=line.indexOf("String_Node_Str");
        this.outKey.set(line.substring(0,indexOfFirstTab));
        this.outValue.set(line.substring(indexOfFirstTab + 1));
        context.write(this.outKey,this.outValue);
      }
      reader.close();
    }
  }
}

Fixed version (ground truth):
@Override protected void setup(final Context context) throws IOException, InterruptedException {
  final Configuration conf=context.getConfiguration();
  if (!EoulsanRuntime.isRuntime()) {
    HadoopEoulsanRuntime.newEoulsanRuntime(conf);
  }
  this.counterGroup=conf.get(Globals.PARAMETER_PREFIX + "String_Node_Str");
  if (this.counterGroup == null) {
    throw new IOException("String_Node_Str");
  }
  final String genomeDescFile=conf.get(GENOME_DESC_PATH_KEY);
  if (genomeDescFile == null) {
    throw new IOException("String_Node_Str");
  }
  final GenomeDescription genomeDescription=GenomeDescription.load(new DataFile(genomeDescFile).open());
  this.parser.setGenomeDescription(genomeDescription);
  try {
    final MultiReadAlignmentsFilterBuilder mrafb=new MultiReadAlignmentsFilterBuilder();
    mrafb.addParameters(jobConfToParameters(conf,MAP_FILTER_PARAMETER_KEY_PREFIX));
    this.filter=mrafb.getAlignmentsFilter(new HadoopReporterIncrementer(context),this.counterGroup);
    LOGGER.info("String_Node_Str" + Joiner.on("String_Node_Str").join(this.filter.getFilterNames()));
  }
 catch (  EoulsanException e) {
    throw new IOException(e.getMessage());
  }
  if (context.getTaskAttemptID().getTaskID().getId() == 0) {
    final Path outputPath=new Path(context.getConfiguration().get("String_Node_Str"));
    final FileSystem fs=context.getWorkingDirectory().getFileSystem(context.getConfiguration());
    Path bestFile=null;
    long maxLen=-1;
    for (    FileStatus status : fs.listStatus(outputPath)) {
      if (status.getPath().getName().startsWith(SAM_HEADER_FILE_PREFIX) && status.getLen() > maxLen) {
        maxLen=status.getLen();
        bestFile=status.getPath();
      }
    }
    if (bestFile != null) {
      final BufferedReader reader=new BufferedReader(new InputStreamReader(fs.open(bestFile),"String_Node_Str"));
      String line=null;
      while ((line=reader.readLine()) != null) {
        final int indexOfFirstTab=line.indexOf("String_Node_Str");
        this.outKey.set(line.substring(0,indexOfFirstTab));
        this.outValue.set(line.substring(indexOfFirstTab + 1));
        context.write(this.outKey,this.outValue);
      }
      reader.close();
    }
  }
}