You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Georgi (JIRA)" <ji...@apache.org> on 2013/10/26 23:03:30 UTC

[jira] [Created] (OLINGO-45) ClassCastException on Entity update

Georgi created OLINGO-45:
----------------------------

             Summary: 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


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)