Program: 68369
Project: 68369
Buggy source:
protected void compareGeneratedTypes(List controlTypes,List types){
  assertEquals(controlTypes.size(),types.size());
  SDOProperty xmlDataTypeProperty=(SDOProperty)typeHelper.getOpenContentProperty(SDOConstants.ORACLE_SDO_URL,SDOConstants.SDOXML_DATATYPE);
  SDOProperty xmlSchemaTypeProperty=(SDOProperty)typeHelper.getOpenContentProperty(SDOConstants.ORACLE_SDO_URL,SDOConstants.XML_SCHEMA_TYPE_NAME);
  for (int i=0; i < types.size(); i++) {
    SDOType control=(SDOType)controlTypes.get(i);
    SDOType generated=null;
    for (int j=0; j < types.size(); j++) {
      SDOType next=(SDOType)types.get(j);
      if (next.getName().equals(control.getName())) {
        if ((next.getURI() == null && control.getURI() == null) || ((next.getURI() != null && control.getURI() != null && next.getURI().equals(control.getURI())))) {
          generated=next;
          break;
        }
      }
    }
    assertNotNull(generated);
    assertEquals(control.getURI(),generated.getURI());
    assertEquals(control.getName(),generated.getName());
    if (control.getBaseTypes() == null) {
      assertNull(generated.getBaseTypes());
    }
    assertEquals(control.getBaseTypes().size(),generated.getBaseTypes().size());
    assertEquals(control.isOpen(),generated.isOpen());
    assertEquals(control.isSequenced(),generated.isSequenced());
    assertEquals(control.getInstanceClassName(),generated.getInstanceClassName());
    assertEquals(control.getDeclaredProperties().size(),generated.getDeclaredProperties().size());
    assertEquals(control.getAliasNames().size(),generated.getAliasNames().size());
    List controlProps=control.getDeclaredProperties();
    for (int j=0; j < controlProps.size(); j++) {
      SDOProperty controlProp=(SDOProperty)controlProps.get(j);
      SDOProperty generatedProp=(SDOProperty)generated.getProperty(controlProp.getName());
      assertEquals(controlProp.isMany(),generatedProp.isMany());
      Object controlXMLElementValue=controlProp.get(SDOConstants.XMLELEMENT_PROPERTY);
      if (controlXMLElementValue != null) {
        Object generatedXMLElementValue=generatedProp.get(SDOConstants.XMLELEMENT_PROPERTY);
        assertTrue(controlXMLElementValue instanceof Boolean);
        assertTrue(generatedXMLElementValue instanceof Boolean);
        assertEquals(((Boolean)controlXMLElementValue).booleanValue(),((Boolean)generatedXMLElementValue).booleanValue());
      }
      Object controlDataTypeValue=controlProp.get(xmlDataTypeProperty);
      Object generatedDataTypeValue=generatedProp.get(xmlDataTypeProperty);
      if (controlDataTypeValue == null) {
        assertNull(generatedDataTypeValue);
      }
 else {
        assertTrue(controlDataTypeValue instanceof Type);
        assertTrue(generatedDataTypeValue instanceof Type);
        assertEquals(controlDataTypeValue,generatedDataTypeValue);
      }
      Object generatedSchemaTypeValue=generatedProp.get(xmlSchemaTypeProperty);
      assertEquals(xsdHelper.isAttribute(controlProp),xsdHelper.isAttribute(generatedProp));
      assertEquals(xsdHelper.isElement(controlProp),xsdHelper.isElement(generatedProp));
      assertEquals(controlProp.isXsd(),generatedProp.isXsd());
      assertEquals(controlProp.getXsdLocalName(),generatedProp.getXsdLocalName());
      assertEquals(controlProp.isNullable(),generatedProp.isNullable());
      if (controlProp.getContainingType() == null) {
        assertNull(generatedProp.getContainingType());
      }
 else {
        assertNotNull(generatedProp.getContainingType());
        assertEquals(controlProp.getContainingType().getName(),generatedProp.getContainingType().getName());
      }
      if (controlProp.getOpposite() == null) {
        assertNull(generatedProp.getOpposite());
      }
 else {
        assertNotNull(generatedProp.getOpposite());
        assertEquals(controlProp.getOpposite().getName(),generatedProp.getOpposite().getName());
      }
      assertEquals(controlProp.getType().getURI(),generatedProp.getType().getURI());
      assertEquals(controlProp.getType().getName(),generatedProp.getType().getName());
      assertEquals(controlProp.getAliasNames().size(),generatedProp.getAliasNames().size());
      assertEquals(controlProp.isReadOnly(),generatedProp.isReadOnly());
    }
  }
}

Fixed version (ground truth):
protected void compareGeneratedTypes(List controlTypes,List types){
  assertEquals(controlTypes.size(),types.size());
  SDOProperty xmlDataTypeProperty=(SDOProperty)typeHelper.getOpenContentProperty(SDOConstants.SDOXML_URL,SDOConstants.SDOXML_DATATYPE);
  SDOProperty xmlSchemaTypeProperty=(SDOProperty)typeHelper.getOpenContentProperty(SDOConstants.ORACLE_SDO_URL,SDOConstants.XML_SCHEMA_TYPE_NAME);
  for (int i=0; i < types.size(); i++) {
    SDOType control=(SDOType)controlTypes.get(i);
    SDOType generated=null;
    for (int j=0; j < types.size(); j++) {
      SDOType next=(SDOType)types.get(j);
      if (next.getName().equals(control.getName())) {
        if ((next.getURI() == null && control.getURI() == null) || ((next.getURI() != null && control.getURI() != null && next.getURI().equals(control.getURI())))) {
          generated=next;
          break;
        }
      }
    }
    assertNotNull(generated);
    assertEquals(control.getURI(),generated.getURI());
    assertEquals(control.getName(),generated.getName());
    if (control.getBaseTypes() == null) {
      assertNull(generated.getBaseTypes());
    }
    assertEquals(control.getBaseTypes().size(),generated.getBaseTypes().size());
    assertEquals(control.isOpen(),generated.isOpen());
    assertEquals(control.isSequenced(),generated.isSequenced());
    assertEquals(control.getInstanceClassName(),generated.getInstanceClassName());
    assertEquals(control.getDeclaredProperties().size(),generated.getDeclaredProperties().size());
    assertEquals(control.getAliasNames().size(),generated.getAliasNames().size());
    List controlProps=control.getDeclaredProperties();
    for (int j=0; j < controlProps.size(); j++) {
      SDOProperty controlProp=(SDOProperty)controlProps.get(j);
      SDOProperty generatedProp=(SDOProperty)generated.getProperty(controlProp.getName());
      assertEquals(controlProp.isMany(),generatedProp.isMany());
      Object controlXMLElementValue=controlProp.get(SDOConstants.XMLELEMENT_PROPERTY);
      if (controlXMLElementValue != null) {
        Object generatedXMLElementValue=generatedProp.get(SDOConstants.XMLELEMENT_PROPERTY);
        assertTrue(controlXMLElementValue instanceof Boolean);
        assertTrue(generatedXMLElementValue instanceof Boolean);
        assertEquals(((Boolean)controlXMLElementValue).booleanValue(),((Boolean)generatedXMLElementValue).booleanValue());
      }
      Object controlDataTypeValue=controlProp.get(xmlDataTypeProperty);
      Object generatedDataTypeValue=generatedProp.get(xmlDataTypeProperty);
      if (controlDataTypeValue == null) {
        assertNull(generatedDataTypeValue);
      }
 else {
        assertTrue(controlDataTypeValue instanceof Type);
        assertTrue(generatedDataTypeValue instanceof Type);
        assertEquals(controlDataTypeValue,generatedDataTypeValue);
      }
      Object generatedSchemaTypeValue=generatedProp.get(xmlSchemaTypeProperty);
      assertEquals(xsdHelper.isAttribute(controlProp),xsdHelper.isAttribute(generatedProp));
      assertEquals(xsdHelper.isElement(controlProp),xsdHelper.isElement(generatedProp));
      assertEquals(controlProp.isXsd(),generatedProp.isXsd());
      assertEquals(controlProp.getXsdLocalName(),generatedProp.getXsdLocalName());
      assertEquals(controlProp.isNullable(),generatedProp.isNullable());
      if (controlProp.getContainingType() == null) {
        assertNull(generatedProp.getContainingType());
      }
 else {
        assertNotNull(generatedProp.getContainingType());
        assertEquals(controlProp.getContainingType().getName(),generatedProp.getContainingType().getName());
      }
      if (controlProp.getOpposite() == null) {
        assertNull(generatedProp.getOpposite());
      }
 else {
        assertNotNull(generatedProp.getOpposite());
        assertEquals(controlProp.getOpposite().getName(),generatedProp.getOpposite().getName());
      }
      assertEquals(controlProp.getType().getURI(),generatedProp.getType().getURI());
      assertEquals(controlProp.getType().getName(),generatedProp.getType().getName());
      assertEquals(controlProp.getAliasNames().size(),generatedProp.getAliasNames().size());
      assertEquals(controlProp.isReadOnly(),generatedProp.isReadOnly());
    }
  }
}