Program: 81314
Project: 81314
Buggy source:
private void processSeeLinks(StringBuffer html,ParsedAnnotationInfo annInfo){
  if (annInfo != null) {
    List<ParsedAnnotationTag> seeLinks=AnnotationsHelper.getAnnotationTag(annInfo,"String_Node_Str");
    if (seeLinks != null) {
      html.append(getTextInDiv("String_Node_Str","String_Node_Str"));
      for (      ParsedAnnotationTag seeLink : seeLinks) {
        html.append(AnnotationsHelper.processSeelink(seeLink) + "String_Node_Str");
      }
    }
    List<ParsedAnnotationTag> callInofs=AnnotationsHelper.getCallInfo(annInfo);
    if (callInofs != null) {
      for (      ParsedAnnotationTag callInfo : callInofs) {
        seeLinks=AnnotationsHelper.getCallInfoChildren(callInfo,"String_Node_Str");
        if (seeLinks != null) {
          if (callInfo.getChildren().get("String_Node_Str") != null) {
            html.append(getTextInDiv("String_Node_Str","String_Node_Str"));
          }
 else {
            String value=AnnotationsHelper.getFirstCallInfoTagValue(callInfo,"String_Node_Str");
            if (!Utils.isEmpty(value)) {
              html.append(getTextInDiv("String_Node_Str" + value + "String_Node_Str","String_Node_Str"));
            }
          }
          List<ParsedAnnotationTag> calls=AnnotationsHelper.getCallInfoChildren(callInfo,"String_Node_Str");
          if (calls != null) {
            String callString="String_Node_Str";
            Iterator<ParsedAnnotationTag> callIter=calls.iterator();
            while (callIter.hasNext()) {
              ParsedAnnotationTag call=callIter.next();
              callString=callString + call.getTagValue();
              if (callIter.hasNext()) {
                callString=callString + "String_Node_Str";
              }
            }
            html.append(getTextInDiv(callString + "String_Node_Str","String_Node_Str"));
          }
          for (          ParsedAnnotationTag seeLink : seeLinks) {
            html.append(AnnotationsHelper.processSeelink(seeLink) + "String_Node_Str");
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
private void processSeeLinks(StringBuffer html,ParsedAnnotationInfo annInfo){
  if (annInfo != null) {
    List<ParsedAnnotationTag> seeLinks=AnnotationsHelper.getAnnotationTag(annInfo,"String_Node_Str");
    boolean headingAdded=false;
    if (seeLinks != null) {
      headingAdded=true;
      html.append(getTextInDiv("String_Node_Str","String_Node_Str"));
      for (      ParsedAnnotationTag seeLink : seeLinks) {
        html.append(AnnotationsHelper.processSeelink(seeLink) + "String_Node_Str");
      }
    }
    List<ParsedAnnotationTag> callInofs=AnnotationsHelper.getCallInfo(annInfo);
    if (callInofs != null) {
      for (      ParsedAnnotationTag callInfo : callInofs) {
        seeLinks=AnnotationsHelper.getCallInfoChildren(callInfo,"String_Node_Str");
        if (seeLinks != null) {
          if (!headingAdded) {
            html.append(getTextInDiv("String_Node_Str","String_Node_Str"));
          }
          for (          ParsedAnnotationTag seeLink : seeLinks) {
            html.append(AnnotationsHelper.processSeelink(seeLink) + "String_Node_Str");
          }
        }
      }
    }
  }
}