Program: 93026
Project: 93026
Buggy source:
/** 
 * Run this method when there are no more error messages to handle.  Creates the error pop-up message and writes to log.
 */
public void finishHandling(){
  if (!isErrorRecognized()) {
    errorMessage+=Messages.getString("String_Node_Str") + Messages.getString("String_Node_Str");
  }
  writeToLog();
  if (mismatchedProbePoints) {
    StringBuffer resultFileContent=new StringBuffer();
    String fileLocation=PluginConstants.DEFAULT_OUTPUT + "String_Node_Str";
    String line;
    boolean skip=false;
    int counter=0;
    File file=new File(fileLocation);
    try {
      BufferedReader buff=new BufferedReader(new FileReader(file));
      while ((line=buff.readLine()) != null) {
        skip=false;
        for (        String func : functions) {
          if (line.contains("String_Node_Str" + func + "String_Node_Str")) {
            counter++;
            System.out.println("String_Node_Str" + counter);
            skip=true;
            break;
          }
        }
        if (!skip && !line.equals("String_Node_Str")) {
          resultFileContent.append(line);
          resultFileContent.append("String_Node_Str");
        }
      }
      buff.close();
      BufferedWriter wbuff=new BufferedWriter(new FileWriter(file));
      wbuff.write(resultFileContent.toString());
      wbuff.close();
    }
 catch (    FileNotFoundException e) {
      e.printStackTrace();
    }
catch (    IOException e) {
      e.printStackTrace();
    }
  }
 else {
    SystemTapUIErrorMessages mes=new SystemTapUIErrorMessages(Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"),errorMessage);
    mes.schedule();
  }
}

Fixed version (ground truth):
/** 
 * Run this method when there are no more error messages to handle.  Creates the error pop-up message and writes to log.
 */
public void finishHandling(){
  if (!isErrorRecognized()) {
    errorMessage+=Messages.getString("String_Node_Str") + Messages.getString("String_Node_Str");
  }
  writeToLog();
  if (mismatchedProbePoints) {
    StringBuffer resultFileContent=new StringBuffer();
    String fileLocation=PluginConstants.DEFAULT_OUTPUT + "String_Node_Str";
    String line;
    boolean skip=false;
    File file=new File(fileLocation);
    try {
      BufferedReader buff=new BufferedReader(new FileReader(file));
      while ((line=buff.readLine()) != null) {
        skip=false;
        for (        String func : functions) {
          if (line.contains("String_Node_Str" + func + "String_Node_Str")) {
            skip=true;
            break;
          }
        }
        if (!skip && !line.equals("String_Node_Str")) {
          resultFileContent.append(line);
          resultFileContent.append("String_Node_Str");
        }
      }
      buff.close();
      BufferedWriter wbuff=new BufferedWriter(new FileWriter(file));
      wbuff.write(resultFileContent.toString());
      wbuff.close();
    }
 catch (    FileNotFoundException e) {
      e.printStackTrace();
    }
catch (    IOException e) {
      e.printStackTrace();
    }
  }
 else {
    SystemTapUIErrorMessages mes=new SystemTapUIErrorMessages(Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"),errorMessage);
    mes.schedule();
  }
}