You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ra...@apache.org on 2016/07/27 14:29:50 UTC
olingo-odata4 git commit: OLINGO-981: Allowing the null value in
non-collection navigation binding property
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 <ra...@jboss.org>
Authored: Wed Jul 27 09:28:16 2016 -0500
Committer: Ramesh Reddy <ra...@jboss.org>
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\","
+ "\"NavPropertyETTwoPrimOne@odata.bind\":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());
}
- }
+ }
}