Program: 27511
Project: 27511
Buggy source:
public static String print(JSDocInfo info){
  StringBuilder sb=new StringBuilder("String_Node_Str");
  if (info.isConstructor()) {
    sb.append("String_Node_Str");
  }
  if (info.isInterface() && !info.usesImplicitMatch()) {
    sb.append("String_Node_Str");
  }
  if (info.isInterface() && info.usesImplicitMatch()) {
    sb.append("String_Node_Str");
  }
  if (info.makesDicts()) {
    sb.append("String_Node_Str");
  }
  if (info.makesStructs()) {
    sb.append("String_Node_Str");
  }
  if (info.makesUnrestricted()) {
    sb.append("String_Node_Str");
  }
  if (info.isDefine()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getType().getRoot());
    sb.append("String_Node_Str");
  }
  if (info.isOverride()) {
    sb.append("String_Node_Str");
  }
  if (info.isConstant()) {
    sb.append("String_Node_Str");
  }
  if (info.isExport()) {
    sb.append("String_Node_Str");
  }
  if (info.isDeprecated()) {
    sb.append("String_Node_Str");
    sb.append(info.getDeprecationReason() + "String_Node_Str");
  }
  if (info.getVisibility() != null && info.getVisibility() != Visibility.INHERITED) {
    sb.append("String_Node_Str" + info.getVisibility().toString().toLowerCase() + "String_Node_Str");
  }
  for (  String suppression : info.getSuppressions()) {
    sb.append("String_Node_Str" + suppression + "String_Node_Str");
  }
  ImmutableList<String> names=info.getTemplateTypeNames();
  if (!names.isEmpty()) {
    sb.append("String_Node_Str");
    Joiner.on(',').appendTo(sb,names);
    sb.append("String_Node_Str");
  }
  if (info.getParameterCount() > 0) {
    for (    String name : info.getParameterNames()) {
      sb.append("String_Node_Str");
      appendTypeNode(sb,info.getParameterType(name).getRoot());
      sb.append("String_Node_Str");
      sb.append(name);
      sb.append(' ');
    }
  }
  if (info.hasReturnType()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getReturnType().getRoot());
    sb.append("String_Node_Str");
  }
  if (info.hasThisType()) {
    sb.append("String_Node_Str");
    Node typeNode=info.getThisType().getRoot();
    if (typeNode.getType() == Token.BANG) {
      appendTypeNode(sb,typeNode.getFirstChild());
    }
 else {
      appendTypeNode(sb,typeNode);
    }
    sb.append("String_Node_Str");
  }
  if (info.hasBaseType()) {
    sb.append("String_Node_Str");
    Node typeNode=info.getBaseType().getRoot();
    if (typeNode.getType() == Token.BANG) {
      appendTypeNode(sb,typeNode.getFirstChild());
    }
 else {
      appendTypeNode(sb,typeNode);
    }
    sb.append("String_Node_Str");
  }
  for (  JSTypeExpression type : info.getImplementedInterfaces()) {
    sb.append("String_Node_Str");
    Node typeNode=type.getRoot();
    if (typeNode.getType() == Token.BANG) {
      appendTypeNode(sb,typeNode.getFirstChild());
    }
 else {
      appendTypeNode(sb,typeNode);
    }
    sb.append("String_Node_Str");
  }
  if (info.hasTypedefType()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getTypedefType().getRoot());
    sb.append("String_Node_Str");
  }
  if (info.hasType()) {
    if (info.isInlineType()) {
      sb.append("String_Node_Str");
      appendTypeNode(sb,info.getType().getRoot());
      sb.append("String_Node_Str");
    }
 else {
      sb.append("String_Node_Str");
      appendTypeNode(sb,info.getType().getRoot());
      sb.append("String_Node_Str");
    }
  }
  if (!info.getThrownTypes().isEmpty()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getThrownTypes().get(0).getRoot());
    sb.append("String_Node_Str");
  }
  if (info.hasEnumParameterType()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getEnumParameterType().getRoot());
    sb.append("String_Node_Str");
  }
  sb.append("String_Node_Str");
  return sb.toString();
}

Fixed version (ground truth):
public static String print(JSDocInfo info){
  StringBuilder sb=new StringBuilder("String_Node_Str");
  if (info.isConstructor()) {
    sb.append("String_Node_Str");
  }
  if (info.isInterface() && !info.usesImplicitMatch()) {
    sb.append("String_Node_Str");
  }
  if (info.isInterface() && info.usesImplicitMatch()) {
    sb.append("String_Node_Str");
  }
  if (info.makesDicts()) {
    sb.append("String_Node_Str");
  }
  if (info.makesStructs()) {
    sb.append("String_Node_Str");
  }
  if (info.makesUnrestricted()) {
    sb.append("String_Node_Str");
  }
  if (info.isDefine()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getType().getRoot());
    sb.append("String_Node_Str");
  }
  if (info.isOverride()) {
    sb.append("String_Node_Str");
  }
  if (info.isConstant()) {
    sb.append("String_Node_Str");
  }
  if (info.isExport()) {
    sb.append("String_Node_Str");
  }
  if (info.isDeprecated()) {
    sb.append("String_Node_Str");
    sb.append(info.getDeprecationReason() + "String_Node_Str");
  }
  if (info.getVisibility() != null && info.getVisibility() != Visibility.INHERITED) {
    sb.append("String_Node_Str" + info.getVisibility().toString().toLowerCase() + "String_Node_Str");
  }
  for (  String suppression : info.getSuppressions()) {
    sb.append("String_Node_Str" + suppression + "String_Node_Str");
  }
  ImmutableList<String> names=info.getTemplateTypeNames();
  if (!names.isEmpty()) {
    sb.append("String_Node_Str");
    Joiner.on(',').appendTo(sb,names);
    sb.append("String_Node_Str");
  }
  if (info.getParameterCount() > 0) {
    for (    String name : info.getParameterNames()) {
      sb.append("String_Node_Str");
      if (info.getParameterType(name) != null) {
        sb.append("String_Node_Str");
        appendTypeNode(sb,info.getParameterType(name).getRoot());
        sb.append("String_Node_Str");
      }
      sb.append(name);
      sb.append(' ');
    }
  }
  if (info.hasReturnType()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getReturnType().getRoot());
    sb.append("String_Node_Str");
  }
  if (info.hasThisType()) {
    sb.append("String_Node_Str");
    Node typeNode=info.getThisType().getRoot();
    if (typeNode.getType() == Token.BANG) {
      appendTypeNode(sb,typeNode.getFirstChild());
    }
 else {
      appendTypeNode(sb,typeNode);
    }
    sb.append("String_Node_Str");
  }
  if (info.hasBaseType()) {
    sb.append("String_Node_Str");
    Node typeNode=info.getBaseType().getRoot();
    if (typeNode.getType() == Token.BANG) {
      appendTypeNode(sb,typeNode.getFirstChild());
    }
 else {
      appendTypeNode(sb,typeNode);
    }
    sb.append("String_Node_Str");
  }
  for (  JSTypeExpression type : info.getImplementedInterfaces()) {
    sb.append("String_Node_Str");
    Node typeNode=type.getRoot();
    if (typeNode.getType() == Token.BANG) {
      appendTypeNode(sb,typeNode.getFirstChild());
    }
 else {
      appendTypeNode(sb,typeNode);
    }
    sb.append("String_Node_Str");
  }
  if (info.hasTypedefType()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getTypedefType().getRoot());
    sb.append("String_Node_Str");
  }
  if (info.hasType()) {
    if (info.isInlineType()) {
      sb.append("String_Node_Str");
      appendTypeNode(sb,info.getType().getRoot());
      sb.append("String_Node_Str");
    }
 else {
      sb.append("String_Node_Str");
      appendTypeNode(sb,info.getType().getRoot());
      sb.append("String_Node_Str");
    }
  }
  if (!info.getThrownTypes().isEmpty()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getThrownTypes().get(0).getRoot());
    sb.append("String_Node_Str");
  }
  if (info.hasEnumParameterType()) {
    sb.append("String_Node_Str");
    appendTypeNode(sb,info.getEnumParameterType().getRoot());
    sb.append("String_Node_Str");
  }
  sb.append("String_Node_Str");
  return sb.toString();
}