Program: 68817
Project: 68817
Buggy source:
/** 
 * INTERNAL: Get the XMLDescriptor associated with this Type or generate a new one.
 */
public XMLDescriptor getXmlDescriptor(){
  if (!isDataType() && (xmlDescriptor == null)) {
    xmlDescriptor=new XMLDescriptor();
    NamespaceResolver nr=new NamespaceResolver();
    if ((getBaseTypes() != null) && (getBaseTypes().size() > 0)) {
      SDOType baseType=(SDOType)getBaseTypes().get(0);
      if (!baseType.isDataType) {
        NamespaceResolver parentNR=baseType.getXmlDescriptor().getNonNullNamespaceResolver();
        if (parentNR != null) {
          for (int i=0; i < parentNR.getNamespaces().size(); i++) {
            Namespace nextNamespace=(Namespace)parentNR.getNamespaces().get(i);
            if ((!nextNamespace.getPrefix().equals(XMLConstants.XMLNS)) && (!nextNamespace.getNamespaceURI().equals(XMLConstants.SCHEMA_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOJAVA_URL))&& (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOXML_URL))&& (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDO_URL))) {
              nr.put(nextNamespace.getPrefix(),nextNamespace.getNamespaceURI());
            }
          }
        }
      }
    }
    xmlDescriptor.setNamespaceResolver(nr);
    if (getURI() != null) {
      String prefix=((SDOTypeHelper)aHelperContext.getTypeHelper()).getPrefix(getURI());
      xmlDescriptor.getNamespaceResolver().put(prefix,getURI());
    }
    xmlDescriptor.getNamespaceResolver().put(XMLConstants.SCHEMA_INSTANCE_PREFIX,XMLConstants.SCHEMA_INSTANCE_URL);
  }
  return xmlDescriptor;
}

Fixed version (ground truth):
/** 
 * INTERNAL: Get the XMLDescriptor associated with this Type or generate a new one.
 */
public XMLDescriptor getXmlDescriptor(List namespaceResolvers){
  if (!isDataType() && (xmlDescriptor == null)) {
    xmlDescriptor=new XMLDescriptor();
    NamespaceResolver nr=new NamespaceResolver();
    if (namespaceResolvers != null) {
      for (int i=0; i < namespaceResolvers.size(); i++) {
        NamespaceResolver nextNR=(NamespaceResolver)namespaceResolvers.get(i);
        if (nextNR != null) {
          for (int j=0, size=nextNR.getNamespaces().size(); j < size; j++) {
            Namespace nextNamespace=(Namespace)nextNR.getNamespaces().get(j);
            if ((!nextNamespace.getPrefix().equals(XMLConstants.XMLNS)) && (!nextNamespace.getNamespaceURI().equals(XMLConstants.SCHEMA_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOJAVA_URL))&& (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOXML_URL))&& (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDO_URL))) {
              String newPrefix=((SDOTypeHelper)aHelperContext.getTypeHelper()).addNamespace(nextNamespace.getPrefix(),nextNamespace.getNamespaceURI());
              nr.put(newPrefix,nextNamespace.getNamespaceURI());
            }
          }
        }
      }
    }
    if ((getBaseTypes() != null) && (getBaseTypes().size() > 0)) {
      SDOType baseType=(SDOType)getBaseTypes().get(0);
      if (!baseType.isDataType) {
        NamespaceResolver parentNR=baseType.getXmlDescriptor().getNonNullNamespaceResolver();
        if (parentNR != null) {
          for (int i=0; i < parentNR.getNamespaces().size(); i++) {
            Namespace nextNamespace=(Namespace)parentNR.getNamespaces().get(i);
            if ((!nextNamespace.getPrefix().equals(XMLConstants.XMLNS)) && (!nextNamespace.getNamespaceURI().equals(XMLConstants.SCHEMA_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOJAVA_URL))&& (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOXML_URL))&& (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDO_URL))) {
              nr.put(nextNamespace.getPrefix(),nextNamespace.getNamespaceURI());
            }
          }
        }
      }
    }
    xmlDescriptor.setNamespaceResolver(nr);
    if (getURI() != null) {
      String prefix=((SDOTypeHelper)aHelperContext.getTypeHelper()).getPrefix(getURI());
      xmlDescriptor.getNamespaceResolver().put(prefix,getURI());
    }
    xmlDescriptor.getNamespaceResolver().put(XMLConstants.SCHEMA_INSTANCE_PREFIX,XMLConstants.SCHEMA_INSTANCE_URL);
  }
  return xmlDescriptor;
}