Program: 68581
Project: 68581
Buggy source:
/** 
 * Structure: root rootproperty1 --> is DataType; SDOString  <---> value: "test" rootproperty2 --> not DataType            <---> value: containedDataObject root's child: containedDataObject1 contained1Property1 --> not DataType; bidirectional   <---> value: containedByContainedDataObject containedDataObject containedProperty1  --> is DataType; SDOString  <---> value: "test1" containedProperty2  --> not DataType            <---> value: containedByContainedDataObject containedProperty_ChangeSummary  --> not DataType  <---> value: chSum(ChangeSummary) containedDataObject's child: containedByContainedDataObject containedByContainedProperty1  --> not DataType; bidirectional   <---> value: containedDataObejct1 Covered test cases: Test case 1: copied root's DataType property rootproperty1 has same value Test Case 2: copied root's not DataType property rootproperty2 has a copied DataObject from containedDataObject Test case 3: there exists dataobject's bidircetional not containment property has another DataObjcet as value Test Case 4: there exists dataobject's unidircetional not containment property has another DataObjcet as value Test Case 5: there exists dataobject's not containment property has another DataObjcet that is not in containment tree as value Test Case 6: copied containedProperty's ChangeSummary Type property containedProperty_ChangeSummary has a copied ChangeSummary from source's ChangeSummary chSum
 */
public void setUp(){
  super.setUp();
  DataObject rootTypeDO=defineType(rootTypeUri,rootTypeName);
  rootType=(SDOType)typeHelper.define(rootTypeDO);
  rootType.setOpen(true);
  rootProperty1=new SDOProperty(aHelperContext);
  rootProperty1.setName("String_Node_Str");
  SDOType rootProperty1_type=SDOConstants.SDO_STRING;
  rootProperty1_type.setDataType(true);
  rootProperty1.setType(rootProperty1_type);
  rootType.addDeclaredProperty(rootProperty1);
  rootProperty2=new SDOProperty(aHelperContext);
  rootProperty2.setName("String_Node_Str");
  rootProperty2.setContainment(true);
  DataObject rootProperty2_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType rootProperty2_type=(SDOType)typeHelper.define(rootProperty2_typeDO);
  rootProperty2_type.setDataType(false);
  rootProperty2.setType(rootProperty2_type);
  rootType.addDeclaredProperty(rootProperty2);
  rootProperty3=new SDOProperty(aHelperContext);
  rootProperty3.setName("String_Node_Str");
  rootProperty3.setContainment(true);
  DataObject rootProperty3_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType rootProperty3_type=(SDOType)typeHelper.define(rootProperty3_typeDO);
  rootProperty3_type.setDataType(false);
  rootProperty3.setType(rootProperty3_type);
  rootType.addDeclaredProperty(rootProperty3);
  rootProperty4=new SDOProperty(aHelperContext);
  rootProperty4.setName("String_Node_Str");
  rootProperty4.setContainment(true);
  DataObject rootProperty4_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType rootProperty4_type=(SDOType)typeHelper.define(rootProperty4_typeDO);
  rootProperty4_type.setDataType(false);
  rootProperty4.setType(rootProperty4_type);
  rootType.addDeclaredProperty(rootProperty4);
  DataObject containedTypeDO=defineType(containedTypeUri,containedTypeName);
  containedType=(SDOType)typeHelper.define(containedTypeDO);
  containedProperty1=new SDOProperty(aHelperContext);
  containedProperty1.setName("String_Node_Str");
  SDOType containedProperty1_type=SDOConstants.SDO_STRING;
  containedProperty1_type.setDataType(true);
  containedProperty1.setType(containedProperty1_type);
  containedType.addDeclaredProperty(containedProperty1);
  containedProperty2=new SDOProperty(aHelperContext);
  containedProperty2.setName("String_Node_Str");
  containedProperty2.setContainment(true);
  DataObject containedProperty2_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType containedProperty2_type=(SDOType)typeHelper.define(containedProperty2_typeDO);
  containedProperty2_type.setDataType(false);
  containedProperty2.setType(containedProperty2_type);
  containedType.addDeclaredProperty(containedProperty2);
  containedDataObject1=new SDODataObject();
  DataObject containedType1DO=defineType(containedType1Uri,containedType1Name);
  containedType1=(SDOType)typeHelper.define(containedType1DO);
  containedDataObject1._setType(containedType1);
  contained1Property1=new SDOProperty(aHelperContext);
  contained1Property1.setName("String_Node_Str");
  contained1Property1.setContainment(false);
  DataObject contained1Property1_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType contained1Property1_type=(SDOType)typeHelper.define(contained1Property1_typeDO);
  contained1Property1_type.setDataType(false);
  contained1Property1.setType(contained1Property1_type);
  contained1Property1.setOpposite(containedByContainedProperty1);
  containedType1.addDeclaredProperty(contained1Property1);
  containedByContainedDataObject=new SDODataObject();
  DataObject containedByContainedTypeDO=defineType(containedBycontainedType1Uri,containedByContainedTypeName);
  containedByContainedType=(SDOType)typeHelper.define(containedByContainedTypeDO);
  containedByContainedDataObject._setType(containedByContainedType);
  containedByContainedProperty1=new SDOProperty(aHelperContext);
  containedByContainedProperty1.setName("String_Node_Str");
  containedByContainedProperty1.setContainment(false);
  DataObject containedByContainedProperty1_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType containedByContainedProperty1_type=(SDOType)typeHelper.define(containedByContainedProperty1_typeDO);
  containedByContainedProperty1_type.setDataType(false);
  containedByContainedProperty1.setType(containedByContainedProperty1_type);
  containedByContainedProperty1.setOpposite(contained1Property1);
  containedByContainedType.addDeclaredProperty(containedByContainedProperty1);
  contained1Property1.setOpposite(containedByContainedProperty1);
  containedByContainedProperty2=new SDOProperty(aHelperContext);
  containedByContainedProperty2.setName("String_Node_Str");
  containedByContainedProperty2.setContainment(false);
  DataObject containedByContainedProperty2_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType containedByContainedProperty2_type=(SDOType)typeHelper.define(containedByContainedProperty2_typeDO);
  containedByContainedProperty2_type.setDataType(false);
  containedByContainedProperty2.setType(containedByContainedProperty2_type);
  containedByContainedType.addDeclaredProperty(containedByContainedProperty2);
  containedProperty_ChangeSummary=new SDOProperty(aHelperContext);
  containedProperty_ChangeSummary.setContainment(false);
  containedProperty_ChangeSummary.setType(SDOConstants.SDO_CHANGESUMMARY);
  containedProperty_ChangeSummary.setName("String_Node_Str");
  containedType.addDeclaredProperty(containedProperty_ChangeSummary);
  root=(SDODataObject)dataFactory.create(rootType);
  root1=(SDODataObject)dataFactory.create(rootType);
  containedDataObject=(SDODataObject)dataFactory.create(containedType);
  containedDataObject_1=(SDODataObject)dataFactory.create(containedType);
  root.set(rootProperty1,"String_Node_Str");
  root1.set(rootProperty1,"String_Node_Str");
  root.set(rootProperty2,containedDataObject);
  root1.set(rootProperty2,containedDataObject_1);
  containedDataObject.set(containedProperty1,"String_Node_Str");
  containedDataObject_1.set(containedProperty1,"String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Structure: root rootproperty1 --> is DataType; SDOString  <---> value: "test" rootproperty2 --> not DataType            <---> value: containedDataObject root's child: containedDataObject1 contained1Property1 --> not DataType; bidirectional   <---> value: containedByContainedDataObject containedDataObject containedProperty1  --> is DataType; SDOString  <---> value: "test1" containedProperty2  --> not DataType            <---> value: containedByContainedDataObject containedProperty_ChangeSummary  --> not DataType  <---> value: chSum(ChangeSummary) containedDataObject's child: containedByContainedDataObject containedByContainedProperty1  --> not DataType; bidirectional   <---> value: containedDataObejct1 Covered test cases: Test case 1: copied root's DataType property rootproperty1 has same value Test Case 2: copied root's not DataType property rootproperty2 has a copied DataObject from containedDataObject Test case 3: there exists dataobject's bidircetional not containment property has another DataObjcet as value Test Case 4: there exists dataobject's unidircetional not containment property has another DataObjcet as value Test Case 5: there exists dataobject's not containment property has another DataObjcet that is not in containment tree as value Test Case 6: copied containedProperty's ChangeSummary Type property containedProperty_ChangeSummary has a copied ChangeSummary from source's ChangeSummary chSum
 */
public void setUp(){
  super.setUp();
  SDOType changeSummaryType=(SDOType)typeHelper.getType(SDOConstants.SDO_URL,SDOConstants.CHANGESUMMARY);
  DataObject rootTypeDO=defineType(rootTypeUri,rootTypeName);
  rootType=(SDOType)typeHelper.define(rootTypeDO);
  rootType.setOpen(true);
  rootProperty1=new SDOProperty(aHelperContext);
  rootProperty1.setName("String_Node_Str");
  SDOType rootProperty1_type=SDOConstants.SDO_STRING;
  rootProperty1_type.setDataType(true);
  rootProperty1.setType(rootProperty1_type);
  rootType.addDeclaredProperty(rootProperty1);
  rootProperty2=new SDOProperty(aHelperContext);
  rootProperty2.setName("String_Node_Str");
  rootProperty2.setContainment(true);
  DataObject rootProperty2_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType rootProperty2_type=(SDOType)typeHelper.define(rootProperty2_typeDO);
  rootProperty2_type.setDataType(false);
  rootProperty2.setType(rootProperty2_type);
  rootType.addDeclaredProperty(rootProperty2);
  rootProperty3=new SDOProperty(aHelperContext);
  rootProperty3.setName("String_Node_Str");
  rootProperty3.setContainment(true);
  DataObject rootProperty3_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType rootProperty3_type=(SDOType)typeHelper.define(rootProperty3_typeDO);
  rootProperty3_type.setDataType(false);
  rootProperty3.setType(rootProperty3_type);
  rootType.addDeclaredProperty(rootProperty3);
  rootProperty4=new SDOProperty(aHelperContext);
  rootProperty4.setName("String_Node_Str");
  rootProperty4.setContainment(true);
  DataObject rootProperty4_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType rootProperty4_type=(SDOType)typeHelper.define(rootProperty4_typeDO);
  rootProperty4_type.setDataType(false);
  rootProperty4.setType(rootProperty4_type);
  rootType.addDeclaredProperty(rootProperty4);
  DataObject containedTypeDO=defineType(containedTypeUri,containedTypeName);
  containedType=(SDOType)typeHelper.define(containedTypeDO);
  containedProperty1=new SDOProperty(aHelperContext);
  containedProperty1.setName("String_Node_Str");
  SDOType containedProperty1_type=SDOConstants.SDO_STRING;
  containedProperty1_type.setDataType(true);
  containedProperty1.setType(containedProperty1_type);
  containedType.addDeclaredProperty(containedProperty1);
  containedProperty2=new SDOProperty(aHelperContext);
  containedProperty2.setName("String_Node_Str");
  containedProperty2.setContainment(true);
  DataObject containedProperty2_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType containedProperty2_type=(SDOType)typeHelper.define(containedProperty2_typeDO);
  containedProperty2_type.setDataType(false);
  containedProperty2.setType(containedProperty2_type);
  containedType.addDeclaredProperty(containedProperty2);
  containedDataObject1=new SDODataObject();
  DataObject containedType1DO=defineType(containedType1Uri,containedType1Name);
  containedType1=(SDOType)typeHelper.define(containedType1DO);
  containedDataObject1._setType(containedType1);
  contained1Property1=new SDOProperty(aHelperContext);
  contained1Property1.setName("String_Node_Str");
  contained1Property1.setContainment(false);
  DataObject contained1Property1_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType contained1Property1_type=(SDOType)typeHelper.define(contained1Property1_typeDO);
  contained1Property1_type.setDataType(false);
  contained1Property1.setType(contained1Property1_type);
  contained1Property1.setOpposite(containedByContainedProperty1);
  containedType1.addDeclaredProperty(contained1Property1);
  containedByContainedDataObject=new SDODataObject();
  DataObject containedByContainedTypeDO=defineType(containedBycontainedType1Uri,containedByContainedTypeName);
  containedByContainedType=(SDOType)typeHelper.define(containedByContainedTypeDO);
  containedByContainedDataObject._setType(containedByContainedType);
  containedByContainedProperty1=new SDOProperty(aHelperContext);
  containedByContainedProperty1.setName("String_Node_Str");
  containedByContainedProperty1.setContainment(false);
  DataObject containedByContainedProperty1_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType containedByContainedProperty1_type=(SDOType)typeHelper.define(containedByContainedProperty1_typeDO);
  containedByContainedProperty1_type.setDataType(false);
  containedByContainedProperty1.setType(containedByContainedProperty1_type);
  containedByContainedProperty1.setOpposite(contained1Property1);
  containedByContainedType.addDeclaredProperty(containedByContainedProperty1);
  contained1Property1.setOpposite(containedByContainedProperty1);
  containedByContainedProperty2=new SDOProperty(aHelperContext);
  containedByContainedProperty2.setName("String_Node_Str");
  containedByContainedProperty2.setContainment(false);
  DataObject containedByContainedProperty2_typeDO=defineType("String_Node_Str","String_Node_Str");
  SDOType containedByContainedProperty2_type=(SDOType)typeHelper.define(containedByContainedProperty2_typeDO);
  containedByContainedProperty2_type.setDataType(false);
  containedByContainedProperty2.setType(containedByContainedProperty2_type);
  containedByContainedType.addDeclaredProperty(containedByContainedProperty2);
  containedProperty_ChangeSummary=new SDOProperty(aHelperContext);
  containedProperty_ChangeSummary.setContainment(false);
  containedProperty_ChangeSummary.setType(changeSummaryType);
  containedProperty_ChangeSummary.setName("String_Node_Str");
  containedType.addDeclaredProperty(containedProperty_ChangeSummary);
  root=(SDODataObject)dataFactory.create(rootType);
  root1=(SDODataObject)dataFactory.create(rootType);
  containedDataObject=(SDODataObject)dataFactory.create(containedType);
  containedDataObject_1=(SDODataObject)dataFactory.create(containedType);
  root.set(rootProperty1,"String_Node_Str");
  root1.set(rootProperty1,"String_Node_Str");
  root.set(rootProperty2,containedDataObject);
  root1.set(rootProperty2,containedDataObject_1);
  containedDataObject.set(containedProperty1,"String_Node_Str");
  containedDataObject_1.set(containedProperty1,"String_Node_Str");
}