Program: 68589
Project: 68589
Buggy source:
public void testPolymorphicProperty(){
  DataObject addressTypeDO=dataFactory.create(SDOConstants.SDO_TYPE);
  addressTypeDO.set("String_Node_Str","String_Node_Str");
  addProperty(addressTypeDO,"String_Node_Str",SDOConstants.SDO_STRING,false,false,true);
  addProperty(addressTypeDO,"String_Node_Str",SDOConstants.SDO_STRING,false,false,true);
  Type addressType=typeHelper.define(addressTypeDO);
  DataObject cdnAddressTypeDO=dataFactory.create(SDOConstants.SDO_TYPE);
  cdnAddressTypeDO.set("String_Node_Str","String_Node_Str");
  List baseTypes=new ArrayList();
  baseTypes.add(addressType);
  cdnAddressTypeDO.set("String_Node_Str",baseTypes);
  addProperty(cdnAddressTypeDO,"String_Node_Str",SDOConstants.SDO_STRING,false,false,true);
  Type cdnAddressType=typeHelper.define(cdnAddressTypeDO);
  DataObject personTypeDO=dataFactory.create(SDOConstants.SDO_TYPE);
  personTypeDO.set("String_Node_Str","String_Node_Str");
  addProperty(personTypeDO,"String_Node_Str",SDOConstants.SDO_STRING,false,false,true);
  addProperty(personTypeDO,"String_Node_Str",addressType,true,false,true);
  Type personType=typeHelper.define(personTypeDO);
  DataObject addressDO=dataFactory.create(addressType);
  addressDO.set("String_Node_Str","String_Node_Str");
  addressDO.set("String_Node_Str","String_Node_Str");
  DataObject personDO=dataFactory.create(personType);
  personDO.set("String_Node_Str","String_Node_Str");
  personDO.set("String_Node_Str",addressDO);
  DataObject value=personDO.getDataObject("String_Node_Str");
  assertEquals("String_Node_Str",value.getType().getName());
  DataObject cdnAddressDO=dataFactory.create(cdnAddressType);
  cdnAddressDO.set("String_Node_Str","String_Node_Str");
  cdnAddressDO.set("String_Node_Str","String_Node_Str");
  cdnAddressDO.set("String_Node_Str","String_Node_Str");
  personDO.set("String_Node_Str",cdnAddressDO);
  value=personDO.getDataObject("String_Node_Str");
  assertEquals("String_Node_Str",value.getType().getName());
}

Fixed version (ground truth):
public void testPolymorphicProperty(){
  SDOType typeType=(SDOType)typeHelper.getType(SDOConstants.SDO_URL,SDOConstants.TYPE);
  DataObject addressTypeDO=dataFactory.create(typeType);
  addressTypeDO.set("String_Node_Str","String_Node_Str");
  addProperty(addressTypeDO,"String_Node_Str",SDOConstants.SDO_STRING,false,false,true);
  addProperty(addressTypeDO,"String_Node_Str",SDOConstants.SDO_STRING,false,false,true);
  Type addressType=typeHelper.define(addressTypeDO);
  DataObject cdnAddressTypeDO=dataFactory.create(typeType);
  cdnAddressTypeDO.set("String_Node_Str","String_Node_Str");
  List baseTypes=new ArrayList();
  baseTypes.add(addressType);
  cdnAddressTypeDO.set("String_Node_Str",baseTypes);
  addProperty(cdnAddressTypeDO,"String_Node_Str",SDOConstants.SDO_STRING,false,false,true);
  Type cdnAddressType=typeHelper.define(cdnAddressTypeDO);
  DataObject personTypeDO=dataFactory.create(typeType);
  personTypeDO.set("String_Node_Str","String_Node_Str");
  addProperty(personTypeDO,"String_Node_Str",SDOConstants.SDO_STRING,false,false,true);
  addProperty(personTypeDO,"String_Node_Str",addressType,true,false,true);
  Type personType=typeHelper.define(personTypeDO);
  DataObject addressDO=dataFactory.create(addressType);
  addressDO.set("String_Node_Str","String_Node_Str");
  addressDO.set("String_Node_Str","String_Node_Str");
  DataObject personDO=dataFactory.create(personType);
  personDO.set("String_Node_Str","String_Node_Str");
  personDO.set("String_Node_Str",addressDO);
  DataObject value=personDO.getDataObject("String_Node_Str");
  assertEquals("String_Node_Str",value.getType().getName());
  DataObject cdnAddressDO=dataFactory.create(cdnAddressType);
  cdnAddressDO.set("String_Node_Str","String_Node_Str");
  cdnAddressDO.set("String_Node_Str","String_Node_Str");
  cdnAddressDO.set("String_Node_Str","String_Node_Str");
  personDO.set("String_Node_Str",cdnAddressDO);
  value=personDO.getDataObject("String_Node_Str");
  assertEquals("String_Node_Str",value.getType().getName());
}