Program: 44104
Project: 44104
Buggy source:
/** 
 * Gets the operation documentation.
 * @param wsdlDoc the wsdl doc
 * @param holder the holder
 * @return the operation documentation
 */
private void appendOperationDocumentation(StringBuffer html,WSDLDocInterface wsdlDoc,OperationHolder holder){
  if (holder != null) {
    String documentation=null;
    if (holder.getAnnotations() != null) {
      documentation=holder.getAnnotations().getDocumentation();
    }
    List<Element> inputs=holder.getInputTypes();
    for (    Element elem : inputs) {
      String type=elem.getType();
      ComplexType ctype=wsdlDoc.searchCType(type);
      ParsedAnnotationInfo annotationInfo=ctype.getAnnotations();
      if (annotationInfo != null) {
        if (Utils.isEmpty(documentation)) {
          documentation=annotationInfo.getDocumentation();
          if (documentation != null) {
            html.append(getTextInSpan(documentation,"String_Node_Str"));
          }
        }
        StringBuffer deprDet=AnnotationsHelper.processDeprication(annotationInfo);
        if (deprDet != null) {
          html.append(getTextInDiv("String_Node_Str","String_Node_Str"));
          html.append(deprDet);
        }
        processRelatedInfo(html,wsdlDoc,annotationInfo);
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Gets the operation documentation.
 * @param wsdlDoc the wsdl doc
 * @param holder the holder
 * @return the operation documentation
 */
private void appendOperationDocumentation(StringBuffer html,WSDLDocInterface wsdlDoc,OperationHolder holder){
  if (holder != null) {
    String documentation=null;
    if (holder.getAnnotations() != null) {
      documentation=holder.getAnnotations().getDocumentation();
      if (holder.getAnnotations().getDocumentation() != null) {
        html.append(getTextInSpan(documentation,"String_Node_Str") + Constants.HTML_BR);
      }
    }
    List<Element> inputs=holder.getInputTypes();
    for (    Element elem : inputs) {
      String type=elem.getType();
      ComplexType ctype=wsdlDoc.searchCType(type);
      ParsedAnnotationInfo annotationInfo=ctype.getAnnotations();
      if (annotationInfo != null) {
        Map<String,List<ParsedAnnotationTag>> tagList=annotationInfo.getValue();
        if (tagList != null) {
          List<ParsedAnnotationTag> summaryTag=(List<ParsedAnnotationTag>)tagList.get("String_Node_Str");
          if (summaryTag != null) {
            String summary=summaryTag.get(0).getTagValue();
            html.append(getTextInDiv("String_Node_Str","String_Node_Str"));
            html.append(getTextInSpan(summary,"String_Node_Str") + Constants.HTML_BR + Constants.HTML_BR);
          }
        }
        documentation=annotationInfo.getDocumentation();
        if (documentation != null) {
          html.append(getTextInDiv("String_Node_Str","String_Node_Str"));
          html.append(getTextInSpan(documentation,"String_Node_Str") + Constants.HTML_BR);
        }
      }
    }
    List<Element> outputs=holder.getOutputTypes();
    for (    Element opElem : outputs) {
      String opType=opElem.getType();
      ComplexType opCtype=wsdlDoc.searchCType(opType);
      ParsedAnnotationInfo opannotationInfo=opCtype.getAnnotations();
      if (opannotationInfo != null) {
        String opDocumentation=opannotationInfo.getDocumentation();
        if (opDocumentation != null) {
          html.append(Constants.HTML_BR + getTextInDiv("String_Node_Str","String_Node_Str"));
          html.append(getTextInSpan(opDocumentation,"String_Node_Str") + Constants.HTML_BR);
        }
      }
    }
    for (    Element elem : inputs) {
      String type=elem.getType();
      ComplexType ctype=wsdlDoc.searchCType(type);
      ParsedAnnotationInfo annotationInfo=ctype.getAnnotations();
      if (annotationInfo != null) {
        StringBuffer deprDet=AnnotationsHelper.processDeprication(annotationInfo);
        if (deprDet != null) {
          html.append(getTextInDiv("String_Node_Str","String_Node_Str"));
          html.append(deprDet);
        }
        processRelatedInfo(html,wsdlDoc,annotationInfo);
      }
    }
  }
}