Program: 62952
Project: 62952
Buggy source:
public void run(){
  String jsonString="String_Node_Str";
  try {
    jsonString=Common.readFile(Common.TEST_DATA_FOLDER + "String_Node_Str" + runningDataSourceFile);
  }
 catch (  FileNotFoundException e1) {
    e1.printStackTrace();
  }
  data=gson.fromJson(jsonString,DataBundle.class);
  try {
    results=importReportFile(reportFilePath);
  }
 catch (  IOException e1) {
    e1.printStackTrace();
  }
  for (int i=0; i < NUM_OF_RUNS; i++) {
    bi=BrowserInstancePool.getBrowserInstance();
    Method[] methods=PerformanceProfiler.class.getMethods();
    for (    Method method : methods) {
      if (method.isAnnotationPresent(PerformanceTest.class)) {
        PerformanceTest test=method.getAnnotation(PerformanceTest.class);
        String name=test.name();
        boolean customTimer=test.customTimer();
        Type type=method.getReturnType();
        if (!results.containsKey(name)) {
          results.put(name,new ArrayList<Float>());
        }
        try {
          float duration=0;
          if (type.equals(String.class) && customTimer == false) {
            long startTime=System.nanoTime();
            Object retVal=(String)method.invoke(this);
            long endTime=System.nanoTime();
            duration=(float)((endTime - startTime) / 1000000.0);
            System.out.print("String_Node_Str" + name + "String_Node_Str"+ duration+ "String_Node_Str"+ retVal.toString()+ "String_Node_Str");
          }
 else           if (type.equals(Long.class) && customTimer == true) {
            duration=(float)(((Long)(method.invoke(this))) / 1000000.0);
            System.out.print("String_Node_Str" + name + "String_Node_Str"+ duration+ "String_Node_Str");
          }
          ArrayList<Float> countList=results.get(name);
          countList.add(duration);
        }
 catch (        Exception e) {
          System.out.print(e.toString());
        }
        try {
          Thread.sleep(WAIT_TIME_TEST);
        }
 catch (        InterruptedException e) {
          e.printStackTrace();
        }
      }
    }
    BrowserInstancePool.release(bi);
    try {
      Thread.sleep(WAIT_TIME_RUN);
    }
 catch (    InterruptedException e) {
      e.printStackTrace();
    }
  }
  try {
    printResult(reportFilePath);
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
  System.out.print("String_Node_Str");
}

Fixed version (ground truth):
public void run(){
  String jsonString="String_Node_Str";
  try {
    jsonString=Common.readFile(Common.TEST_DATA_FOLDER + "String_Node_Str" + runningDataSourceFile);
  }
 catch (  FileNotFoundException e1) {
    e1.printStackTrace();
  }
  data=gson.fromJson(jsonString,DataBundle.class);
  try {
    results=importReportFile(reportFilePath);
  }
 catch (  IOException e1) {
    e1.printStackTrace();
  }
  for (int i=0; i < NUM_OF_RUNS; i++) {
    bi=BrowserInstancePool.getBrowserInstance();
    Method[] methods=PerformanceProfiler.class.getMethods();
    for (    Method method : methods) {
      performMethod(method);
    }
    BrowserInstancePool.release(bi);
    try {
      Thread.sleep(WAIT_TIME_RUN);
    }
 catch (    InterruptedException e) {
      e.printStackTrace();
    }
  }
  try {
    printResult(reportFilePath);
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
  System.out.print("String_Node_Str");
}