Program: 68373
Project: 68373
Buggy source:
private void addSimpleComponentAnnotations(SimpleComponent sc,Property property,boolean element){
  if (property.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 ((property.getAliasNames() != null) && (property.getAliasNames().size() > 0)) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    String aliasNamesString=buildAliasNameString(property.getAliasNames());
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_ALIASNAME,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,aliasNamesString);
  }
  String xsdLocalName=((SDOProperty)property).getXsdLocalName();
  if ((xsdLocalName != null) && !(xsdLocalName.equals(property.getName()))) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_NAME,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,property.getName());
  }
  if ((element && !property.isContainment() && !property.getType().isDataType()) || (!element && !property.getType().isDataType())) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    String uri=property.getType().getURI();
    String value=property.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 (property.getOpposite() != null) {
    String value=property.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.ORACLE_SDO_URL,SDOConstants.SDOXML_DATATYPE);
  Type dataType=(Type)property.get(xmlDataTypeProperty);
  if (dataType == null) {
    dataType=getAutomaticDataTypeForType(property.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)property.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)property.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){
  if (property.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 ((property.getAliasNames() != null) && (property.getAliasNames().size() > 0)) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    String aliasNamesString=buildAliasNameString(property.getAliasNames());
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_ALIASNAME,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,aliasNamesString);
  }
  String xsdLocalName=((SDOProperty)property).getXsdLocalName();
  if ((xsdLocalName != null) && !(xsdLocalName.equals(property.getName()))) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    QName qname=new QName(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_NAME,sdoXmlPrefix);
    sc.getAttributesMap().put(qname,property.getName());
  }
  if ((element && !property.isContainment() && !property.getType().isDataType()) || (!element && !property.getType().isDataType())) {
    String sdoXmlPrefix=getPrefixForURI(SDOConstants.SDOXML_URL);
    String uri=property.getType().getURI();
    String value=property.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 (property.getOpposite() != null) {
    String value=property.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)property.get(xmlDataTypeProperty);
  if (dataType == null) {
    dataType=getAutomaticDataTypeForType(property.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)property.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)property.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);
      }
    }
  }
}