Program: 24145
Project: 24145
Buggy source:
public String makelist(String name,String type,String prefix) throws Exception {
  StringBuilder b=new StringBuilder();
  if (name.equals("String_Node_Str")) {
    b.append("String_Node_Str");
  }
 else {
    b.append("String_Node_Str" + prefix + "String_Node_Str"+ translations.getMessage("String_Node_Str","String_Node_Str")+ "String_Node_Str");
    name=name + "String_Node_Str";
    if (map.containsKey(name)) {
      String[] path=map.get(name).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length - 1; i++) {
        focus=getChild(focus,path[i]);
        b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      focus=getChild(focus,path[path.length - 1]);
      b.append("String_Node_Str" + focus.getTitle() + "String_Node_Str");
    }
 else     if (map.containsKey(type)) {
      String[] path=map.get(type).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length - 1; i++) {
        focus=getChild(focus,path[i]);
        b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str" + Utilities.fileTitle(name) + "String_Node_Str");
    }
 else     if (type.equals("String_Node_Str") && name.contains("String_Node_Str") && map.containsKey(name.substring(0,name.indexOf("String_Node_Str")))) {
      String[] path=map.get(name.substring(0,name.indexOf("String_Node_Str"))).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str");
    }
 else     if (type.startsWith("String_Node_Str") && type.contains("String_Node_Str")) {
      String[] path=map.get(type.substring(type.indexOf("String_Node_Str") + 1).toLowerCase()).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      if (type.startsWith("String_Node_Str"))       b.append("String_Node_Str");
 else       b.append("String_Node_Str");
    }
 else     if (type.startsWith("String_Node_Str") && type.contains("String_Node_Str")) {
      String[] path=map.get(type.substring(type.indexOf("String_Node_Str") + 1).toLowerCase()).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str");
    }
 else     if (type.equals("String_Node_Str") && name.contains("String_Node_Str")) {
      String[] path=map.get("String_Node_Str").split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str" + prefix + name.substring(0,name.indexOf("String_Node_Str"))+ "String_Node_Str"+ name.substring(0,name.indexOf("String_Node_Str"))+ "String_Node_Str");
      b.append("String_Node_Str");
    }
 else     if (type.equals("String_Node_Str") && name.contains("String_Node_Str")) {
      String[] path=map.get("String_Node_Str").split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str");
    }
 else     if (type.startsWith("String_Node_Str") && map.containsKey(Utilities.fileTitle(name))) {
      String[] path=map.get(Utilities.fileTitle(name)).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length - 1; i++) {
        focus=getChild(focus,path[i]);
        b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      focus=getChild(focus,path[path.length - 1]);
      if (type.equals("String_Node_Str")) {
        b.append("String_Node_Str" + focus.getResource() + "String_Node_Str");
      }
 else {
        b.append("String_Node_Str" + focus.getResource().toLowerCase() + "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
        b.append("String_Node_Str" + type.substring(4) + "String_Node_Str");
      }
    }
 else     if (type.startsWith("String_Node_Str")) {
      String[] path=map.get(type.substring(type.indexOf("String_Node_Str") + 1).toLowerCase()).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str" + Utilities.fileTitle(name) + "String_Node_Str");
    }
 else     if (type.startsWith("String_Node_Str")) {
      String[] path=map.get("String_Node_Str").split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str");
    }
 else {
      String t=type.substring(type.lastIndexOf("String_Node_Str") + 1);
      if (t == null)       throw new Exception("String_Node_Str" + type);
      String obj=map.get(t.toLowerCase());
      if (obj == null)       throw new Exception("String_Node_Str" + type);
      if (type.startsWith("String_Node_Str")) {
        String[] path=obj.split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length; i++) {
          focus=getChild(focus,path[i]);
          if (focus.type == PageType.resource)           b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else           b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=obj.split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length; i++) {
          focus=getChild(focus,path[i]);
          if (focus.type == PageType.resource)           b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else           b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str" + prefix + Utilities.fileTitle(name)+ "String_Node_Str"+ Utilities.fileTitle(name)+ "String_Node_Str");
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=map.get("String_Node_Str").split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length; i++) {
          focus=getChild(focus,path[i]);
          if (focus.type == PageType.resource)           b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else           b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=map.get("String_Node_Str").split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length - 1; i++) {
          focus=getChild(focus,path[i]);
          b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str" + Utilities.fileTitle(name) + "String_Node_Str");
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=map.get("String_Node_Str").split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length - 1; i++) {
          focus=getChild(focus,path[i]);
          b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str" + Utilities.fileTitle(name.substring(3)) + "String_Node_Str");
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=map.get("String_Node_Str").split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length - 1; i++) {
          focus=getChild(focus,path[i]);
          b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str" + prefix + "String_Node_Str");
        b.append("String_Node_Str" + prefix + "String_Node_Str");
        b.append("String_Node_Str" + type.substring(4) + "String_Node_Str");
      }
 else {
        b.append("String_Node_Str" + name + "String_Node_Str"+ type+ "String_Node_Str");
      }
    }
  }
  b.append("String_Node_Str" + name + "String_Node_Str"+ type+ "String_Node_Str");
  return b.toString();
}

Fixed version (ground truth):
public String makelist(String name,String type,String prefix) throws Exception {
  StringBuilder b=new StringBuilder();
  if (name.equals("String_Node_Str")) {
    b.append("String_Node_Str");
  }
 else {
    b.append("String_Node_Str" + prefix + "String_Node_Str"+ translations.getMessage("String_Node_Str","String_Node_Str")+ "String_Node_Str");
    name=name + "String_Node_Str";
    if (map.containsKey(name)) {
      String[] path=map.get(name).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length - 1; i++) {
        focus=getChild(focus,path[i]);
        b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      focus=getChild(focus,path[path.length - 1]);
      b.append("String_Node_Str" + focus.getTitle() + "String_Node_Str");
    }
 else     if (map.containsKey(type)) {
      String[] path=map.get(type).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length - 1; i++) {
        focus=getChild(focus,path[i]);
        b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str" + Utilities.fileTitle(name) + "String_Node_Str");
    }
 else     if (type.equals("String_Node_Str") && name.contains("String_Node_Str") && map.containsKey(name.substring(0,name.indexOf("String_Node_Str")))) {
      String[] path=map.get(name.substring(0,name.indexOf("String_Node_Str"))).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str");
    }
 else     if (type.startsWith("String_Node_Str") && type.contains("String_Node_Str")) {
      String[] path=map.get(type.substring(type.indexOf("String_Node_Str") + 1).toLowerCase()).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      if (type.startsWith("String_Node_Str"))       b.append("String_Node_Str");
 else       b.append("String_Node_Str");
    }
 else     if (type.startsWith("String_Node_Str") && type.contains("String_Node_Str")) {
      String[] path=map.get(type.substring(type.indexOf("String_Node_Str") + 1).toLowerCase()).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str");
    }
 else     if (type.equals("String_Node_Str") && name.contains("String_Node_Str")) {
      String[] path=map.get("String_Node_Str").split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str" + prefix + name.substring(0,name.indexOf("String_Node_Str"))+ "String_Node_Str"+ name.substring(0,name.indexOf("String_Node_Str"))+ "String_Node_Str");
      b.append("String_Node_Str");
    }
 else     if (type.equals("String_Node_Str") && name.contains("String_Node_Str")) {
      String[] path=map.get("String_Node_Str").split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str");
    }
 else     if (type.startsWith("String_Node_Str") && map.containsKey(Utilities.fileTitle(name))) {
      String[] path=map.get(Utilities.fileTitle(name)).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length - 1; i++) {
        focus=getChild(focus,path[i]);
        b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      focus=getChild(focus,path[path.length - 1]);
      if (type.equals("String_Node_Str")) {
        b.append("String_Node_Str" + focus.getResource() + "String_Node_Str");
      }
 else {
        b.append("String_Node_Str" + focus.getResource().toLowerCase() + "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
        b.append("String_Node_Str" + type.substring(4) + "String_Node_Str");
      }
    }
 else     if (type.startsWith("String_Node_Str")) {
      String[] path=map.get(type.substring(type.indexOf("String_Node_Str") + 1).toLowerCase()).split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str" + Utilities.fileTitle(name) + "String_Node_Str");
    }
 else     if (type.startsWith("String_Node_Str")) {
      String[] path=map.get("String_Node_Str").split("String_Node_Str");
      Page focus=home;
      for (int i=0; i < path.length; i++) {
        focus=getChild(focus,path[i]);
        if (focus.type == PageType.resource)         b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else         b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
      }
      b.append("String_Node_Str");
    }
 else     if (type.startsWith("String_Node_Str")) {
      String t=type.substring(type.lastIndexOf("String_Node_Str") + 1);
      if (t == null)       throw new Exception("String_Node_Str" + type);
      String obj=map.get(t.toLowerCase());
      if (obj == null)       throw new Exception("String_Node_Str" + t);
      if (type.startsWith("String_Node_Str")) {
        String[] path=obj.split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length; i++) {
          focus=getChild(focus,path[i]);
          if (focus.type == PageType.resource)           b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else           b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=obj.split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length; i++) {
          focus=getChild(focus,path[i]);
          if (focus.type == PageType.resource)           b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else           b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str" + prefix + Utilities.fileTitle(name)+ "String_Node_Str"+ Utilities.fileTitle(name)+ "String_Node_Str");
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=map.get("String_Node_Str").split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length; i++) {
          focus=getChild(focus,path[i]);
          if (focus.type == PageType.resource)           b.append("String_Node_Str" + prefix + focus.getResource().toLowerCase()+ "String_Node_Str"+ focus.getResource()+ "String_Node_Str");
 else           b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=map.get("String_Node_Str").split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length - 1; i++) {
          focus=getChild(focus,path[i]);
          b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str" + Utilities.fileTitle(name) + "String_Node_Str");
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=map.get("String_Node_Str").split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length - 1; i++) {
          focus=getChild(focus,path[i]);
          b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str" + Utilities.fileTitle(name.substring(3)) + "String_Node_Str");
        b.append("String_Node_Str");
      }
 else       if (type.startsWith("String_Node_Str")) {
        String[] path=map.get("String_Node_Str").split("String_Node_Str");
        Page focus=home;
        for (int i=0; i < path.length - 1; i++) {
          focus=getChild(focus,path[i]);
          b.append("String_Node_Str" + prefix + focus.getFilename()+ "String_Node_Str"+ focus.getTitle()+ "String_Node_Str");
        }
        b.append("String_Node_Str" + prefix + "String_Node_Str");
        b.append("String_Node_Str" + prefix + "String_Node_Str");
        b.append("String_Node_Str" + type.substring(4) + "String_Node_Str");
      }
 else {
        b.append("String_Node_Str" + name + "String_Node_Str"+ type+ "String_Node_Str");
      }
    }
  }
  b.append("String_Node_Str" + name + "String_Node_Str"+ type+ "String_Node_Str");
  return b.toString();
}