Program: 26020
Project: 26020
Buggy source:
protected String toJsonP(boolean pretty,String indent,String... attrs){
  List<String> attrList=Arrays.asList(attrs);
  Collections.sort(attrList);
  StringWriter sw=new StringWriter();
  sw.write(indent + "String_Node_Str" + (pretty ? "String_Node_Str" + indent : "String_Node_Str"));
  List<String> attributeStrings=new ArrayList<String>();
  if (attrList.size() == 0) {
    for (    String name : attributes.keySet()) {
      String val=getString(name);
      val=val == null ? val : val.replaceAll("String_Node_Str","String_Node_Str");
      attributeStrings.add((pretty ? "String_Node_Str" + indent : "String_Node_Str") + "String_Node_Str" + name+ "String_Node_Str"+ val+ "String_Node_Str");
    }
  }
 else {
    for (    String name : attrList) {
      String val=getString(name);
      val=val == null ? val : val.replaceAll("String_Node_Str","String_Node_Str");
      attributeStrings.add((pretty ? "String_Node_Str" + indent : "String_Node_Str") + "String_Node_Str" + name+ "String_Node_Str"+ val+ "String_Node_Str");
    }
  }
  sw.write(Util.join(attributeStrings,"String_Node_Str"));
  if (cachedChildren != null && cachedChildren.size() > 0) {
    sw.write("String_Node_Str" + (pretty ? "String_Node_Str" + indent : "String_Node_Str") + "String_Node_Str");
    for (    Class childClass : cachedChildren.keySet()) {
      String name=Inflector.pluralize(childClass.getSimpleName()).toLowerCase();
      sw.write((pretty ? "String_Node_Str" + indent + "String_Node_Str" : "String_Node_Str") + "String_Node_Str" + name+ "String_Node_Str");
      List<String> childrenList=new ArrayList<String>();
      for (      Model child : cachedChildren.get(childClass)) {
        childrenList.add((pretty ? "String_Node_Str" + indent : "String_Node_Str") + child.toJsonP(pretty,(pretty ? indent + "String_Node_Str" : "String_Node_Str")));
      }
      sw.write(Util.join(childrenList,"String_Node_Str"));
      sw.write((pretty ? "String_Node_Str" + indent + indent : "String_Node_Str") + "String_Node_Str");
    }
    sw.write((pretty ? "String_Node_Str" + indent + indent : "String_Node_Str") + "String_Node_Str");
  }
  beforeClosingBrace(pretty,pretty ? "String_Node_Str" + indent : "String_Node_Str",sw);
  sw.write((pretty ? "String_Node_Str" + indent : "String_Node_Str") + "String_Node_Str");
  return sw.toString();
}

Fixed version (ground truth):
protected String toJsonP(boolean pretty,String indent,String... attrs){
  Collection<String> attrList=Arrays.asList(attrs);
  StringWriter sw=new StringWriter();
  sw.write(indent + "String_Node_Str" + (pretty ? "String_Node_Str" + indent : "String_Node_Str"));
  List<String> attributeStrings=new ArrayList<String>();
  if (attrList.size() == 0) {
    attrList=attributes.keySet();
  }
  for (  String name : attrList) {
    Object v=get(name);
    String val=null;
    if (v == null) {
      val="String_Node_Str";
    }
 else     if (v instanceof Number || v instanceof Boolean) {
      val=v.toString();
    }
 else     if (v instanceof Date) {
      val="String_Node_Str" + isoDateFormater.format((Date)v) + "String_Node_Str";
    }
 else {
      val="String_Node_Str" + v.toString().replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str").replaceAll("String_Node_Str","String_Node_Str") + "String_Node_Str";
    }
    attributeStrings.add((pretty ? "String_Node_Str" + indent : "String_Node_Str") + "String_Node_Str" + name+ "String_Node_Str"+ val+ "String_Node_Str");
  }
  sw.write(Util.join(attributeStrings,"String_Node_Str"));
  if (cachedChildren != null && cachedChildren.size() > 0) {
    sw.write("String_Node_Str" + (pretty ? "String_Node_Str" + indent : "String_Node_Str") + "String_Node_Str");
    for (    Class childClass : cachedChildren.keySet()) {
      String name=Inflector.pluralize(childClass.getSimpleName()).toLowerCase();
      sw.write((pretty ? "String_Node_Str" + indent + "String_Node_Str" : "String_Node_Str") + "String_Node_Str" + name+ "String_Node_Str");
      List<String> childrenList=new ArrayList<String>();
      for (      Model child : cachedChildren.get(childClass)) {
        childrenList.add((pretty ? "String_Node_Str" + indent : "String_Node_Str") + child.toJsonP(pretty,(pretty ? indent + "String_Node_Str" : "String_Node_Str")));
      }
      sw.write(Util.join(childrenList,"String_Node_Str"));
      sw.write((pretty ? "String_Node_Str" + indent + indent : "String_Node_Str") + "String_Node_Str");
    }
    sw.write((pretty ? "String_Node_Str" + indent + indent : "String_Node_Str") + "String_Node_Str");
  }
  beforeClosingBrace(pretty,pretty ? "String_Node_Str" + indent : "String_Node_Str",sw);
  sw.write((pretty ? "String_Node_Str" + indent : "String_Node_Str") + "String_Node_Str");
  return sw.toString();
}