Program: 45405
Project: 45405
Buggy source:
public StringBuffer toCanonicalString(Context cx,StringBuffer buf){
{
    buf.append("String_Node_Str");
    ParameterNode firstItem=items.get(0);
    for (    ParameterNode item : items) {
      if (item != firstItem)       buf.append("String_Node_Str");
      buf.append(item.ref != null ? item.ref.name : "String_Node_Str");
    }
    buf.append("String_Node_Str");
  }
{
    buf.append("String_Node_Str");
    ParameterNode firstItem=items.get(0);
    for (    ParameterNode item : items) {
      if (item != firstItem)       buf.append("String_Node_Str");
      if (item instanceof RestParameterNode)       buf.append("String_Node_Str");
 else       if (item.typeref != null) {
        Slot s=item.typeref.getSlot(cx,GET_TOKEN);
        buf.append((s == null || s.getDebugName().length() == 0) ? item.typeref.name : s.getDebugName());
      }
    }
    buf.append("String_Node_Str");
  }
{
    buf.append("String_Node_Str");
    ParameterNode firstItem=items.get(0);
    for (    ParameterNode item : items) {
      if (item != firstItem)       buf.append("String_Node_Str");
      if (item.init == null)       buf.append("String_Node_Str");
 else {
        if (item.init instanceof LiteralNumberNode) {
          buf.append(((LiteralNumberNode)(item.init)).value);
        }
 else         if (item.init instanceof LiteralStringNode) {
          buf.append(DocCommentNode.escapeXml(((LiteralStringNode)(item.init)).value));
        }
 else         if (item.init instanceof LiteralNullNode) {
          buf.append("String_Node_Str");
        }
 else         if (item.init instanceof LiteralBooleanNode) {
          buf.append((((LiteralBooleanNode)(item.init)).value) ? "String_Node_Str" : "String_Node_Str");
        }
 else {
          buf.append("String_Node_Str");
        }
      }
    }
    buf.append("String_Node_Str");
  }
  return buf;
}

Fixed version (ground truth):
public StringBuffer toCanonicalString(Context cx,StringBuffer buf){
{
    buf.append("String_Node_Str");
    ParameterNode firstItem=items.get(0);
    for (    ParameterNode item : items) {
      if (item != firstItem)       buf.append("String_Node_Str");
      buf.append(item.ref != null ? item.ref.name : "String_Node_Str");
    }
    buf.append("String_Node_Str");
  }
{
    buf.append("String_Node_Str");
    ParameterNode firstItem=items.get(0);
    for (    ParameterNode item : items) {
      if (item != firstItem)       buf.append("String_Node_Str");
      if (item instanceof RestParameterNode)       buf.append("String_Node_Str");
 else       if (item.typeref != null) {
        buf.append(DocCommentNode.getRefName(cx,item.typeref));
      }
    }
    buf.append("String_Node_Str");
  }
{
    buf.append("String_Node_Str");
    ParameterNode firstItem=items.get(0);
    for (    ParameterNode item : items) {
      if (item != firstItem)       buf.append("String_Node_Str");
      if (item.init == null)       buf.append("String_Node_Str");
 else {
        if (item.init instanceof LiteralNumberNode) {
          buf.append(((LiteralNumberNode)(item.init)).value);
        }
 else         if (item.init instanceof LiteralStringNode) {
          buf.append(DocCommentNode.escapeXml(((LiteralStringNode)(item.init)).value));
        }
 else         if (item.init instanceof LiteralNullNode) {
          buf.append("String_Node_Str");
        }
 else         if (item.init instanceof LiteralBooleanNode) {
          buf.append((((LiteralBooleanNode)(item.init)).value) ? "String_Node_Str" : "String_Node_Str");
        }
 else {
          buf.append("String_Node_Str");
        }
      }
    }
    buf.append("String_Node_Str");
  }
  return buf;
}