Program: 100885
Project: 100885
Buggy source:
/** 
 * @see org.xml.sax.ContentHandler#startElement(java.lang.String,java.lang.String,java.lang.String,org.xml.sax.Attributes)
 */
public void startElement(String uri,String localName,String qName,Attributes atts) throws SAXException {
  String scopeValue=null;
  String formatValue=null;
  String fileId=null;
  int attsLen=atts.getLength();
  mapInfo.append(Constants.LESS_THAN).append(qName);
  for (int i=0; i < attsLen; i++) {
    String attQName=atts.getQName(i);
    String attValue=atts.getValue(i);
    if (Constants.ATTRIBUTE_NAME_HREF.equals(attQName) && !StringUtils.isEmptyString(attValue)) {
      scopeValue=atts.getValue(Constants.ATTRIBUTE_NAME_SCOPE);
      formatValue=atts.getValue(Constants.ATTRIBUTE_NAME_FORMAT);
      if ((scopeValue == null || Constants.ATTR_SCOPE_VALUE_LOCAL.equalsIgnoreCase(scopeValue)) && (formatValue == null || Constants.ATTR_FORMAT_VALUE_DITA.equalsIgnoreCase(formatValue))) {
        if (util.isVisited(attValue)) {
          mapInfo.append(Constants.STRING_BLANK).append("String_Node_Str").append(Constants.EQUAL).append(Constants.QUOTATION).append(StringUtils.escapeXML(attValue)).append(Constants.QUOTATION);
          attValue=new StringBuffer(Constants.SHARP).append(util.getIdValue(attValue)).toString();
        }
 else {
          mapInfo.append(Constants.STRING_BLANK).append("String_Node_Str").append(Constants.EQUAL).append(Constants.QUOTATION).append(StringUtils.escapeXML(attValue)).append(Constants.QUOTATION);
          fileId=topicParser.parse(attValue,dirPath);
          util.visit(attValue);
          attValue=new StringBuffer(Constants.SHARP).append(fileId).toString();
        }
      }
    }
    mapInfo.append(Constants.STRING_BLANK).append(attQName).append(Constants.EQUAL).append(Constants.QUOTATION).append(StringUtils.escapeXML(attValue)).append(Constants.QUOTATION);
  }
  mapInfo.append(Constants.GREATER_THAN);
}

Fixed version (ground truth):
/** 
 * @see org.xml.sax.ContentHandler#startElement(java.lang.String,java.lang.String,java.lang.String,org.xml.sax.Attributes)
 */
public void startElement(String uri,String localName,String qName,Attributes atts) throws SAXException {
  String scopeValue=null;
  String formatValue=null;
  String classValue=null;
  String fileId=null;
  int attsLen=atts.getLength();
  mapInfo.append(Constants.LESS_THAN).append(qName);
  for (int i=0; i < attsLen; i++) {
    String attQName=atts.getQName(i);
    String attValue=atts.getValue(i);
    if (Constants.ATTRIBUTE_NAME_HREF.equals(attQName) && !StringUtils.isEmptyString(attValue) && classValue != null && classValue.indexOf(Constants.ATTR_CLASS_VALUE_TOPICREF) != -1) {
      scopeValue=atts.getValue(Constants.ATTRIBUTE_NAME_SCOPE);
      formatValue=atts.getValue(Constants.ATTRIBUTE_NAME_FORMAT);
      if ((scopeValue == null || Constants.ATTR_SCOPE_VALUE_LOCAL.equalsIgnoreCase(scopeValue)) && (formatValue == null || Constants.ATTR_FORMAT_VALUE_DITA.equalsIgnoreCase(formatValue))) {
        if (util.isVisited(attValue)) {
          mapInfo.append(Constants.STRING_BLANK).append("String_Node_Str").append(Constants.EQUAL).append(Constants.QUOTATION).append(StringUtils.escapeXML(attValue)).append(Constants.QUOTATION);
          attValue=new StringBuffer(Constants.SHARP).append(util.getIdValue(attValue)).toString();
        }
 else {
          mapInfo.append(Constants.STRING_BLANK).append("String_Node_Str").append(Constants.EQUAL).append(Constants.QUOTATION).append(StringUtils.escapeXML(attValue)).append(Constants.QUOTATION);
          fileId=topicParser.parse(attValue,dirPath);
          util.visit(attValue);
          attValue=new StringBuffer(Constants.SHARP).append(fileId).toString();
        }
      }
    }
    mapInfo.append(Constants.STRING_BLANK).append(attQName).append(Constants.EQUAL).append(Constants.QUOTATION).append(StringUtils.escapeXML(attValue)).append(Constants.QUOTATION);
  }
  mapInfo.append(Constants.GREATER_THAN);
}