Program: 20602
Project: 20602
Buggy source:
private void addMethod(ActionType q,Resource res,IMethodModel m,IDocInfo documentation,String returnName,String parameterName){
  Action value=new Action();
  value.setType(q);
  res.getActions().put(q,value);
  IParameterModel[] parameters=m.getParameters();
  for (  IParameterModel pm : parameters) {
    if (pm.hasAnnotation(QUERY_PARAM)) {
      String annotationValue=pm.getAnnotationValue(QUERY_PARAM);
      String type=pm.getType();
      QueryParameter value2=new QueryParameter();
      proceedType(type,value2,pm);
      String text=documentation.getDocumentation(pm.getName());
      if (!"String_Node_Str".equals(text)) {
        value2.setDescription(text);
      }
      value.getQueryParameters().put(annotationValue,value2);
    }
  }
  for (  IParameterModel pm : parameters) {
    if (pm.hasAnnotation(HEADER_PARAM)) {
      String annotationValue=pm.getAnnotationValue(HEADER_PARAM);
      Header value2=new Header();
      proceedType(pm.getType(),value2,pm);
      String text=documentation.getDocumentation(pm.getName());
      if (!"String_Node_Str".equals(text)) {
        value2.setDescription(text);
      }
      value.getHeaders().put(annotationValue,value2);
    }
  }
  for (  IParameterModel pm : parameters) {
    if (pm.hasAnnotation(PATH_PARAM)) {
      String annotationValue=pm.getAnnotationValue(PATH_PARAM);
      UriParameter value2=new UriParameter();
      String text=documentation.getDocumentation(pm.getName());
      if (!"String_Node_Str".equals(text)) {
        value2.setDescription(text);
      }
      proceedType(pm.getType(),value2,pm);
      res.getUriParameters().put(annotationValue,value2);
    }
  }
  String[] consumesValue=m.getAnnotationValues(CONSUMES);
  if (consumesValue == null) {
    consumesValue=classConsumes;
  }
  if (consumesValue != null) {
    for (    String s : consumesValue) {
      s=sanitizeMediaType(s);
      MimeType bodyType=new MimeType();
      if (s.contains(XML)) {
        bodyType.setSchema(parameterName);
        bodyType.setExample("String_Node_Str" + parameterName + "String_Node_Str");
        bodyType.setExampleOrigin("String_Node_Str" + parameterName + "String_Node_Str");
      }
      if (s.contains(JSON)) {
        bodyType.setSchema(returnName + "String_Node_Str");
        bodyType.setExample("String_Node_Str" + returnName + "String_Node_Str");
        bodyType.setExampleOrigin("String_Node_Str" + returnName + "String_Node_Str");
      }
      bodyType.setType(s);
      if (s.contains(FORM)) {
        for (        IParameterModel pm : parameters) {
          if (pm.hasAnnotation(FORM_PARAM)) {
            String annotationValue=pm.getAnnotationValue(FORM_PARAM);
            FormParameter vl=new FormParameter();
            String text=documentation.getDocumentation(pm.getName());
            if (!"String_Node_Str".equals(text)) {
              vl.setDescription(text);
            }
            proceedType(pm.getType(),vl,pm);
            ArrayList<FormParameter> arrayList=new ArrayList<FormParameter>();
            arrayList.add(vl);
            if (bodyType.getFormParameters() == null) {
              bodyType.setFormParameters(new HashMap<String,java.util.List<FormParameter>>());
            }
            bodyType.getFormParameters().put(annotationValue,arrayList);
          }
        }
      }
      value.getBody().put(s,bodyType);
    }
  }
  String[] producesValue=m.getAnnotationValues(PRODUCES);
  if (producesValue == null) {
    producesValue=classProduces;
  }
  if (producesValue != null) {
    Response value2=new Response();
    String text=documentation.getReturnInfo();
    if (!"String_Node_Str".equals(text)) {
      value2.setDescription(text);
    }
    for (    String s : producesValue) {
      s=sanitizeMediaType(s);
      MimeType mimeType=new MimeType();
      if (returnName != null) {
        if (s.contains(XML)) {
          mimeType.setSchema(returnName);
          mimeType.setExample("String_Node_Str" + returnName + "String_Node_Str");
          mimeType.setExampleOrigin("String_Node_Str" + returnName + "String_Node_Str");
        }
        if (s.contains(JSON)) {
          mimeType.setSchema(returnName + "String_Node_Str");
          mimeType.setExample("String_Node_Str" + returnName + "String_Node_Str");
          mimeType.setExampleOrigin("String_Node_Str" + returnName + "String_Node_Str");
        }
      }
      mimeType.setType(s);
      value2.getBody().put(s,mimeType);
    }
    value.getResponses().put("String_Node_Str",value2);
  }
 else {
    Response value2=new Response();
    String text=documentation.getReturnInfo();
    if (!"String_Node_Str".equals(text)) {
      value2.setDescription(text);
    }
    value.getResponses().put("String_Node_Str",value2);
  }
}

Fixed version (ground truth):
private void addMethod(ActionType q,Resource res,IMethodModel m,IDocInfo documentation,String returnName,String parameterName){
  Action value=new Action();
  value.setType(q);
  res.getActions().put(q,value);
  IParameterModel[] parameters=m.getParameters();
  for (  IParameterModel pm : parameters) {
    if (pm.hasAnnotation(QUERY_PARAM)) {
      String annotationValue=pm.getAnnotationValue(QUERY_PARAM);
      String type=pm.getType();
      QueryParameter value2=new QueryParameter();
      proceedType(type,value2,pm);
      String text=documentation.getDocumentation(pm.getName());
      if (!"String_Node_Str".equals(text)) {
        value2.setDescription(text);
      }
      value.getQueryParameters().put(annotationValue,value2);
    }
  }
  for (  IParameterModel pm : parameters) {
    if (pm.hasAnnotation(HEADER_PARAM)) {
      String annotationValue=pm.getAnnotationValue(HEADER_PARAM);
      Header value2=new Header();
      proceedType(pm.getType(),value2,pm);
      String text=documentation.getDocumentation(pm.getName());
      if (!"String_Node_Str".equals(text)) {
        value2.setDescription(text);
      }
      value.getHeaders().put(annotationValue,value2);
    }
  }
  for (  IParameterModel pm : parameters) {
    if (pm.hasAnnotation(PATH_PARAM)) {
      String annotationValue=pm.getAnnotationValue(PATH_PARAM);
      UriParameter value2=new UriParameter();
      String text=documentation.getDocumentation(pm.getName());
      if (!"String_Node_Str".equals(text)) {
        value2.setDescription(text);
      }
      proceedType(pm.getType(),value2,pm);
      res.getUriParameters().put(annotationValue,value2);
    }
  }
  String[] consumesValue=m.getAnnotationValues(CONSUMES);
  if (consumesValue == null) {
    consumesValue=classConsumes;
  }
  if (consumesValue != null) {
    for (    String s : consumesValue) {
      s=sanitizeMediaType(s);
      MimeType bodyType=new MimeType();
      if (s.contains(XML)) {
        bodyType.setSchema(parameterName);
        if (parameterName != null) {
          bodyType.setExample("String_Node_Str" + parameterName + "String_Node_Str");
          bodyType.setExampleOrigin("String_Node_Str" + parameterName + "String_Node_Str");
        }
      }
      if (s.contains(JSON)) {
        bodyType.setSchema(parameterName + "String_Node_Str");
        if (parameterName != null) {
          bodyType.setExample("String_Node_Str" + parameterName + "String_Node_Str");
          bodyType.setExampleOrigin("String_Node_Str" + parameterName + "String_Node_Str");
        }
      }
      bodyType.setType(s);
      if (s.contains(FORM)) {
        for (        IParameterModel pm : parameters) {
          if (pm.hasAnnotation(FORM_PARAM)) {
            String annotationValue=pm.getAnnotationValue(FORM_PARAM);
            FormParameter vl=new FormParameter();
            String text=documentation.getDocumentation(pm.getName());
            if (!"String_Node_Str".equals(text)) {
              vl.setDescription(text);
            }
            proceedType(pm.getType(),vl,pm);
            ArrayList<FormParameter> arrayList=new ArrayList<FormParameter>();
            arrayList.add(vl);
            if (bodyType.getFormParameters() == null) {
              bodyType.setFormParameters(new HashMap<String,java.util.List<FormParameter>>());
            }
            bodyType.getFormParameters().put(annotationValue,arrayList);
          }
        }
      }
      value.getBody().put(s,bodyType);
    }
  }
  String[] producesValue=m.getAnnotationValues(PRODUCES);
  if (producesValue == null) {
    producesValue=classProduces;
  }
  if (producesValue != null) {
    Response value2=new Response();
    String text=documentation.getReturnInfo();
    if (!"String_Node_Str".equals(text)) {
      value2.setDescription(text);
    }
    for (    String s : producesValue) {
      s=sanitizeMediaType(s);
      MimeType mimeType=new MimeType();
      if (returnName != null) {
        if (s.contains(XML)) {
          mimeType.setSchema(returnName);
          if (returnName != null) {
            mimeType.setExample("String_Node_Str" + returnName + "String_Node_Str");
            mimeType.setExampleOrigin("String_Node_Str" + returnName + "String_Node_Str");
          }
        }
        if (s.contains(JSON)) {
          mimeType.setSchema(returnName + "String_Node_Str");
          if (returnName != null) {
            mimeType.setExample("String_Node_Str" + returnName + "String_Node_Str");
            mimeType.setExampleOrigin("String_Node_Str" + returnName + "String_Node_Str");
          }
        }
      }
      mimeType.setType(s);
      value2.getBody().put(s,mimeType);
    }
    value.getResponses().put("String_Node_Str",value2);
  }
 else {
    Response value2=new Response();
    String text=documentation.getReturnInfo();
    if (!"String_Node_Str".equals(text)) {
      value2.setDescription(text);
    }
    value.getResponses().put("String_Node_Str",value2);
  }
}