Program: 9289
Project: 9289
Buggy source:
static void insertDeclarationsSummary(StringBuffer fileBuffer,List decls,String kind,int index){
  if (!declsAboveVisibilityExist(decls))   return;
  int insertIndex=findSummaryIndex(fileBuffer,index);
  String tableHead="String_Node_Str" + kind.toUpperCase() + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ kind+ "String_Node_Str";
  fileBuffer.insert(insertIndex,tableHead);
  insertIndex+=tableHead.length();
  for (int i=0; i < decls.size(); i++) {
    IProgramElement decl=(IProgramElement)decls.get(i);
    if (isAboveVisibility(decl)) {
      String comment=generateSummaryComment(decl);
      String entry="String_Node_Str";
      if (kind.equals("String_Node_Str")) {
        entry+="String_Node_Str" + "String_Node_Str" + generateHREFName(decl) + "String_Node_Str"+ "String_Node_Str"+ generateAdviceSignatures(decl)+ "String_Node_Str";
        if (!comment.equals("String_Node_Str")) {
          entry+=comment + "String_Node_Str";
        }
        entry+=generateAffects(decl,false) + "String_Node_Str" + "String_Node_Str";
      }
 else       if (kind.equals("String_Node_Str")) {
        entry+="String_Node_Str" + "String_Node_Str" + genAccessibility(decl) + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ generateHREFName(decl)+ "String_Node_Str"+ decl.toLabelString()+ "String_Node_Str";
        if (!comment.equals("String_Node_Str")) {
          entry+=comment + "String_Node_Str";
        }
        entry+="String_Node_Str";
      }
 else       if (kind.equals("String_Node_Str")) {
        entry+="String_Node_Str" + "String_Node_Str" + decl.getModifiers() + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ generateHREFName(decl)+ "String_Node_Str"+ "String_Node_Str"+ decl.toLabelString()+ "String_Node_Str"+ generateIntroductionSignatures(decl,false)+ generateAffects(decl,true);
      }
      fileBuffer.insert(insertIndex,entry);
      insertIndex+=entry.length();
    }
  }
  String tableTail="String_Node_Str";
  fileBuffer.insert(insertIndex,tableTail);
  insertIndex+=tableTail.length();
}

Fixed version (ground truth):
static void insertDeclarationsSummary(StringBuffer fileBuffer,List decls,String kind,int index){
  if (!declsAboveVisibilityExist(decls))   return;
  int insertIndex=findSummaryIndex(fileBuffer,index);
  String tableHead="String_Node_Str" + kind.toUpperCase() + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ kind+ "String_Node_Str";
  fileBuffer.insert(insertIndex,tableHead);
  insertIndex+=tableHead.length();
  for (int i=0; i < decls.size(); i++) {
    IProgramElement decl=(IProgramElement)decls.get(i);
    if (isAboveVisibility(decl)) {
      String comment=generateSummaryComment(decl);
      String entry="String_Node_Str";
      if (kind.equals(ADVICE_SUMMARY)) {
        entry+="String_Node_Str" + "String_Node_Str" + generateHREFName(decl) + "String_Node_Str"+ "String_Node_Str"+ generateAdviceSignatures(decl)+ "String_Node_Str";
        if (!comment.equals("String_Node_Str")) {
          entry+=comment + "String_Node_Str";
        }
        entry+=generateAffects(decl,false) + "String_Node_Str" + "String_Node_Str";
      }
 else       if (kind.equals(POINTCUT_SUMMARY)) {
        entry+="String_Node_Str" + "String_Node_Str" + genAccessibility(decl) + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ generateHREFName(decl)+ "String_Node_Str"+ decl.toLabelString()+ "String_Node_Str";
        if (!comment.equals("String_Node_Str")) {
          entry+=comment + "String_Node_Str";
        }
        entry+="String_Node_Str";
      }
 else       if (kind.equals(DECLARE_SUMMARY)) {
        entry+="String_Node_Str" + "String_Node_Str" + decl.getModifiers() + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ generateHREFName(decl)+ "String_Node_Str"+ "String_Node_Str"+ decl.toLabelString()+ "String_Node_Str"+ generateIntroductionSignatures(decl,true)+ generateAffects(decl,true);
      }
      fileBuffer.insert(insertIndex,entry);
      insertIndex+=entry.length();
    }
  }
  String tableTail="String_Node_Str";
  fileBuffer.insert(insertIndex,tableTail);
  insertIndex+=tableTail.length();
}