Program: 24155
Project: 24155
Buggy source:
String processProfileIncludes(String filename,ProfileDefn profile,String xml,String tx,String src,String example,String intro,String notes,String master,String pagePath,ProfileStructureComponent structure,String basefilename,Map<String,Example> examples) throws Exception {
  String wikilink="String_Node_Str" + prepWikiName(filename) + "String_Node_Str";
  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 + profileHeader(basefilename,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")) {
      wikilink=com[1];
      src=s1 + 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 + wikilink + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + pageHeader(profile.metadata("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 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (workingTitle == null ? Utilities.escapeXml(Utilities.escapeXml(profile.metadata("String_Node_Str"))) : workingTitle) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.escapeXml(profile.metadata("String_Node_Str")) + 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 (!Utilities.noString(profile.metadata("String_Node_Str"))) {
        Date d=new SimpleDateFormat("String_Node_Str").parse(profile.metadata("String_Node_Str"));
        src=s1 + Config.DATE_FORMAT().format(d) + 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 + profile.metadata("String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (intro == null ? profile.metadata("String_Node_Str") : intro) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (notes == null ? "String_Node_Str" : notes) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + describeStatus(profile.metadata("String_Node_Str")) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + profile.metadata("String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + xml + s3;
 else     if (com[0].equals("String_Node_Str")) {
      src=s1 + "String_Node_Str" + ProfileUtilities.summarise(profile.getSource(),this)+ s3;
    }
 else     if (com[0].equals("String_Node_Str"))     src=s1 + tx + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (profile.getResources().size() == 0 ? "String_Node_Str" : genProfileConstraints(profile.getResources().get(0))) + 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,(master == null ? "String_Node_Str" : "String_Node_Str" + master),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 + generateProfileExtensionsTable(profile,filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + generateProfileConstraintLinks(profile,filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + pagePath + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + profile.getSource().getUrlSimple() + 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 + baseLink(structure) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + generateProfileStructureTable(profile,structure,true,filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + generateProfileStructureTable(profile,structure,false,filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + mapOnPageProfile(profile.getSource()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + definitionsOnPageProfile(profile.getSource()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + mappingsProfile(profile.getSource()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + definitionsProfile(profile.getSource()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + profileExampleList(profile,examples,example) + s3;
 else     if (com[0].equals("String_Node_Str")) {
      src=s1 + "String_Node_Str" + profile.metadata("String_Node_Str")+ s3;
    }
 else     throw new Exception("String_Node_Str" + s2 + "String_Node_Str"+ filename);
  }
  return src;
}

Fixed version (ground truth):
String processProfileIncludes(String filename,ProfileDefn profile,String xml,String tx,String src,String example,String intro,String notes,String master,String pagePath,ProfileStructureComponent structure,String basefilename,Map<String,Example> examples) throws Exception {
  String wikilink="String_Node_Str" + prepWikiName(filename) + "String_Node_Str";
  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 + profileHeader(basefilename,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")) {
      wikilink=com[1];
      src=s1 + 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 + wikilink + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + pageHeader(profile.metadata("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 + TextFile.fileToString(folders.srcDir + "String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (workingTitle == null ? Utilities.escapeXml(Utilities.escapeXml(profile.metadata("String_Node_Str"))) : workingTitle) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + Utilities.escapeXml(profile.metadata("String_Node_Str")) + 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 (!Utilities.noString(profile.metadata("String_Node_Str"))) {
        Date d=new SimpleDateFormat("String_Node_Str").parse(profile.metadata("String_Node_Str"));
        src=s1 + Config.DATE_FORMAT().format(d) + 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 + profile.metadata("String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (intro == null ? profile.metadata("String_Node_Str") : intro) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (notes == null ? "String_Node_Str" : notes) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + describeStatus(profile.metadata("String_Node_Str")) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + profile.metadata("String_Node_Str") + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + xml + s3;
 else     if (com[0].equals("String_Node_Str")) {
      src=s1 + "String_Node_Str" + ProfileUtilities.summarise(profile.getSource(),this)+ s3;
    }
 else     if (com[0].equals("String_Node_Str"))     src=s1 + tx + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + (profile.getResources().size() == 0 ? "String_Node_Str" : genProfileConstraints(profile.getResources().get(0))) + 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,(master == null ? "String_Node_Str" : "String_Node_Str" + master),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 + generateProfileExtensionsTable(profile,filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + generateProfileConstraintLinks(profile,filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + pagePath + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + profile.getSource().getUrlSimple() + 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 + baseLink(structure) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + generateProfileStructureTable(profile,structure,true,filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + generateProfileStructureTable(profile,structure,false,filename) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + mapOnPageProfile(profile.getSource()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + definitionsOnPageProfile(profile.getSource()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + mappingsProfile(profile.getSource()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + definitionsProfile(profile.getSource()) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + profileExampleList(profile,examples,example) + s3;
 else     if (com[0].equals("String_Node_Str"))     src=s1 + profileReviewLink(profile) + s3;
 else     if (com[0].equals("String_Node_Str")) {
      src=s1 + "String_Node_Str" + profile.metadata("String_Node_Str")+ s3;
    }
 else     throw new Exception("String_Node_Str" + s2 + "String_Node_Str"+ filename);
  }
  return src;
}