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");
