Program: 45160
Project: 45160
Buggy source:
@Override public ChangeLogSet<? extends Entry> parse(AbstractBuild build,File changelogFile) throws IOException, SAXException {
  SurroundSCMChangeLogSet cls=new SurroundSCMChangeLogSet(build);
  String line=null;
  BufferedReader br=null;
  boolean foundAnItem=false;
  try {
    br=new BufferedReader(new FileReader(changelogFile));
    while ((line=br.readLine()) != null) {
      if (!foundAnItem) {
        foundAnItem=true;
        continue;
      }
      if (line.startsWith("String_Node_Str"))       break;
      int end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String path=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String name=line.substring(1,end);
      line=line.substring(end + 1);
      name=path.concat("String_Node_Str").concat(name);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String version=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String action=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String date=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String comment=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String userName=line.substring(1,end);
      line=line.substring(end + 1);
      SurroundSCMChangeLogSetEntry next=new SurroundSCMChangeLogSetEntry(name,comment,version,action,date,cls,userName);
      if (!cls.addEntry(next))       break;
    }
  }
 catch (  FileNotFoundException e) {
    e.printStackTrace();
  }
 finally {
    if (br != null)     br.close();
  }
  return cls;
}

Fixed version (ground truth):
@Override public ChangeLogSet<? extends Entry> parse(AbstractBuild build,File changelogFile) throws IOException, SAXException {
  SurroundSCMChangeLogSet cls=new SurroundSCMChangeLogSet(build);
  String line=null;
  BufferedReader br=null;
  boolean foundAnItem=false;
  InputStreamReader is=new InputStreamReader(new FileInputStream(changelogFile),"String_Node_Str");
  try {
    br=new BufferedReader(is);
    while ((line=br.readLine()) != null) {
      if (!foundAnItem) {
        foundAnItem=true;
        continue;
      }
      if (line.startsWith("String_Node_Str"))       break;
      int end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String path=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String name=line.substring(1,end);
      line=line.substring(end + 1);
      name=path.concat("String_Node_Str").concat(name);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String version=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String action=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String date=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String comment=line.substring(1,end);
      line=line.substring(end + 1);
      end=line.indexOf("String_Node_Str");
      if (end <= 0)       break;
      String userName=line.substring(1,end);
      line=line.substring(end + 1);
      SurroundSCMChangeLogSetEntry next=new SurroundSCMChangeLogSetEntry(name,comment,version,action,date,cls,userName);
      if (!cls.addEntry(next))       break;
    }
  }
 catch (  FileNotFoundException e) {
    e.printStackTrace();
  }
 finally {
    if (br != null)     br.close();
  }
  return cls;
}