Repository: olingo-odata4 Updated Branches: refs/heads/master d1ef643c9 -> aea44a33a
[OLINGO-1126]ClientProperty hasNullValue incorrect for null complex values Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/aea44a33 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/aea44a33 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/aea44a33 Branch: refs/heads/master Commit: aea44a33a09b68d588e1c5908be9a44e423407ec Parents: d1ef643 Author: ramya vasanth <ramya.vasa...@sap.com> Authored: Fri Jun 9 12:57:54 2017 +0530 Committer: ramya vasanth <ramya.vasa...@sap.com> Committed: Fri Jun 9 12:57:54 2017 +0530 ---------------------------------------------------------------------- .../java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java | 7 ++----- .../apache/olingo/client/core/domain/ClientPropertyImpl.java | 3 ++- .../apache/olingo/client/core/domain/ClientValuableImpl.java | 2 +- .../olingo/client/core/serialization/ODataBinderImpl.java | 1 - 4 files changed, 5 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/aea44a33/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java index cbccb00..63a0d0e 100644 --- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java @@ -1519,7 +1519,7 @@ public class BasicITCase extends AbstractParamTecSvcITCase { assertNotNull(entity.getProperty(PROPERTY_COMP).getComplexValue()); assertEquals("olingo.odata.test1.CTAllPrim", entity.getProperty(PROPERTY_COMP).getComplexValue().getTypeName()); assertEquals(PROPERTY_COMP, entity.getProperty(PROPERTY_COMP).getName()); - assertNull(entity.getProperty(PROPERTY_COMP).getComplexValue().get(PROPERTY_COMP).getComplexValue()); + assertTrue(entity.getProperty(PROPERTY_COMP).hasNullValue()); } @Test @@ -1540,7 +1540,7 @@ public class BasicITCase extends AbstractParamTecSvcITCase { ClientEntity entity = odataClient.getReader().readEntity(input, ContentType.JSON); assertEquals("olingo.odata.test1.CTAllPrim", entity.getProperty(PROPERTY_COMP).getComplexValue().getTypeName()); assertEquals(PROPERTY_COMP, entity.getProperty(PROPERTY_COMP).getName()); - assertTrue(entity.getProperty(PROPERTY_COMP).getComplexValue().asJavaMap().size() == 0); + assertTrue(entity.getProperty(PROPERTY_COMP).hasNullValue()); } @SuppressWarnings("unchecked") @@ -1565,7 +1565,6 @@ public class BasicITCase extends AbstractParamTecSvcITCase { Map<String, Object> map = entity.getProperty(PROPERTY_COMP).getComplexValue().asJavaMap(); assertEquals(map.size(), 2); assertEquals(((Map<String, Object>)map.get(PROPERTY_COMP)).size(), 16); - assertNull(entity.getProperty(PROPERTY_COMP_NAV).getComplexValue().get(PROPERTY_COMP_NAV).getComplexValue()); assertEquals("Collection(olingo.odata.test1.CTPrimComp)", entity.getProperty(COL_PROPERTY_COMP). getCollectionValue().getTypeName()); assertEquals(0, entity.getProperty(COL_PROPERTY_COMP).getCollectionValue().size()); @@ -1573,8 +1572,6 @@ public class BasicITCase extends AbstractParamTecSvcITCase { getComplexValue().getTypeName()); assertEquals("olingo.odata.test1.CTTwoPrim", entity.getProperty(PROPERTY_COMP_TWO_PRIM). getComplexValue().getTypeName()); - assertNull(entity.getProperty(PROPERTY_COMP_TWO_PRIM).getComplexValue(). - get(PROPERTY_COMP_TWO_PRIM).getComplexValue()); } @Test http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/aea44a33/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPropertyImpl.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPropertyImpl.java index d9aa892..a8447a9 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPropertyImpl.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientPropertyImpl.java @@ -77,7 +77,8 @@ public final class ClientPropertyImpl extends ClientValuableImpl implements Clie */ @Override public boolean hasNullValue() { - return value == null || value.isPrimitive() && value.asPrimitive().toValue() == null; + return value == null || value.isPrimitive() && value.asPrimitive().toValue() == null + || value.isComplex() && value.asComplex().asJavaMap().size() == 0; } @Override http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/aea44a33/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientValuableImpl.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientValuableImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientValuableImpl.java index d2f1a3a..0021a21 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientValuableImpl.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/domain/ClientValuableImpl.java @@ -65,7 +65,7 @@ public class ClientValuableImpl implements ClientValuable { @Override public boolean hasComplexValue() { - return !hasNullValue() && value.isComplex(); + return value != null && value.isComplex(); } @Override http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/aea44a33/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java index deb58fa..c2080fa 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataBinderImpl.java @@ -891,7 +891,6 @@ public class ODataBinderImpl implements ODataBinder { } if (edm != null && edm.getComplexType(type) != null) { ClientComplexValue cValue = client.getObjectFactory().newComplexValue(type.toString()); - cValue.add(new ClientPropertyImpl(((Property)valuable).getName(), null)); value = cValue; } else { if (type != null && !EdmPrimitiveTypeKind.String.getFullQualifiedName().equals(type)