Program: 25111
Project: 25111
Buggy source:
@Override public String getCapability(){
  StringBuffer xml=new StringBuffer();
  xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",getStandardID())).append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str").append(VOSerializer.formatText(getAccessURL())).append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  Iterator<OutputFormat> itFormats=service.getOutputFormats();
  OutputFormat formatter;
  while (itFormats.hasNext()) {
    formatter=itFormats.next();
    xml.append("String_Node_Str");
    xml.append("String_Node_Str").append(VOSerializer.formatText(formatter.getMimeType())).append("String_Node_Str");
    if (formatter.getShortMimeType() != null)     xml.append("String_Node_Str").append(VOSerializer.formatText(formatter.getShortMimeType())).append("String_Node_Str");
    if (formatter.getDescription() != null)     xml.append("String_Node_Str").append(VOSerializer.formatText(formatter.getDescription())).append("String_Node_Str");
    xml.append("String_Node_Str");
  }
  int[] retentionPeriod=service.getRetentionPeriod();
  if (retentionPeriod != null && retentionPeriod.length >= 2) {
    if (retentionPeriod[0] > -1 || retentionPeriod[1] > -1) {
      xml.append("String_Node_Str");
      if (retentionPeriod[0] > -1)       xml.append("String_Node_Str").append(retentionPeriod[0]).append("String_Node_Str");
      if (retentionPeriod[1] > -1)       xml.append("String_Node_Str").append(retentionPeriod[1]).append("String_Node_Str");
      xml.append("String_Node_Str");
    }
  }
  int[] executionDuration=service.getExecutionDuration();
  if (executionDuration != null && executionDuration.length >= 2) {
    if (executionDuration[0] > -1 || executionDuration[1] > -1) {
      xml.append("String_Node_Str");
      if (executionDuration[0] > -1)       xml.append("String_Node_Str").append(executionDuration[0]).append("String_Node_Str");
      if (executionDuration[1] > -1)       xml.append("String_Node_Str").append(executionDuration[1]).append("String_Node_Str");
      xml.append("String_Node_Str");
    }
  }
  int[] outputLimit=service.getOutputLimit();
  LimitUnit[] outputLimitType=service.getOutputLimitType();
  if (outputLimit != null && outputLimit.length >= 2 && outputLimitType != null && outputLimitType.length >= 2) {
    if (outputLimit[0] > -1 || outputLimit[1] > -1) {
      xml.append("String_Node_Str");
      if (outputLimit[0] > -1)       xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",outputLimitType[0].toString())).append("String_Node_Str").append(outputLimit[0]).append("String_Node_Str");
      if (outputLimit[1] > -1)       xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",outputLimitType[1].toString())).append("String_Node_Str").append(outputLimit[1]).append("String_Node_Str");
      xml.append("String_Node_Str");
    }
  }
  if (service.uploadEnabled()) {
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    int[] uploadLimit=service.getUploadLimit();
    LimitUnit[] uploadLimitType=service.getUploadLimitType();
    if (uploadLimit != null && uploadLimit.length >= 2 && uploadLimitType != null && uploadLimitType.length >= 2) {
      if (uploadLimit[0] > -1 || uploadLimit[1] > -1) {
        xml.append("String_Node_Str");
        if (uploadLimit[0] > -1)         xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",uploadLimitType[0].toString())).append("String_Node_Str").append(uploadLimit[0]).append("String_Node_Str");
        if (uploadLimit[1] > -1)         xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",uploadLimitType[1].toString())).append("String_Node_Str").append(uploadLimit[1]).append("String_Node_Str");
        xml.append("String_Node_Str");
      }
    }
  }
  xml.append("String_Node_Str");
  return xml.toString();
}

Fixed version (ground truth):
@Override public String getCapability(){
  StringBuffer xml=new StringBuffer();
  xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",getStandardID())).append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str").append((getAccessURL() == null) ? "String_Node_Str" : VOSerializer.formatText(getAccessURL())).append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  xml.append("String_Node_Str");
  Iterator<OutputFormat> itFormats=service.getOutputFormats();
  OutputFormat formatter;
  while (itFormats.hasNext()) {
    formatter=itFormats.next();
    xml.append("String_Node_Str");
    xml.append("String_Node_Str").append(VOSerializer.formatText(formatter.getMimeType())).append("String_Node_Str");
    if (formatter.getShortMimeType() != null)     xml.append("String_Node_Str").append(VOSerializer.formatText(formatter.getShortMimeType())).append("String_Node_Str");
    if (formatter.getDescription() != null)     xml.append("String_Node_Str").append(VOSerializer.formatText(formatter.getDescription())).append("String_Node_Str");
    xml.append("String_Node_Str");
  }
  int[] retentionPeriod=service.getRetentionPeriod();
  if (retentionPeriod != null && retentionPeriod.length >= 2) {
    if (retentionPeriod[0] > -1 || retentionPeriod[1] > -1) {
      xml.append("String_Node_Str");
      if (retentionPeriod[0] > -1)       xml.append("String_Node_Str").append(retentionPeriod[0]).append("String_Node_Str");
      if (retentionPeriod[1] > -1)       xml.append("String_Node_Str").append(retentionPeriod[1]).append("String_Node_Str");
      xml.append("String_Node_Str");
    }
  }
  int[] executionDuration=service.getExecutionDuration();
  if (executionDuration != null && executionDuration.length >= 2) {
    if (executionDuration[0] > -1 || executionDuration[1] > -1) {
      xml.append("String_Node_Str");
      if (executionDuration[0] > -1)       xml.append("String_Node_Str").append(executionDuration[0]).append("String_Node_Str");
      if (executionDuration[1] > -1)       xml.append("String_Node_Str").append(executionDuration[1]).append("String_Node_Str");
      xml.append("String_Node_Str");
    }
  }
  int[] outputLimit=service.getOutputLimit();
  LimitUnit[] outputLimitType=service.getOutputLimitType();
  if (outputLimit != null && outputLimit.length >= 2 && outputLimitType != null && outputLimitType.length >= 2) {
    if (outputLimit[0] > -1 || outputLimit[1] > -1) {
      xml.append("String_Node_Str");
      if (outputLimit[0] > -1)       xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",outputLimitType[0].toString())).append("String_Node_Str").append(outputLimit[0]).append("String_Node_Str");
      if (outputLimit[1] > -1)       xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",outputLimitType[1].toString())).append("String_Node_Str").append(outputLimit[1]).append("String_Node_Str");
      xml.append("String_Node_Str");
    }
  }
  if (service.uploadEnabled()) {
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    xml.append("String_Node_Str");
    int[] uploadLimit=service.getUploadLimit();
    LimitUnit[] uploadLimitType=service.getUploadLimitType();
    if (uploadLimit != null && uploadLimit.length >= 2 && uploadLimitType != null && uploadLimitType.length >= 2) {
      if (uploadLimit[0] > -1 || uploadLimit[1] > -1) {
        xml.append("String_Node_Str");
        if (uploadLimit[0] > -1)         xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",uploadLimitType[0].toString())).append("String_Node_Str").append(uploadLimit[0]).append("String_Node_Str");
        if (uploadLimit[1] > -1)         xml.append("String_Node_Str").append(VOSerializer.formatAttribute("String_Node_Str",uploadLimitType[1].toString())).append("String_Node_Str").append(uploadLimit[1]).append("String_Node_Str");
        xml.append("String_Node_Str");
      }
    }
  }
  xml.append("String_Node_Str");
  return xml.toString();
}