Browse Source

Restore local vars in JacksonJsonEncoder

pull/1111/head
Rossen Stoyanchev 10 years ago
parent
commit
6525504e17
  1. 13
      spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java

13
spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java

@ -81,13 +81,16 @@ public class JacksonJsonEncoder extends AbstractEncoder<Object> { @@ -81,13 +81,16 @@ public class JacksonJsonEncoder extends AbstractEncoder<Object> {
return Flux.from(inputStream).map(value -> encodeValue(value, bufferFactory, elementType));
}
Mono<DataBuffer> startArray = Mono.just(bufferFactory.wrap(START_ARRAY_BUFFER));
Mono<DataBuffer> endArray = Mono.just(bufferFactory.wrap(END_ARRAY_BUFFER));
Flux<DataBuffer> 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) {

Loading…
Cancel
Save