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

Chandan V.A commented on OLINGO-45:
-----------------------------------

Hi Georgi,
The related inline entries are normalized by the method normalizeInlineEntries. 
This method is called during HTTP POST method (ie., deep insert scenarios). The 
normalizeInlineEntries already takes care of normalizing 1:1 relations into 1:M 
(ie. List<ODataEntry>).

Can you please tell what was your use case where HTTP PUT was involved with 
inline entries. Based on this we could also normalizeInlineEntries for update 
scenarios to avoid ClassCastException on Entity Update.

Regards
Chandan

> ClassCastException on Entity update
> -----------------------------------
>
>                 Key: OLINGO-45
>                 URL: https://issues.apache.org/jira/browse/OLINGO-45
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-jpa
>    Affects Versions: 1.0.0, 1.1.0
>            Reporter: Georgi
>            Assignee: Chandan V.A
>
> You might want to doublecheck the logic in 
> org.apache.olingo.odata2.processor.core.jpa.access.data.JPAEntity:write(final 
> Map<String, Object> oDataEntryProperties, final boolean isCreate)
> On line 141 there's an explicit cast to List<ODataEntry>. However I found out 
> that during update, when the property is a 1:1..0 relation to another Entity, 
> the returned type is ODataEntry. And that causes the ClassCastException.
> I managed to solve this for me with a simple if/else block:
> List<ODataEntry> relatedEntries = null;
> if(oDataEntryProperties.get(propertyName) instanceof ODataEntry){
>         relatedEntries = new ArrayList<ODataEntry>();
>         
> relatedEntries.add((ODataEntry)oDataEntryProperties.get(propertyName));
> } else {
>         relatedEntries = 
> (List<ODataEntry>)oDataEntryProperties.get(propertyName);
> }
> The code is from the 1.1.0-SNAPSHOT master branch HEAD.
> I hope that helps.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to