@@ -52,30 +52,29 @@ class DeferredJsonMerger {
5252 }
5353
5454 fun merge (payload : JsonMap ): JsonMap {
55+ val completed = payload[" completed" ] as ? List <JsonMap >
5556 if (merged.isEmpty()) {
5657 // Initial payload, no merging needed (strip some fields that should not appear in the final result)
5758 _merged + = payload - " hasNext" - " pending"
5859 handlePending(payload)
59- handleCompleted(payload )
60+ handleCompleted(completed )
6061 return merged
6162 }
6263 handlePending(payload)
6364
6465 val incrementalList = payload[" incremental" ] as ? List <JsonMap >
65- if (incrementalList == null ) {
66- isEmptyPayload = true
67- } else {
68- isEmptyPayload = false
66+ if (incrementalList != null ) {
6967 for (incrementalItem in incrementalList) {
7068 mergeIncrementalData(incrementalItem)
7169 // Merge errors (if any) of the incremental item
7270 (incrementalItem[" errors" ] as ? List <JsonMap >)?.let { getOrPutMergedErrors() + = it }
7371 }
7472 }
73+ isEmptyPayload = completed == null && incrementalList == null
7574
7675 hasNext = payload[" hasNext" ] as Boolean? ? : false
7776
78- handleCompleted(payload )
77+ handleCompleted(completed )
7978
8079 (payload[" extensions" ] as ? JsonMap )?.let { getOrPutExtensions() + = it }
8180
@@ -98,8 +97,7 @@ class DeferredJsonMerger {
9897 }
9998 }
10099
101- private fun handleCompleted (payload : JsonMap ) {
102- val completed = payload[" completed" ] as ? List <JsonMap >
100+ private fun handleCompleted (completed : List <JsonMap >? ) {
103101 if (completed != null ) {
104102 for (completedItem in completed) {
105103 // Merge errors (if any) of the completed item
0 commit comments