Program: 50360
Project: 50360
Buggy source:
/** 
 * Combine tab delimited files and adjusts P-values for multiple testing.
 * @throws java.io.IOException error reading / writing
 */
@Override public void execute() throws IOException {
  Writer stream=null;
  try {
    stream=outputFilename == null ? new OutputStreamWriter(System.out) : outputFilename.endsWith("String_Node_Str") ? new OutputStreamWriter(new GZIPOutputStream(new FileOutputStream(outputFilename))) : new FileWriter(outputFilename);
    DifferentialExpressionResults data=new DifferentialExpressionResults(10000000);
    ObjectList<String> columnIdList=vcf ? getVCFColumns(inputFiles) : getTSVColumns(inputFiles);
    ObjectSet<String> selection=new ObjectOpenHashSet<String>();
    for (    String col : columnIdList) {
      selection.addAll(ObjectArrayList.wrap(selectedPValueColumns));
      for (      String filter : columnSelectionFilter) {
        if (col.contains(filter)) {
          selection.add(col);
          System.out.printf("String_Node_Str",col);
        }
      }
      System.out.println("String_Node_Str" + col);
    }
    selectedPValueColumns=selection.toArray(new String[selection.size()]);
    DifferentialExpressionCalculator deCalculator=new DifferentialExpressionCalculator();
    if (vcf) {
      loadVCF(inputFiles,data,deCalculator,columnIdList);
    }
 else {
      loadTSV(inputFiles,data,deCalculator,columnIdList);
    }
    BenjaminiHochbergAdjustment fdr=new BenjaminiHochbergAdjustment();
    fdr.setNumberAboveThreshold(numIgnoredObservations);
    for (    String column : selectedPValueColumns) {
      System.out.println("String_Node_Str" + column);
      fdr.adjust(data,column.toLowerCase());
    }
    recordTopHits(data);
    for (int i=0; i < data.getNumberOfStatistics(); i++) {
      MutableString statisticId=data.getStatisticIdForIndex(i);
      final String statId=statisticId.toString();
      if (!contains(selectedPValueColumns,statId)) {
        adjustedColumnIds.add(statId);
      }
    }
    Collections.sort(data,new ElementIndexComparator());
    if (vcf) {
      combineVCF(inputFiles,data,deCalculator,columnIdList,stream);
    }
 else {
      combineTSV(inputFiles,data,deCalculator,columnIdList,stream);
    }
  }
  finally {
    if (outputFilename != null) {
      IOUtils.closeQuietly(stream);
    }
  }
}

Fixed version (ground truth):
/** 
 * Combine tab delimited files and adjusts P-values for multiple testing.
 * @throws java.io.IOException error reading / writing
 */
@Override public void execute() throws IOException {
  Writer stream=null;
  try {
    stream=outputFilename == null ? new OutputStreamWriter(System.out) : outputFilename.endsWith("String_Node_Str") ? new OutputStreamWriter(new GZIPOutputStream(new FileOutputStream(outputFilename))) : new FileWriter(outputFilename);
    DifferentialExpressionResults data=new DifferentialExpressionResults(10000000);
    ObjectList<String> columnIdList=vcf ? getVCFColumns(inputFiles) : getTSVColumns(inputFiles);
    ObjectSet<String> selection=new ObjectOpenHashSet<String>();
    selection.addAll(ObjectArrayList.wrap(selectedPValueColumns));
    for (    String col : columnIdList) {
      selection.addAll(ObjectArrayList.wrap(selectedPValueColumns));
      for (      String filter : columnSelectionFilter) {
        if (col.contains(filter)) {
          selection.add(col);
          System.out.printf("String_Node_Str",col);
        }
      }
      System.out.println("String_Node_Str" + col);
    }
    selectedPValueColumns=selection.toArray(new String[selection.size()]);
    DifferentialExpressionCalculator deCalculator=new DifferentialExpressionCalculator();
    if (vcf) {
      loadVCF(inputFiles,data,deCalculator,columnIdList);
    }
 else {
      loadTSV(inputFiles,data,deCalculator,columnIdList);
    }
    BenjaminiHochbergAdjustment fdr=new BenjaminiHochbergAdjustment();
    fdr.setNumberAboveThreshold(numIgnoredObservations);
    for (    String column : selectedPValueColumns) {
      System.out.println("String_Node_Str" + column);
      fdr.adjust(data,column.toLowerCase());
    }
    recordTopHits(data);
    for (int i=0; i < data.getNumberOfStatistics(); i++) {
      MutableString statisticId=data.getStatisticIdForIndex(i);
      final String statId=statisticId.toString();
      if (!contains(selectedPValueColumns,statId)) {
        adjustedColumnIds.add(statId);
      }
    }
    Collections.sort(data,new ElementIndexComparator());
    if (vcf) {
      combineVCF(inputFiles,data,deCalculator,columnIdList,stream);
    }
 else {
      combineTSV(inputFiles,data,deCalculator,columnIdList,stream);
    }
  }
  finally {
    if (outputFilename != null) {
      IOUtils.closeQuietly(stream);
    }
  }
}