Program: 3621
Project: 3621
Buggy source:
/** 
 * Generates a .dot file which can be fed into GraphViz for layout and visualization of the class graph. The sizeX and sizeY parameters are the image output size to use (in inches) when GraphViz is asked to render the .dot file.
 */
String generateClassGraphDotFile(final float sizeX,final float sizeY){
  final StringBuilder buf=new StringBuilder();
  buf.append("String_Node_Str");
  buf.append("String_Node_Str" + sizeX + "String_Node_Str"+ sizeY+ "String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  final Set<ClassInfo> standardClassNodes=ClassInfo.filterClassInfo(allClassInfo,true,scanSpec,ClassType.STANDARD_CLASS);
  final ClassInfo objectClass=classNameToClassInfo.get("String_Node_Str");
  if (objectClass != null) {
    standardClassNodes.remove(objectClass);
  }
  final Set<ClassInfo> interfaceNodes=ClassInfo.filterClassInfo(allClassInfo,true,scanSpec,ClassType.IMPLEMENTED_INTERFACE);
  final Set<ClassInfo> annotationNodes=ClassInfo.filterClassInfo(allClassInfo,true,scanSpec,ClassType.ANNOTATION);
  for (  final ClassInfo node : standardClassNodes) {
    buf.append("String_Node_Str").append("String_Node_Str").append(node.getClassName()).append("String_Node_Str");
    labelClassNodeHTML(node,"String_Node_Str","String_Node_Str",buf);
    buf.append("String_Node_Str");
  }
  for (  final ClassInfo node : interfaceNodes) {
    buf.append("String_Node_Str").append("String_Node_Str").append(node.getClassName()).append("String_Node_Str");
    labelClassNodeHTML(node,"String_Node_Str","String_Node_Str",buf);
    buf.append("String_Node_Str");
  }
  for (  final ClassInfo node : annotationNodes) {
    buf.append("String_Node_Str").append("String_Node_Str").append(node.getClassName()).append("String_Node_Str");
    labelClassNodeHTML(node,"String_Node_Str","String_Node_Str",buf);
    buf.append("String_Node_Str");
  }
  final Set<ClassInfo> allVisibleNodes=new HashSet<>();
  allVisibleNodes.addAll(standardClassNodes);
  allVisibleNodes.addAll(interfaceNodes);
  allVisibleNodes.addAll(annotationNodes);
  buf.append("String_Node_Str");
  for (  final ClassInfo classNode : standardClassNodes) {
    final ClassInfo directSuperclassNode=classNode.getDirectSuperclass();
    if (directSuperclassNode != null && allVisibleNodes.contains(directSuperclassNode)) {
      buf.append("String_Node_Str" + classNode.getClassName() + "String_Node_Str"+ directSuperclassNode.getClassName()+ "String_Node_Str");
    }
    for (    final ClassInfo implementedInterfaceNode : classNode.getDirectlyImplementedInterfaces()) {
      if (allVisibleNodes.contains(implementedInterfaceNode)) {
        buf.append("String_Node_Str" + classNode.getClassName() + "String_Node_Str"+ implementedInterfaceNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo fieldTypeNode : lookup(classNode.getClassNamesReferencedInFieldTypeDescriptors())) {
      if (allVisibleNodes.contains(fieldTypeNode)) {
        buf.append("String_Node_Str" + fieldTypeNode.getClassName() + "String_Node_Str"+ classNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo fieldTypeNode : lookup(classNode.getClassNamesReferencedInMethodTypeDescriptors())) {
      if (allVisibleNodes.contains(fieldTypeNode)) {
        buf.append("String_Node_Str" + fieldTypeNode.getClassName() + "String_Node_Str"+ classNode.getClassName()+ "String_Node_Str");
      }
    }
  }
  for (  final ClassInfo interfaceNode : interfaceNodes) {
    for (    final ClassInfo superinterfaceNode : interfaceNode.getDirectSuperinterfaces()) {
      if (allVisibleNodes.contains(superinterfaceNode)) {
        buf.append("String_Node_Str" + interfaceNode.getClassName() + "String_Node_Str"+ superinterfaceNode.getClassName()+ "String_Node_Str");
      }
    }
  }
  for (  final ClassInfo annotationNode : annotationNodes) {
    for (    final ClassInfo annotatedClassNode : annotationNode.getClassesWithDirectAnnotation()) {
      if (allVisibleNodes.contains(annotatedClassNode)) {
        buf.append("String_Node_Str" + annotatedClassNode.getClassName() + "String_Node_Str"+ annotationNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo annotatedClassNode : annotationNode.getAnnotationsWithDirectMetaAnnotation()) {
      if (allVisibleNodes.contains(annotatedClassNode)) {
        buf.append("String_Node_Str" + annotatedClassNode.getClassName() + "String_Node_Str"+ annotationNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo classWithMethodAnnotationNode : annotationNode.getClassesWithDirectMethodAnnotation()) {
      if (allVisibleNodes.contains(classWithMethodAnnotationNode)) {
        buf.append("String_Node_Str" + classWithMethodAnnotationNode.getClassName() + "String_Node_Str"+ annotationNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo classWithMethodAnnotationNode : annotationNode.getClassesWithFieldAnnotation()) {
      if (allVisibleNodes.contains(classWithMethodAnnotationNode)) {
        buf.append("String_Node_Str" + classWithMethodAnnotationNode.getClassName() + "String_Node_Str"+ annotationNode.getClassName()+ "String_Node_Str");
      }
    }
  }
  buf.append("String_Node_Str");
  return buf.toString();
}

Fixed version (ground truth):
/** 
 * Generates a .dot file which can be fed into GraphViz for layout and visualization of the class graph. The sizeX and sizeY parameters are the image output size to use (in inches) when GraphViz is asked to render the .dot file.
 */
String generateClassGraphDotFile(final float sizeX,final float sizeY){
  final StringBuilder buf=new StringBuilder();
  buf.append("String_Node_Str");
  buf.append("String_Node_Str" + sizeX + "String_Node_Str"+ sizeY+ "String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  buf.append("String_Node_Str");
  final Set<ClassInfo> standardClassNodes=ClassInfo.filterClassInfo(allClassInfo,true,scanSpec,ClassType.STANDARD_CLASS);
  final ClassInfo objectClass=classNameToClassInfo.get("String_Node_Str");
  if (objectClass != null) {
    standardClassNodes.remove(objectClass);
  }
  final Set<ClassInfo> interfaceNodes=ClassInfo.filterClassInfo(allClassInfo,true,scanSpec,ClassType.IMPLEMENTED_INTERFACE);
  final Set<ClassInfo> annotationNodes=ClassInfo.filterClassInfo(allClassInfo,true,scanSpec,ClassType.ANNOTATION);
  for (  final ClassInfo node : standardClassNodes) {
    buf.append("String_Node_Str").append(node.getClassName()).append("String_Node_Str");
    labelClassNodeHTML(node,"String_Node_Str","String_Node_Str",buf);
    buf.append("String_Node_Str");
  }
  for (  final ClassInfo node : interfaceNodes) {
    buf.append("String_Node_Str").append(node.getClassName()).append("String_Node_Str");
    labelClassNodeHTML(node,"String_Node_Str","String_Node_Str",buf);
    buf.append("String_Node_Str");
  }
  for (  final ClassInfo node : annotationNodes) {
    buf.append("String_Node_Str").append(node.getClassName()).append("String_Node_Str");
    labelClassNodeHTML(node,"String_Node_Str","String_Node_Str",buf);
    buf.append("String_Node_Str");
  }
  final Set<ClassInfo> allVisibleNodes=new HashSet<>();
  allVisibleNodes.addAll(standardClassNodes);
  allVisibleNodes.addAll(interfaceNodes);
  allVisibleNodes.addAll(annotationNodes);
  buf.append("String_Node_Str");
  for (  final ClassInfo classNode : standardClassNodes) {
    final ClassInfo directSuperclassNode=classNode.getDirectSuperclass();
    if (directSuperclassNode != null && allVisibleNodes.contains(directSuperclassNode)) {
      buf.append("String_Node_Str" + classNode.getClassName() + "String_Node_Str"+ directSuperclassNode.getClassName()+ "String_Node_Str");
    }
    for (    final ClassInfo implementedInterfaceNode : classNode.getDirectlyImplementedInterfaces()) {
      if (allVisibleNodes.contains(implementedInterfaceNode)) {
        buf.append("String_Node_Str" + classNode.getClassName() + "String_Node_Str"+ implementedInterfaceNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo fieldTypeNode : lookup(classNode.getClassNamesReferencedInFieldTypeDescriptors())) {
      if (allVisibleNodes.contains(fieldTypeNode)) {
        buf.append("String_Node_Str" + fieldTypeNode.getClassName() + "String_Node_Str"+ classNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo fieldTypeNode : lookup(classNode.getClassNamesReferencedInMethodTypeDescriptors())) {
      if (allVisibleNodes.contains(fieldTypeNode)) {
        buf.append("String_Node_Str" + fieldTypeNode.getClassName() + "String_Node_Str"+ classNode.getClassName()+ "String_Node_Str");
      }
    }
  }
  for (  final ClassInfo interfaceNode : interfaceNodes) {
    for (    final ClassInfo superinterfaceNode : interfaceNode.getDirectSuperinterfaces()) {
      if (allVisibleNodes.contains(superinterfaceNode)) {
        buf.append("String_Node_Str" + interfaceNode.getClassName() + "String_Node_Str"+ superinterfaceNode.getClassName()+ "String_Node_Str");
      }
    }
  }
  for (  final ClassInfo annotationNode : annotationNodes) {
    for (    final ClassInfo annotatedClassNode : annotationNode.getClassesWithDirectAnnotation()) {
      if (allVisibleNodes.contains(annotatedClassNode)) {
        buf.append("String_Node_Str" + annotatedClassNode.getClassName() + "String_Node_Str"+ annotationNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo annotatedClassNode : annotationNode.getAnnotationsWithDirectMetaAnnotation()) {
      if (allVisibleNodes.contains(annotatedClassNode)) {
        buf.append("String_Node_Str" + annotatedClassNode.getClassName() + "String_Node_Str"+ annotationNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo classWithMethodAnnotationNode : annotationNode.getClassesWithDirectMethodAnnotation()) {
      if (allVisibleNodes.contains(classWithMethodAnnotationNode)) {
        buf.append("String_Node_Str" + classWithMethodAnnotationNode.getClassName() + "String_Node_Str"+ annotationNode.getClassName()+ "String_Node_Str");
      }
    }
    for (    final ClassInfo classWithMethodAnnotationNode : annotationNode.getClassesWithFieldAnnotation()) {
      if (allVisibleNodes.contains(classWithMethodAnnotationNode)) {
        buf.append("String_Node_Str" + classWithMethodAnnotationNode.getClassName() + "String_Node_Str"+ annotationNode.getClassName()+ "String_Node_Str");
      }
    }
  }
  buf.append("String_Node_Str");
  return buf.toString();
}