You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Christian Amend (JIRA)" <ji...@apache.org> on 2016/07/27 14:37:20 UTC

[jira] [Commented] (OLINGO-981) Binding operation null on to one

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

Christian Amend commented on OLINGO-981:
----------------------------------------

[~rareddy] Hi Ramesh,

I had a look at the code. "NavPropertyETTwoPrimOne" has the property "Nullable=flase". The code you committed does not take this into account and thus would allow a client to send a binding operation which sets a non nullable navigation property to null.

In my opinion there should be a check to see if the binding can be null before allowing a null value. WDYT?

Best Regards,
Christian

> Binding operation null on to one
> --------------------------------
>
>                 Key: OLINGO-981
>                 URL: https://issues.apache.org/jira/browse/OLINGO-981
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata4-server
>    Affects Versions: (Java) V4 4.2.0
>            Reporter: Héctor Navarro
>            Assignee: Ramesh Reddy
>             Fix For: (Java) V4 4.3.0
>
>
> Apache Olingo isn't compliant with OData 4 feature "For nullable single-valued navigation properties the value null may be used to remove the relationship". 
> I believe if the navigation property is a single entity (to one relationship) and it is defined as nullable, it can be null, as sais at OData documentation ("For nullable single-valued navigation properties the value null may be used to remove the relationship.").
>  
> As example, we can use org.apache.olingo.server.core.deserializer.json.ODataJsonDeserializerEntityTest.bindingOperationNullOnToOne():
>  
>   @Test
>   public void bindingOperationNullOnToOne() throws Exception {
>     String entityString =
>         "{\"PropertyInt16\":32767,"
>             + "\"PropertyString\":\"First Resource - positive values\","
>             + "\"NavPropertyETTwoPrimOne@odata.bind\":null"
>             + "}";
>     expectException(entityString, "ETAllPrim",
>         DeserializerException.MessageKeys.INVALID_NULL_ANNOTATION);
>   }
>  
> I believe that if we define NavPropertyETTwoPrimOne as nullable, it shouldn't throw INVALID_NULL_ANNOTATION exception. 



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