Program: 24125
Project: 24125
Buggy source:
private void checkFragments() throws Exception {
  List<String> errors=new ArrayList<String>();
  StringBuilder s=new StringBuilder();
  s.append("String_Node_Str");
  int i=0;
  for (  Fragment f : fragments) {
    s.append("String_Node_Str" + Integer.toString(i) + "String_Node_Str"+ f.getPage()+ "String_Node_Str"+ f.getType()+ "String_Node_Str");
    s.append(f.getXml());
    s.append("String_Node_Str");
    i++;
  }
  s.append("String_Node_Str");
  String err=javaReferencePlatform.checkFragments(page.getFolders().dstDir,s.toString(),false);
  if (err == null)   throw new Exception("String_Node_Str");
  if (!err.startsWith("String_Node_Str"))   throw new Exception(err);
  DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
  DocumentBuilder builder=factory.newDocumentBuilder();
  Document errDoc=builder.parse(new ByteArrayInputStream(err.getBytes()));
  Element result=XMLUtil.getFirstChild(errDoc.getDocumentElement());
  while (result != null) {
    String id=result.getAttribute("String_Node_Str");
    String outcome=result.getAttribute("String_Node_Str");
    if (!"String_Node_Str".equals(outcome)) {
      Fragment f=fragments.get(Integer.parseInt(id));
      String msg="String_Node_Str" + f.getPage() + "String_Node_Str"+ result.getAttribute("String_Node_Str")+ "String_Node_Str"+ f.getXml();
      page.log(msg,LogMessageType.Error);
      page.log("String_Node_Str",LogMessageType.Error);
      errors.add(msg);
    }
    result=XMLUtil.getNextSibling(result);
  }
  if (errors.size() > 0)   throw new Exception("String_Node_Str");
}

Fixed version (ground truth):
private void checkFragments() throws Exception {
  List<String> errors=new ArrayList<String>();
  StringBuilder s=new StringBuilder();
  s.append("String_Node_Str");
  int i=0;
  for (  Fragment f : fragments) {
    s.append("String_Node_Str").append(Integer.toString(i)).append("String_Node_Str").append(f.getPage()).append("String_Node_Str").append(f.getType()).append("String_Node_Str");
    s.append(f.getXml());
    s.append("String_Node_Str");
    i++;
  }
  s.append("String_Node_Str");
  String err=javaReferencePlatform.checkFragments(page.getFolders().dstDir,s.toString(),false);
  if (err == null)   throw new Exception("String_Node_Str");
  if (!err.startsWith("String_Node_Str"))   throw new Exception(err);
  DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
  DocumentBuilder builder=factory.newDocumentBuilder();
  Document errDoc=builder.parse(new ByteArrayInputStream(err.getBytes()));
  Element result=XMLUtil.getFirstChild(errDoc.getDocumentElement());
  while (result != null) {
    String id=result.getAttribute("String_Node_Str");
    String outcome=result.getAttribute("String_Node_Str");
    if (!"String_Node_Str".equals(outcome)) {
      Fragment f=fragments.get(Integer.parseInt(id));
      String msg="String_Node_Str" + f.getPage() + "String_Node_Str"+ result.getAttribute("String_Node_Str")+ "String_Node_Str"+ f.getXml();
      page.log(msg,LogMessageType.Error);
      page.log("String_Node_Str",LogMessageType.Error);
      errors.add(msg);
    }
    result=XMLUtil.getNextSibling(result);
  }
  if (errors.size() > 0)   throw new Exception("String_Node_Str");
}