Program: 66923
Project: 66923
Buggy source:
private void addSimpleComponentAnnotations(SimpleComponent sc,Property property,boolean element){
  SDOProperty sdoProperty=(SDOProperty)property;
  if (sdoProperty.isReadOnly()) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_READONLY,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,"String_Node_Str");
  }
  if ((sdoProperty.getAliasNames() != null) && (sdoProperty.getAliasNames().size() > 0)) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    String aliasNamesString=buildAliasNameString(sdoProperty.getAliasNames());
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_ALIASNAME,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,aliasNamesString);
  }
  String xsdLocalName=sdoProperty.getXsdLocalName();
  if ((xsdLocalName != null) && !(xsdLocalName.equals(sdoProperty.getName()))) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_NAME,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,sdoProperty.getName());
  }
  if ((element && !sdoProperty.isContainment() && !sdoProperty.getType().isDataType()) || (!element && !sdoProperty.getType().isDataType())) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    String uri=sdoProperty.getType().getURI();
    String value=sdoProperty.getType().getName();
    if (uri != null) {
      String typePrefix=getPrefixForURI(uri);
      if (typePrefix != null) {
        value=typePrefix + "String_Node_Str" + value;
      }
    }
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_PROPERTYTYPE,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,value);
  }
  if (sdoProperty.getOpposite() != null) {
    String value=sdoProperty.getOpposite().getName();
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_OPPOSITEPROPERTY,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,value);
  }
  Property xmlDataTypeProperty=aHelperContext.getTypeHelper().getOpenContentProperty(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_DATATYPE);
  Type dataType=(Type)sdoProperty.get(xmlDataTypeProperty);
  if (dataType == null) {
    dataType=getAutomaticDataTypeForType(sdoProperty.getType());
  }
  if (dataType != null) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_DATATYPE,sdoXmlPrefix);
    String dataTypeString=dataType.getName();
    if (dataType.getURI() != null) {
      String dataTypePrefix=getPrefixForURI(dataType.getURI());
      if (dataTypePrefix != null) {
        dataTypeString=dataTypePrefix + "String_Node_Str" + dataTypeString;
      }
    }
    sc.getAttributesMap().put(qname,dataTypeString);
  }
  if (element) {
    String mimeType=(String)sdoProperty.get(SDOConstants.MIME_TYPE_PROPERTY);
    if (mimeType != null) {
      String prefix=getPrefixForURI(SDOConstants.MIMETYPE_URL);
      QName qname=new QName(SDOConstants.XML_MIME_TYPE_QNAME.getNamespaceURI(),SDOConstants.XML_MIME_TYPE_QNAME.getLocalPart(),prefix);
      sc.getAttributesMap().put(qname,mimeType);
    }
 else {
      mimeType=(String)sdoProperty.get(SDOConstants.MIME_TYPE_PROPERTY_PROPERTY);
      if (mimeType != null) {
        String prefix=getPrefixForURI(SDOConstants.ORACLE_SDO_URL);
        QName qname=new QName(SDOConstants.XML_MIME_TYPE_PROPERTY_QNAME.getNamespaceURI(),SDOConstants.XML_MIME_TYPE_PROPERTY_QNAME.getLocalPart(),prefix);
        sc.getAttributesMap().put(qname,mimeType);
      }
    }
  }
}

Fixed version (ground truth):
private void addSimpleComponentAnnotations(SimpleComponent sc,Property property,boolean element){
  SDOProperty sdoProperty=(SDOProperty)property;
  if (sdoProperty.isReadOnly()) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_READONLY,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,"String_Node_Str");
  }
  if ((sdoProperty.getAliasNames() != null) && (sdoProperty.getAliasNames().size() > 0)) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    String aliasNamesString=buildAliasNameString(sdoProperty.getAliasNames());
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_ALIASNAME,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,aliasNamesString);
  }
  String xsdLocalName=sdoProperty.getXsdLocalName();
  if ((xsdLocalName != null) && !(xsdLocalName.equals(sdoProperty.getName()))) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_NAME,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,sdoProperty.getName());
  }
  if ((element && !sdoProperty.isContainment() && !sdoProperty.getType().isDataType()) || (!element && !sdoProperty.getType().isDataType())) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    String uri=sdoProperty.getType().getURI();
    String value=sdoProperty.getType().getName();
    if (uri != null) {
      String typePrefix=getPrefixForURI(uri);
      if (typePrefix != null) {
        value=typePrefix + "String_Node_Str" + value;
      }
    }
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_PROPERTYTYPE,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,value);
  }
  if (sdoProperty.getOpposite() != null) {
    String value=sdoProperty.getOpposite().getName();
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_OPPOSITEPROPERTY,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,value);
  }
  Property xmlDataTypeProperty=aHelperContext.getTypeHelper().getOpenContentProperty(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_DATATYPE);
  Type dataType=(Type)sdoProperty.get(xmlDataTypeProperty);
  if (dataType == null) {
    dataType=getAutomaticDataTypeForType(sdoProperty.getType());
  }
  if (dataType != null && !shouldSuppressDataType(sdoProperty,dataType)) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_DATATYPE,sdoXmlPrefix);
    String dataTypeString=dataType.getName();
    if (dataType.getURI() != null) {
      String dataTypePrefix=getPrefixForURI(dataType.getURI());
      if (dataTypePrefix != null) {
        dataTypeString=dataTypePrefix + "String_Node_Str" + dataTypeString;
      }
    }
    sc.getAttributesMap().put(qname,dataTypeString);
  }
  if (element) {
    String mimeType=(String)sdoProperty.get(SDOConstants.MIME_TYPE_PROPERTY);
    if (mimeType != null) {
      String prefix=getPrefixForURI(SDOConstants.MIMETYPE_URL);
      QName qname=new QName(SDOConstants.XML_MIME_TYPE_QNAME.getNamespaceURI(),SDOConstants.XML_MIME_TYPE_QNAME.getLocalPart(),prefix);
      sc.getAttributesMap().put(qname,mimeType);
    }
 else {
      mimeType=(String)sdoProperty.get(SDOConstants.MIME_TYPE_PROPERTY_PROPERTY);
      if (mimeType != null) {
        String prefix=getPrefixForURI(SDOConstants.ORACLE_SDO_URL);
        QName qname=new QName(SDOConstants.XML_MIME_TYPE_PROPERTY_QNAME.getNamespaceURI(),SDOConstants.XML_MIME_TYPE_PROPERTY_QNAME.getLocalPart(),prefix);
        sc.getAttributesMap().put(qname,mimeType);
      }
    }
  }
}