You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2015/11/17 14:46:41 UTC

olingo-odata2 git commit: [OLINGO-823] Fix separator in Json Deleted Entries bug

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 <ch...@sap.com>
Authored: Tue Nov 17 14:45:55 2015 +0100
Committer: Christian Amend <ch...@sap.com>
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");