Repository: olingo-odata2
Updated Branches:
  refs/heads/master f8bbd747c -> b9a83feae


[OLINGO-823] Fix separator in Json Deleted Entries bug


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

Branch: refs/heads/master
Commit: b9a83feae8969adc247ce4313e6e0e99a46d74ed
Parents: f8bbd74
Author: Christian Amend <[email protected]>
Authored: Tue Nov 17 14:45:55 2015 +0100
Committer: Christian Amend <[email protected]>
Committed: Tue Nov 17 14:45:55 2015 +0100

----------------------------------------------------------------------
 .../ep/producer/JsonDeletedEntryEntityProducer.java |  6 ++++--
 .../core/ep/producer/JsonFeedEntityProducer.java    |  2 +-
 .../producer/JsonFeedWithDeltaLinkProducerTest.java | 16 ++++++++++++++++
 3 files changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b9a83fea/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonDeletedEntryEntityProducer.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonDeletedEntryEntityProducer.java
 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonDeletedEntryEntityProducer.java
index 23f72bc..2452228 100644
--- 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonDeletedEntryEntityProducer.java
+++ 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonDeletedEntryEntityProducer.java
@@ -39,12 +39,14 @@ public class JsonDeletedEntryEntityProducer {
   }
 
   public void append(final Writer writer, final EntityInfoAggregator 
entityInfo,
-      final List<Map<String, Object>> deletedEntries)
+      final List<Map<String, Object>> deletedEntries, boolean 
noPreviousEntries)
       throws EntityProviderException {
     JsonStreamWriter jsonStreamWriter = new JsonStreamWriter(writer);
     try {
       if (deletedEntries.size() > 0) {
-        jsonStreamWriter.separator();
+        if(!noPreviousEntries){
+          jsonStreamWriter.separator();
+        }
         int counter = 0;
         for (Map<String, Object> deletedEntry : deletedEntries) {
           jsonStreamWriter.beginObject();

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b9a83fea/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedEntityProducer.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedEntityProducer.java
 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedEntityProducer.java
index 758de1c..ed47f4a 100644
--- 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedEntityProducer.java
+++ 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedEntityProducer.java
@@ -81,7 +81,7 @@ public class JsonFeedEntityProducer {
         TombstoneCallbackResult callbackResult = 
callback.getTombstoneCallbackResult();
         List<Map<String, Object>> deletedEntries = 
callbackResult.getDeletedEntriesData();
         if (deletedEntries != null) {
-          deletedEntryProducer.append(writer, entityInfo, deletedEntries);
+          deletedEntryProducer.append(writer, entityInfo, deletedEntries, 
data.isEmpty());
         }
       }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/b9a83fea/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedWithDeltaLinkProducerTest.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedWithDeltaLinkProducerTest.java
 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedWithDeltaLinkProducerTest.java
index cf035ae..5f68939 100644
--- 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedWithDeltaLinkProducerTest.java
+++ 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonFeedWithDeltaLinkProducerTest.java
@@ -18,6 +18,7 @@
  
******************************************************************************/
 package org.apache.olingo.odata2.core.ep.producer;
 
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -130,6 +131,21 @@ public class JsonFeedWithDeltaLinkProducerTest extends 
BaseTest {
   }
 
   @Test
+  public void deletedEntriesWithNoPreviousData() throws Exception {
+    final EdmEntitySet entitySet = 
MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
+
+    TombstoneCallback tombstoneCallback =
+        new TombstoneCallbackImpl(deletedRoomData, null);
+
+    roomsData.clear();
+
+    final String json = writeRoomData(entitySet, tombstoneCallback);
+
+    assertFalse("Something wrong with empty RoomData list in combination with 
deleted entries!",
+        json.contains("[,"));
+  }
+
+  @Test
   public void deletedEntriesAndDeltaLink() throws Exception {
     final EdmEntitySet entitySet = 
MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
 

Reply via email to