Program: 38509
Project: 38509
Buggy source:
/** 
 * @return StringBuffer holding dot output representing G
 * @throws WalaException
 */
private static <T>StringBuffer dotOutput(Graph<T> g,NodeDecorator labels,String title) throws WalaException {
  StringBuffer result=new StringBuffer("String_Node_Str");
  if (title != null) {
    result.append("String_Node_Str" + title + "String_Node_Str");
  }
 else {
    result.append("String_Node_Str");
  }
  String rankdir=getRankDir();
  if (rankdir != null) {
    result.append("String_Node_Str" + rankdir + "String_Node_Str");
  }
  String fontsizeStr="String_Node_Str" + fontSize;
  String fontcolorStr=(fontColor != null) ? "String_Node_Str" + fontColor : "String_Node_Str";
  String fontnameStr=(fontName != null) ? "String_Node_Str" + fontName : "String_Node_Str";
  result.append("String_Node_Str");
  result.append(fontsizeStr);
  result.append("String_Node_Str");
  result.append(fontsizeStr);
  result.append("String_Node_Str");
  result.append(fontcolorStr);
  result.append(fontnameStr);
  result.append("String_Node_Str");
  result.append(fontsizeStr);
  result.append(fontcolorStr);
  result.append(fontnameStr);
  result.append("String_Node_Str");
  Collection dotNodes=computeDotNodes(g);
  outputNodes(labels,result,dotNodes);
  for (Iterator<? extends T> it=g.iterator(); it.hasNext(); ) {
    T n=it.next();
    for (Iterator<? extends T> it2=g.getSuccNodes(n); it2.hasNext(); ) {
      T s=it2.next();
      result.append("String_Node_Str");
      result.append(getPort(n,labels));
      result.append("String_Node_Str");
      result.append(getPort(s,labels));
      result.append("String_Node_Str");
    }
  }
  result.append("String_Node_Str");
  return result;
}

Fixed version (ground truth):
/** 
 * @return StringBuffer holding dot output representing G
 * @throws WalaException
 */
private static <T>StringBuffer dotOutput(Graph<T> g,NodeDecorator labels,String title) throws WalaException {
  StringBuffer result=new StringBuffer("String_Node_Str");
  if (title != null) {
    result.append("String_Node_Str" + title + "String_Node_Str");
  }
 else {
    result.append("String_Node_Str");
  }
  String rankdir=getRankDir();
  if (rankdir != null) {
    result.append("String_Node_Str" + rankdir + "String_Node_Str");
  }
  String fontsizeStr="String_Node_Str" + fontSize;
  String fontcolorStr=(fontColor != null) ? "String_Node_Str" + fontColor : "String_Node_Str";
  String fontnameStr=(fontName != null) ? "String_Node_Str" + fontName : "String_Node_Str";
  result.append("String_Node_Str");
  result.append(fontsizeStr);
  result.append("String_Node_Str");
  result.append(fontsizeStr);
  result.append(fontcolorStr);
  result.append(fontnameStr);
  result.append("String_Node_Str");
  result.append(fontsizeStr);
  result.append(fontcolorStr);
  result.append(fontnameStr);
  result.append("String_Node_Str");
  Collection dotNodes=computeDotNodes(g);
  outputNodes(labels,result,dotNodes);
  for (Iterator<? extends T> it=g.iterator(); it.hasNext(); ) {
    T n=it.next();
    for (Iterator<? extends T> it2=g.getSuccNodes(n); it2.hasNext(); ) {
      T s=it2.next();
      result.append("String_Node_Str");
      result.append(getPort(n,labels));
      result.append("String_Node_Str");
      result.append(getPort(s,labels));
      result.append("String_Node_Str");
    }
  }
  result.append("String_Node_Str");
  return result;
}