[OLINGO-665] All primitive types are null

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

Branch: refs/heads/OLINGO-632_OSGi-Support
Commit: 6ff644d6cceb55a56b2ecbc3c3a364cea84d2399
Parents: 24898bd
Author: Christian Holzer <[email protected]>
Authored: Thu May 21 14:37:52 2015 +0200
Committer: Christian Holzer <[email protected]>
Committed: Thu May 21 14:37:52 2015 +0200

----------------------------------------------------------------------
 .../serializer/json/ODataJsonSerializer.java    |  8 ++-
 .../olingo/server/tecsvc/data/DataCreator.java  | 53 +++++++++++---------
 .../json/ODataJsonSerializerTest.java           | 28 ++++++-----
 3 files changed, 48 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6ff644d6/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java
----------------------------------------------------------------------
diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java
index d080140..d5cd3c6 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializer.java
@@ -484,12 +484,10 @@ public class ODataJsonSerializer implements 
ODataSerializer {
       final JsonGenerator json) throws EdmPrimitiveTypeException, IOException {
     final String value = type.valueToString(primitiveValue,
         isNullable, maxLength, precision, scale, isUnicode);
-    if (type == 
EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean)) {
-      if(value == null) {
-        json.writeNull();
-      } else {
+    if (value == null) {
+      json.writeNull();
+    } else if(type == 
EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean)) {
         json.writeBoolean(Boolean.parseBoolean(value));
-      }
     } else if (type == 
EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Byte)
         || type == 
EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Decimal)
         || type == 
EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Double)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6ff644d6/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
----------------------------------------------------------------------
diff --git 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
index 9bf711c..6a2f658 100644
--- 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
+++ 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java
@@ -349,35 +349,38 @@ public class DataCreator {
     entityCollection.getEntities().add(
         new Entity()
         .addProperty(createPrimitive("PropertyKey", 1))
-        .addProperty(createPrimitive("PropertyInt16", 0))
-        .addProperty(createPrimitive("PropertyString", ""))
+        .addProperty(createPrimitive("PropertyInt16", null))
+        .addProperty(createPrimitive("PropertyString", null))
         .addProperty(createPrimitive("PropertyBoolean", null))
-        .addProperty(createPrimitive("PropertyByte", 0))
-        .addProperty(createPrimitive("PropertySByte", 0))
-        .addProperty(createPrimitive("PropertyInt32", 0))
-        .addProperty(createPrimitive("PropertyInt64", 0))
-        .addProperty(createPrimitive("PropertySingle", 0))
-        .addProperty(createPrimitive("PropertyDouble", 0))
-        .addProperty(createPrimitive("PropertyDecimal", 0))
-        .addProperty(createPrimitive("PropertyBinary", new byte[0]))
+        .addProperty(createPrimitive("PropertyByte", null))
+        .addProperty(createPrimitive("PropertySByte", null))
+        .addProperty(createPrimitive("PropertyInt32", null))
+        .addProperty(createPrimitive("PropertyInt64", null))
+        .addProperty(createPrimitive("PropertySingle", null))
+        .addProperty(createPrimitive("PropertyDouble", null))
+        .addProperty(createPrimitive("PropertyDecimal", null))
+        .addProperty(createPrimitive("PropertyBinary", null))
         .addProperty(createPrimitive("PropertyDate", null))
         .addProperty(createPrimitive("PropertyDateTimeOffset", null))
-        .addProperty(createPrimitive("PropertyDuration", 0))
+        .addProperty(createPrimitive("PropertyDuration", null))
         .addProperty(createPrimitive("PropertyGuid", null))
-        .addProperty(createPrimitive("PropertyTimeOfDay", getTime(0, 0, 0)))
-        .addProperty(createPrimitiveCollection("CollPropertyString", 
"[email protected]", "", "[email protected]"))
+        .addProperty(createPrimitive("PropertyTimeOfDay", null))
+        .addProperty(createPrimitiveCollection("CollPropertyString", 
+            "[email protected]", 
+            null, 
+            "[email protected]"))
         .addProperty(createPrimitiveCollection("CollPropertyBoolean", true, 
null, false))
-        .addProperty(createPrimitiveCollection("CollPropertyByte", 50, 0, 249))
-        .addProperty(createPrimitiveCollection("CollPropertySByte", -120, 0, 
126))
-        .addProperty(createPrimitiveCollection("CollPropertyInt16", 1000, 0, 
30112))
-        .addProperty(createPrimitiveCollection("CollPropertyInt32", 23232323, 
0, 10000001))
-        .addProperty(createPrimitiveCollection("CollPropertyInt64", 
929292929292L, 0L, 444444444444L))
-        .addProperty(createPrimitiveCollection("CollPropertySingle", 1790, 0, 
3210))
-        .addProperty(createPrimitiveCollection("CollPropertyDouble", -17900, 
0, 3210))
-        .addProperty(createPrimitiveCollection("CollPropertyDecimal", 12, 0, 
1234))
+        .addProperty(createPrimitiveCollection("CollPropertyByte", 50, null, 
249))
+        .addProperty(createPrimitiveCollection("CollPropertySByte", -120, 
null, 126))
+        .addProperty(createPrimitiveCollection("CollPropertyInt16", 1000, 
null, 30112))
+        .addProperty(createPrimitiveCollection("CollPropertyInt32", 23232323, 
null, 10000001))
+        .addProperty(createPrimitiveCollection("CollPropertyInt64", 
929292929292L, null, 444444444444L))
+        .addProperty(createPrimitiveCollection("CollPropertySingle", 1790, 
null, 3210))
+        .addProperty(createPrimitiveCollection("CollPropertyDouble", -17900, 
null, 3210))
+        .addProperty(createPrimitiveCollection("CollPropertyDecimal", 12, 
null, 1234))
         .addProperty(createPrimitiveCollection("CollPropertyBinary", 
             new byte[] { -85, -51, -17 },
-            new byte[0],
+            null,
             new byte[] { 84, 103, -119 } ))
         .addProperty(createPrimitiveCollection("CollPropertyDate", 
             getDateTime(1958, 12, 3, 0, 0, 0), 
@@ -387,13 +390,17 @@ public class DataCreator {
             getDateTime(2015, 8, 12, 3, 8, 34),
             null,
             getDateTime(1948, 2, 17, 9, 9, 9)))
+        .addProperty(createPrimitiveCollection("CollPropertyDuration",
+            getDurration(0, 0, 0, 13),
+            null,
+            getDurration(0, 1, 0, 0)))
         .addProperty(createPrimitiveCollection("CollPropertyGuid", 
             UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"),
             null,
             UUID.fromString("cccccc67-89ab-cdef-0123-456789cccccc")))
         .addProperty(createPrimitiveCollection("CollPropertyTimeOfDay", 
             getTime(4, 14, 13),
-            getTime(0, 0, 0),
+            null,
             getTime(0, 37, 13))
         ));
     

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6ff644d6/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java
index f4990ac..2295d81 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java
@@ -353,7 +353,7 @@ public class ODataJsonSerializerTest {
   }
   
   @Test
-  public void primitiveBooleanCollectionWithNull() throws Exception {
+  public void primitiveValuesAllNull() throws Exception {
     final EdmEntitySet edmEntitySet = 
entityContainer.getEntitySet("ESAllNullable");
     final EntityCollection entitySet = data.readAll(edmEntitySet);
     final String resultString = 
IOUtils.toString(serializer.entityCollection(metadata,
@@ -362,18 +362,20 @@ public class ODataJsonSerializerTest {
         
.contextURL(ContextURL.with().entitySet(edmEntitySet).build()).build()).getContent());
     
     final String expected = 
"{\"@odata.context\":\"$metadata#ESAllNullable\",\"value\":[{\"PropertyKey\":1,"
 
-    + 
"\"PropertyInt16\":0,\"PropertyString\":\"\",\"PropertyBoolean\":null,\"PropertyByte\":0,\"PropertySByte\":0,"
 
-    + 
"\"PropertyInt32\":0,\"PropertyInt64\":0,\"PropertySingle\":0,\"PropertyDouble\":0,\"PropertyDecimal\":0,"
 
-    + 
"\"PropertyBinary\":\"\",\"PropertyDate\":null,\"PropertyDateTimeOffset\":null,\"PropertyDuration\":\"PT0S\","
 
-    + 
"\"PropertyGuid\":null,\"PropertyTimeOfDay\":\"00:00:00\",\"CollPropertyString\":[\"[email protected]\",\"\","
 
-    + 
"\"[email protected]\"],\"CollPropertyBoolean\":[true,null,false],\"CollPropertyByte\":[50,0,249],"
 
-    + 
"\"CollPropertySByte\":[-120,0,126],\"CollPropertyInt16\":[1000,0,30112],\"CollPropertyInt32\":"
 
-    + 
"[23232323,0,10000001],\"CollPropertyInt64\":[929292929292,0,444444444444],\"CollPropertySingle\":"
 
-    + 
"[1790,0,3210],\"CollPropertyDouble\":[-17900,0,3210],\"CollPropertyDecimal\":[12,0,1234],"
 
-    + 
"\"CollPropertyBinary\":[\"q83v\",\"\",\"VGeJ\"],\"CollPropertyDate\":[\"1958-12-03\",null,\"2013-06-25\"],"
 
-    + 
"\"CollPropertyDateTimeOffset\":[\"2015-08-12T03:08:34Z\",null,\"1948-02-17T09:09:09Z\"],"
 
-    + 
"\"CollPropertyDuration\":null,\"CollPropertyGuid\":[\"ffffff67-89ab-cdef-0123-456789aaaaaa\",null,"
 
-    + 
"\"cccccc67-89ab-cdef-0123-456789cccccc\"],\"CollPropertyTimeOfDay\":[\"04:14:13\",\"00:00:00\",\"00:37:13\"]}]}";
+    + 
"\"PropertyInt16\":null,\"PropertyString\":null,\"PropertyBoolean\":null,\"PropertyByte\":null,"
 
+    + 
"\"PropertySByte\":null,\"PropertyInt32\":null,\"PropertyInt64\":null,\"PropertySingle\":null,"
 
+    + 
"\"PropertyDouble\":null,\"PropertyDecimal\":null,\"PropertyBinary\":null,\"PropertyDate\":null,"
 
+    + 
"\"PropertyDateTimeOffset\":null,\"PropertyDuration\":null,\"PropertyGuid\":null,\"PropertyTimeOfDay\":null,"
 
+    + 
"\"CollPropertyString\":[\"[email protected]\",null,\"[email protected]\"],"
 
+    + 
"\"CollPropertyBoolean\":[true,null,false],\"CollPropertyByte\":[50,null,249]," 
+    + 
"\"CollPropertySByte\":[-120,null,126],\"CollPropertyInt16\":[1000,null,30112],"
 
+    + 
"\"CollPropertyInt32\":[23232323,null,10000001],\"CollPropertyInt64\":[929292929292,null,444444444444],"
 
+    + 
"\"CollPropertySingle\":[1790,null,3210],\"CollPropertyDouble\":[-17900,null,3210],\"CollPropertyDecimal\":"
 
+    + 
"[12,null,1234],\"CollPropertyBinary\":[\"q83v\",null,\"VGeJ\"],\"CollPropertyDate\":"
 
+    + 
"[\"1958-12-03\",null,\"2013-06-25\"],\"CollPropertyDateTimeOffset\":[\"2015-08-12T03:08:34Z\",null,"
 
+    + 
"\"1948-02-17T09:09:09Z\"],\"CollPropertyDuration\":[\"PT13S\",null,\"PT1H0S\"],\"CollPropertyGuid\":"
 
+    + 
"[\"ffffff67-89ab-cdef-0123-456789aaaaaa\",null,\"cccccc67-89ab-cdef-0123-456789cccccc\"],"
 
+    + "\"CollPropertyTimeOfDay\":[\"04:14:13\",null,\"00:37:13\"]}]}";
     
     Assert.assertEquals(expected, resultString);
   }

Reply via email to