Program: 24117
Project: 24117
Buggy source:
public String processExtensionIncludes(String filename,ExtensionDefinition ed,String xml,String tx,String src,String pagePath) throws Exception {
  String workingTitle=null;
  while (src.contains("String_Node_Str") || src.contains("String_Node_Str")) {
    int i1=src.indexOf("String_Node_Str");
    int i2=src.indexOf("String_Node_Str");
    if (i1 == -1) {
      i1=src.indexOf("String_Node_Str");
      i2=src.indexOf("String_Node_Str");
    }
    String s1=src.substring(0,i1);
    String s2=src.substring(i1 + 2,i2).trim();
    String s3=src.substring(i2 + 2);
    String[] com=s2.split("String_Node_Str");
    if (com[0].equals("String_Node_Str"))     src=s1 + generateSideBar(com.length > 1 ? com[1] : "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + com[1] + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + extDefnHeader(filename,com.length > 1 ? com[1] : null) + s3;
 else     if (com[0].equals("String_Node_Str")) {
      workingTitle=s2.substring(9).replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str");
      src=s1 + s3;
    }
 else     if (com.length != 1)     throw new Exception("String_Node_Str" + s2 + "String_Node_Str"+ filename);
 else     if (com[0].equals("String_Node_Str"))     src=s1 + pageHeader(ed.getName()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (workingTitle == null ? Utilities.escapeXml(ed.getName()) : workingTitle) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.escapeXml(ed.getName()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (filename.contains("String_Node_Str") ? filename.substring(0,filename.lastIndexOf("String_Node_Str")) : filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + filename + s3;
 else     if (com[0].equals("String_Node_Str")) {
      if (ed.getDate() != null)       src=s1 + ed.getDate().toHumanDisplay() + s3;
 else       src=s1 + "String_Node_Str" + s3;
    }
 else     if (com[0].equals("String_Node_Str"))     src=s1 + ini.getStringProperty("String_Node_Str","String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Config.DATE_FORMAT().format(new Date()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + ed.getDescription() + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (ed.getStatus() == null ? "String_Node_Str" : ed.getStatus().toCode()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + ed.getPublisher() + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + xml + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + tx + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + genExtensionConstraints(ed) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.pluralizeMe(filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + "String_Node_Str" + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + "String_Node_Str" + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + breadCrumbManager.make(filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + breadCrumbManager.navlist(filename,genlevel(0)) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + breadCrumbManager.makelist(filename,"String_Node_Str" + ed.getName(),genlevel(0)) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + new SimpleDateFormat("String_Node_Str").format(new Date()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + svnRevision + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + genlevel(0) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + publicationType + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + publicationNotice + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + pagePath + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + ed.getUrl() + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.URLEncode(pagePath) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.URLEncode(baseURL) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + mappingsExtension(ed) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + definitionsExtension(ed) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + ed.getPublisher() + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + "String_Node_Str" + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + generateExtensionTable(ed,filename) + s3;
 else     throw new Exception("String_Node_Str" + s2 + "String_Node_Str"+ filename);
  }
  return src;
}

Fixed version (ground truth):
public String processExtensionIncludes(String filename,ExtensionDefinition ed,String xml,String tx,String src,String pagePath) throws Exception {
  String workingTitle=null;
  while (src.contains("String_Node_Str") || src.contains("String_Node_Str")) {
    int i1=src.indexOf("String_Node_Str");
    int i2=src.indexOf("String_Node_Str");
    if (i1 == -1) {
      i1=src.indexOf("String_Node_Str");
      i2=src.indexOf("String_Node_Str");
    }
    String s1=src.substring(0,i1);
    String s2=src.substring(i1 + 2,i2).trim();
    String s3=src.substring(i2 + 2);
    String[] com=s2.split("String_Node_Str");
    if (com[0].equals("String_Node_Str"))     src=s1 + generateSideBar(com.length > 1 ? com[1] : "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + com[1] + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + extDefnHeader(filename,com.length > 1 ? com[1] : null) + s3;
 else     if (com[0].equals("String_Node_Str")) {
      workingTitle=s2.substring(9).replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str");
      src=s1 + s3;
    }
 else     if (com.length != 1)     throw new Exception("String_Node_Str" + s2 + "String_Node_Str"+ filename);
 else     if (com[0].equals("String_Node_Str"))     src=s1 + pageHeader(ed.getName()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (workingTitle == null ? Utilities.escapeXml(ed.getName()) : workingTitle) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.escapeXml(ed.getName()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (filename.contains("String_Node_Str") ? filename.substring(0,filename.lastIndexOf("String_Node_Str")) : filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + filename + s3;
 else     if (com[0].equals("String_Node_Str")) {
      if (ed.getDate() != null)       src=s1 + ed.getDate().toHumanDisplay() + s3;
 else       src=s1 + "String_Node_Str" + s3;
    }
 else     if (com[0].equals("String_Node_Str"))     src=s1 + ini.getStringProperty("String_Node_Str","String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Config.DATE_FORMAT().format(new Date()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Processor.process(Utilities.escapeXml(ed.getDescription())) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (ed.getStatus() == null ? "String_Node_Str" : ed.getStatus().toCode()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + ed.getPublisher() + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + xml + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + tx + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + genExtensionConstraints(ed) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.pluralizeMe(filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + "String_Node_Str" + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + "String_Node_Str" + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + breadCrumbManager.make(filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + breadCrumbManager.navlist(filename,genlevel(0)) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + breadCrumbManager.makelist(filename,"String_Node_Str" + ed.getName(),genlevel(0)) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + new SimpleDateFormat("String_Node_Str").format(new Date()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + svnRevision + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + genlevel(0) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + publicationType + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + publicationNotice + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + pagePath + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + ed.getUrl() + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.URLEncode(pagePath) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.URLEncode(baseURL) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + mappingsExtension(ed) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + definitionsExtension(ed) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + ed.getPublisher() + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + "String_Node_Str" + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + generateExtensionTable(ed,filename) + s3;
 else     throw new Exception("String_Node_Str" + s2 + "String_Node_Str"+ filename);
  }
  return src;
}