Program: 183923
Project: 183923
Buggy source:
/** 
 * prints out all of the statistics that have been gathered from the log analysis and grouping code
 * @throws IOException 
 */
public void statsOut() throws IOException {
  analyze();
  int i;
  if (bundle.getString("String_Node_Str").equals("String_Node_Str") || bundle.getString("String_Node_Str").equals("String_Node_Str") || bundle.getString("String_Node_Str").equals("String_Node_Str") | bundle.getString("String_Node_Str").equals("String_Node_Str")) {
    System.out.println("String_Node_Str");
  }
  if (lowestRating == 2) {
    System.out.println("String_Node_Str");
  }
 else {
    if (bundle.getString("String_Node_Str").equals("String_Node_Str")) {
      System.out.println("String_Node_Str" + then + "String_Node_Str"+ now+ "String_Node_Str");
      System.out.println("String_Node_Str" + revisionTotal);
      System.out.println("String_Node_Str" + Math.round(relevantAverage) + "String_Node_Str");
      for (i=0; i < args.length; i++) {
        System.out.println("String_Node_Str" + (i + 1) + "String_Node_Str"+ relevantPresent[i]);
        System.out.println("String_Node_Str" + (10 * (i + 1)) + "String_Node_Str"+ irrelevantPresent[i]+ "String_Node_Str");
      }
      System.out.println();
      if (timeDiffLow / 1000 / 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffAverage / 1000 + "String_Node_Str");
      }
 else       if (timeDiffLow / 1000 / 60/ 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffAverage / 1000 / 60 + "String_Node_Str");
      }
 else {
        System.out.println("String_Node_Str" + timeDiffAverage / 1000 / 60/ 60 + "String_Node_Str");
      }
      if (timeDiffLow / 1000 / 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffLow / 1000 + "String_Node_Str" + revisionReference[5]);
      }
 else       if (timeDiffLow / 1000 / 60/ 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffLow / 1000 / 60 + "String_Node_Str" + revisionReference[5]);
      }
 else {
        System.out.println("String_Node_Str" + timeDiffLow / 1000 / 60/ 60 + "String_Node_Str" + revisionReference[5]);
      }
      if (timeDiffHigh / 1000 / 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffHigh / 1000 + "String_Node_Str" + revisionReference[4]);
      }
 else       if (timeDiffHigh / 1000 / 60/ 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffHigh / 1000 / 60 + "String_Node_Str" + revisionReference[4]);
      }
 else {
        System.out.println("String_Node_Str" + timeDiffHigh / 1000 / 60/ 60 + "String_Node_Str" + revisionReference[4]);
      }
      System.out.println("String_Node_Str" + ratingAverage);
      System.out.println("String_Node_Str" + lowestRating + "String_Node_Str"+ revisionReference[1]);
      System.out.println("String_Node_Str" + highestRating + "String_Node_Str"+ revisionReference[0]+ "String_Node_Str");
      System.out.println("String_Node_Str" + nFilesAverage);
      System.out.println("String_Node_Str" + lowestFileNumber + "String_Node_Str"+ revisionReference[3]);
      System.out.println("String_Node_Str" + highestFileNumber + "String_Node_Str"+ revisionReference[2]+ "String_Node_Str");
    }
    if (bundle.getString("String_Node_Str").equals("String_Node_Str")) {
      grouping.currentOutput();
    }
    if (args.length > 1) {
      if (bundle.getString("String_Node_Str").equals("String_Node_Str")) {
        percentages(args);
      }
    }
    if (bundle.getString("String_Node_Str").equals("String_Node_Str")) {
      System.out.println();
      FileWriter f=new FileWriter(bundle.getString("String_Node_Str"));
      PrintWriter p=new PrintWriter(f);
      Object[][] input={revisionsToo,flowOfTime};
      CSVWork(input,p,f);
      Object[][] nextInput={revisions,ratings};
      CSVWork(nextInput,p,f);
      nextInput[1]=irrelevants;
      CSVWork(nextInput,p,f);
      nextInput[1]=relevants;
      CSVWork(nextInput,p,f);
      nextInput[0]=intervals;
      nextInput[1]=commits;
      CSVWork(nextInput,p,f);
      p.flush();
      p.close();
      f.close();
    }
    if (bundle.getString("String_Node_Str").equals("String_Node_Str") && revisionTotal > 1) {
      int j;
      String pathFull="String_Node_Str";
      DiffParser dp=new DiffParser(args);
      String path=bundle.getString(bundle.getString("String_Node_Str"));
      System.out.print("String_Node_Str");
      for (i=0; i < args.length; i++) {
        System.out.print("String_Node_Str" + args[i].substring(args[i].lastIndexOf('/')));
      }
      System.out.println("String_Node_Str");
      for (i=0; i < revisionsToo.length - 1; i++) {
        System.out.print("String_Node_Str" + revisionsToo[i] + "String_Node_Str");
        for (j=0; j < args.length; j++) {
          pathFull=path + args[j] + "String_Node_Str";
          Process exec=Runtime.getRuntime().exec("String_Node_Str" + revisionsToo[i].split("String_Node_Str")[0] + "String_Node_Str"+ revisionsToo[i].split("String_Node_Str")[1]+ "String_Node_Str"+ pathFull);
          dp.diffOut(exec);
        }
        System.out.println("String_Node_Str");
      }
    }
  }
  if (bundle.getString("String_Node_Str").equals("String_Node_Str") || bundle.getString("String_Node_Str").equals("String_Node_Str") || bundle.getString("String_Node_Str").equals("String_Node_Str") | bundle.getString("String_Node_Str").equals("String_Node_Str")) {
    System.out.println("String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * prints out all of the statistics that have been gathered from the log analysis and grouping code
 * @throws IOException 
 */
public void statsOut() throws IOException {
  analyze();
  int i;
  if (bundle.getString("String_Node_Str").equals("String_Node_Str") || bundle.getString("String_Node_Str").equals("String_Node_Str") || bundle.getString("String_Node_Str").equals("String_Node_Str") | bundle.getString("String_Node_Str").equals("String_Node_Str")) {
    System.out.println("String_Node_Str");
  }
  if (lowestRating == 2) {
    System.out.println("String_Node_Str");
  }
 else {
    if (bundle.getString("String_Node_Str").equals("String_Node_Str")) {
      System.out.println("String_Node_Str" + then + "String_Node_Str"+ now+ "String_Node_Str");
      System.out.println("String_Node_Str" + revisionTotal);
      System.out.println("String_Node_Str" + Math.round(relevantAverage) + "String_Node_Str");
      for (i=0; i < args.length; i++) {
        System.out.println("String_Node_Str" + (i + 1) + "String_Node_Str"+ relevantPresent[i]);
        System.out.println("String_Node_Str" + (10 * (i + 1)) + "String_Node_Str"+ irrelevantPresent[i]+ "String_Node_Str");
      }
      System.out.println();
      if (timeDiffAverage / 1000 / 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffAverage / 1000 + "String_Node_Str");
      }
 else       if (timeDiffAverage / 1000 / 60/ 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffAverage / 1000 / 60 + "String_Node_Str");
      }
 else {
        System.out.println("String_Node_Str" + timeDiffAverage / 1000 / 60/ 60 + "String_Node_Str");
      }
      if (timeDiffLow / 1000 / 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffLow / 1000 + "String_Node_Str" + revisionReference[5]);
      }
 else       if (timeDiffLow / 1000 / 60/ 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffLow / 1000 / 60 + "String_Node_Str" + revisionReference[5]);
      }
 else {
        System.out.println("String_Node_Str" + timeDiffLow / 1000 / 60/ 60 + "String_Node_Str" + revisionReference[5]);
      }
      if (timeDiffHigh / 1000 / 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffHigh / 1000 + "String_Node_Str" + revisionReference[4]);
      }
 else       if (timeDiffHigh / 1000 / 60/ 60 < 1) {
        System.out.println("String_Node_Str" + timeDiffHigh / 1000 / 60 + "String_Node_Str" + revisionReference[4]);
      }
 else {
        System.out.println("String_Node_Str" + timeDiffHigh / 1000 / 60/ 60 + "String_Node_Str" + revisionReference[4]);
      }
      System.out.println("String_Node_Str" + ratingAverage);
      System.out.println("String_Node_Str" + lowestRating + "String_Node_Str"+ revisionReference[1]);
      System.out.println("String_Node_Str" + highestRating + "String_Node_Str"+ revisionReference[0]+ "String_Node_Str");
      System.out.println("String_Node_Str" + nFilesAverage);
      System.out.println("String_Node_Str" + lowestFileNumber + "String_Node_Str"+ revisionReference[3]);
      System.out.println("String_Node_Str" + highestFileNumber + "String_Node_Str"+ revisionReference[2]+ "String_Node_Str");
    }
    if (bundle.getString("String_Node_Str").equals("String_Node_Str")) {
      grouping.currentOutput();
    }
    if (args.length > 1) {
      if (bundle.getString("String_Node_Str").equals("String_Node_Str")) {
        percentages(args);
      }
    }
    if (bundle.getString("String_Node_Str").equals("String_Node_Str")) {
      System.out.println();
      FileWriter f=new FileWriter(bundle.getString("String_Node_Str"));
      PrintWriter p=new PrintWriter(f);
      Object[][] input={revisionsToo,flowOfTime};
      CSVWork(input,p,f);
      Object[][] nextInput={revisions,ratings};
      CSVWork(nextInput,p,f);
      nextInput[1]=irrelevants;
      CSVWork(nextInput,p,f);
      nextInput[1]=relevants;
      CSVWork(nextInput,p,f);
      nextInput[0]=intervals;
      nextInput[1]=commits;
      CSVWork(nextInput,p,f);
      p.flush();
      p.close();
      f.close();
    }
    if (bundle.getString("String_Node_Str").equals("String_Node_Str") && revisionTotal > 1) {
      int j;
      String pathFull="String_Node_Str";
      DiffParser dp=new DiffParser(args);
      String path=bundle.getString(bundle.getString("String_Node_Str"));
      System.out.print("String_Node_Str");
      for (i=0; i < args.length; i++) {
        System.out.print("String_Node_Str" + args[i].substring(args[i].lastIndexOf('/')));
      }
      System.out.println("String_Node_Str");
      for (i=0; i < revisionsToo.length - 1; i++) {
        System.out.print("String_Node_Str" + revisionsToo[i] + "String_Node_Str");
        for (j=0; j < args.length; j++) {
          pathFull=path + args[j] + "String_Node_Str";
          Process exec=Runtime.getRuntime().exec("String_Node_Str" + revisionsToo[i].split("String_Node_Str")[0] + "String_Node_Str"+ revisionsToo[i].split("String_Node_Str")[1]+ "String_Node_Str"+ pathFull);
          dp.diffOut(exec);
        }
        System.out.println("String_Node_Str");
      }
    }
  }
  if (bundle.getString("String_Node_Str").equals("String_Node_Str") || bundle.getString("String_Node_Str").equals("String_Node_Str") || bundle.getString("String_Node_Str").equals("String_Node_Str") | bundle.getString("String_Node_Str").equals("String_Node_Str")) {
    System.out.println("String_Node_Str");
  }
}