Program: 26029
Project: 26029
Buggy source:
protected String toJsonP(boolean pretty,String indent,String... attrs){
  List<String> attrList=Arrays.asList(attrs);
  StringWriter sw=new StringWriter();
  sw.write(indent + "String_Node_Str" + (pretty ? "String_Node_Str" + indent : "String_Node_Str")+ "String_Node_Str"+ getClass().getName()+ "String_Node_Str");
  List<String> attributeStrings=new ArrayList<String>();
  for (  String name : attributes.keySet()) {
    if (attrList.contains(name) || attrList.size() == 0) {
      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") + 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");
  }
  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){
  List<String> attrList=Arrays.asList(attrs);
  StringWriter sw=new StringWriter();
  sw.write(indent + "String_Node_Str" + (pretty ? "String_Node_Str" + indent : "String_Node_Str")+ "String_Node_Str"+ getClass().getName()+ "String_Node_Str");
  List<String> attributeStrings=new ArrayList<String>();
  for (  String name : attributes.keySet()) {
    if (attrList.contains(name) || attrList.size() == 0) {
      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");
  }
  sw.write((pretty ? "String_Node_Str" + indent : "String_Node_Str") + "String_Node_Str");
  return sw.toString();
}