[ 
https://issues.apache.org/jira/browse/OLINGO-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15780414#comment-15780414
 ] 

Punith DG commented on OLINGO-1064:
-----------------------------------

Hi Christian,

This issue is reproducible though I'm using EDM aware ODataClient. I have 
initialized the ODataClient with the Edm object.
Check below code.

ODataClient odataClient = ODataClientFactory.getEdmEnabledClient(null, 
edmObject, null, ContentType.JSON);
ClientEntity entity = odataClient.getReader().readEntity(responseInputStream, 
ContentType.JSON);

Is there anything wrong with above code?

Regards,
Punith

> ComplexType is deserialized as Primitive Type if the value is NULL
> ------------------------------------------------------------------
>
>                 Key: OLINGO-1064
>                 URL: https://issues.apache.org/jira/browse/OLINGO-1064
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-core, odata4-client, odata4-commons
>    Affects Versions: (Java) V4 4.2.0
>            Reporter: Punith DG
>            Assignee: Christian Amend
>         Attachments: complexType.png
>
>
> The ODataClient deserializer wrongly converts the Complex Type field to 
> Primitive Type field if the value received for the complex type is NULL.
> e.g. on querying Person data from OData TripPin service 
> (https://services.odata.org/TripPinRESTierService) I received below JSON 
> response.
> {
>       "@odata.context": 
> "http://services.odata.org/TripPinRESTierService/(S(myhztseklikbg41mbg03ugk5))/$metadata#People(AddressInfo,FavoriteFeature,FirstName,HomeAddress,LastName,UserName)",
>       "value": [{
>               "FavoriteFeature": "Feature1",
>               "FirstName": "Angel",
>               "Gender": "Female",
>               "LastName": "Huffman",
>               "UserName": "angelhuffman",
>               "AddressInfo": [{
>                       "Address": "55 Grizzly Peak Rd.",
>                       "City": {
>                               "Name": "Butte",
>                               "CountryRegion": "United States",
>                               "Region": "MT"
>                       }
>               }],
>               "HomeAddress": null
>       }]
> }
> See that 'HomeAddress' is ComplexType of type 'Location' and received 'null' 
> value.
> Similarly, ComplexType property 'City' is deserialized as Primitive Type in 
> the below response.
> "HomeAddress": {
>                       "Address": null,
>                       "City": null
>               }
> When you deserialize and get an entity, the HomeAddress property of the 
> Person entity is set to Primitive Type with null value. This could be complex 
> type?
> Metadata URL - http://tinyurl.com/gm8vomc



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to