From 6525504e17430ac6c32b1a7f7a169cbdcfb9ca01 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Wed, 6 Jul 2016 09:35:25 -0400 Subject: [PATCH] Restore local vars in JacksonJsonEncoder --- .../http/codec/json/JacksonJsonEncoder.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java b/spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java index 0d7e177d09b..53792aaf4ab 100644 --- a/spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java +++ b/spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java @@ -81,13 +81,16 @@ public class JacksonJsonEncoder extends AbstractEncoder { return Flux.from(inputStream).map(value -> encodeValue(value, bufferFactory, elementType)); } + Mono startArray = Mono.just(bufferFactory.wrap(START_ARRAY_BUFFER)); + Mono endArray = Mono.just(bufferFactory.wrap(END_ARRAY_BUFFER)); + Flux array = Flux.from(inputStream) - .flatMap(value -> - Flux.just(encodeValue(value, bufferFactory, elementType), - bufferFactory.wrap(SEPARATOR_BUFFER))); + .flatMap(value -> { + DataBuffer arraySeparator = bufferFactory.wrap(SEPARATOR_BUFFER); + return Flux.just(encodeValue(value, bufferFactory, elementType), arraySeparator); + }); - return Flux.concat(Mono.just(bufferFactory.wrap(START_ARRAY_BUFFER)), array.skipLast(1), - Mono.just(bufferFactory.wrap(END_ARRAY_BUFFER))); + return Flux.concat(startArray, array.skipLast(1), endArray); } private DataBuffer encodeValue(Object value, DataBufferFactory bufferFactory, ResolvableType type) {