Repository: olingo-odata4
Updated Branches:
  refs/heads/master aa8f2cfc2 -> 37fe8e19b


OLINGO-981: Allowing the null value in non-collection navigation binding 
property


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/37fe8e19
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/37fe8e19
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/37fe8e19

Branch: refs/heads/master
Commit: 37fe8e19b082766f8833ae507f446a934abf42c6
Parents: aa8f2cf
Author: Ramesh Reddy <[email protected]>
Authored: Wed Jul 27 09:28:16 2016 -0500
Committer: Ramesh Reddy <[email protected]>
Committed: Wed Jul 27 09:28:16 2016 -0500

----------------------------------------------------------------------
 .../core/deserializer/json/ODataJsonDeserializer.java     |  7 +++++--
 .../json/ODataJsonDeserializerEntityTest.java             | 10 ++++++----
 2 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/37fe8e19/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
index 3398dc7..5f98bd7 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
@@ -439,12 +439,15 @@ public class ODataJsonDeserializer implements 
ODataDeserializer {
       bindingLink.setType(Constants.ENTITY_COLLECTION_BINDING_LINK_TYPE);
       bindingLink.setBindingLinks(bindingLinkStrings);
     } else {
-      assertIsNullNode(key, jsonNode);
       if (!jsonNode.isValueNode()) {
         throw new DeserializerException("Binding annotation: " + key + " must 
be a string value.",
             DeserializerException.MessageKeys.INVALID_ANNOTATION_TYPE, key);
       }
-      bindingLink.setBindingLink(jsonNode.asText());
+      if (jsonNode.isNull()) {
+        bindingLink.setBindingLink(null);
+      } else {
+        bindingLink.setBindingLink(jsonNode.asText());
+      }
       bindingLink.setType(Constants.ENTITY_BINDING_LINK_TYPE);
     }
     return bindingLink;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/37fe8e19/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
index 6b46ffd..368dda6 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
@@ -1029,10 +1029,12 @@ public class ODataJsonDeserializerEntityTest extends 
AbstractODataDeserializerTe
             + "\"PropertyString\":\"First Resource - positive values\","
             + "\"[email protected]\":null"
             + "}";
-    expectException(entityString, "ETAllPrim",
-        DeserializerException.MessageKeys.INVALID_NULL_ANNOTATION);
+    
+    final Entity entity = deserialize(entityString, "ETAllPrim");
+    assertEquals("First Resource - positive values", 
entity.getProperty("PropertyString").asPrimitive());
+    
assertNull(entity.getNavigationBinding("NavPropertyETTwoPrimOne").getBindingLink());
   }
-
+  
   @Test
   public void bindingOperationNullOnToMany() throws Exception {
     String entityString =
@@ -1382,5 +1384,5 @@ public class ODataJsonDeserializerEntityTest extends 
AbstractODataDeserializerTe
     } catch (final DeserializerException e) {
       assertEquals(messageKey, e.getMessageKey());
     }
-  }
+  } 
 }

Reply via email to