[
https://issues.apache.org/jira/browse/TUSCANY-1540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Frank Budinsky reopened TUSCANY-1540:
-------------------------------------
Reopening this issue until the test case is added.
Murtaza, thanks for providing the patch.
> Abstract Static Base Types mixed with Dynamic Extended Types
> ------------------------------------------------------------
>
> Key: TUSCANY-1540
> URL: https://issues.apache.org/jira/browse/TUSCANY-1540
> Project: Tuscany
> Issue Type: Bug
> Components: Java SDO Implementation
> Affects Versions: Java-SDO-1.0
> Reporter: Murtaza Goga
> Fix For: Java-SDO-Next
>
> Attachments: TUSCANY-1540-TestCases.patch
>
>
> Setting a property on a static data object with an object of a type extended
> in a dynamic model results in a ClassCastException.
> Scenario:
> Static schema-
> <xsd:complexType name="CustomerType">
> <xsd:all>
> <xsd:element name="number" type="xsd:integer" />
> <xsd:element form="unqualified" name="info" type="InfoType" />
> </xsd:all>
> </xsd:complexType>
>
> <xsd:complexType name="InfoType" abstract="true"/>
> Dynamic Schema
> <xsd:complexType name="InfoType">
> <xsd:complexContent>
> <xsd:extension base="staticNS:InfoType">
> <xsd:sequence>
> <xsd:element name="zipcode" type="xsd:string" />
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> The following will fail:
> DataFactory factory = scope.getDataFactory();
> factory.create(CustomerType.class).setDataObject("info",
> factory.create("dynamicNS", "InfoType"));
> It should be legal to assign a property to an object if they are in the same
> hierachy.
> Steps to reproduce within Tuscany:
> Testcase org.apache.tuscany.sdo.test.ExtensibleTestCase will break if
> 'InfoType' defined in extensible/customer.xsd is marked as abstract.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]