Browse Source

Fix regression in AbstractJackson2Encoder

Closes gh-29274
pull/29284/head
rstoyanchev 4 years ago
parent
commit
1afc1fc90d
  1. 1
      spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java
  2. 8
      spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonEncoderTests.java

1
spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java

@ -198,6 +198,7 @@ public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport imple @@ -198,6 +198,7 @@ public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport imple
bufferFactory.join(Arrays.asList(bufferFactory.wrap(prefix), dataBuffer)) :
dataBuffer);
})
.switchIfEmpty(Mono.fromCallable(() -> bufferFactory.wrap(helper.getPrefix())))
.concatWith(Mono.fromCallable(() -> bufferFactory.wrap(helper.getSuffix())));
}

8
spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonEncoderTests.java

@ -144,6 +144,14 @@ public class Jackson2JsonEncoderTests extends AbstractEncoderTests<Jackson2JsonE @@ -144,6 +144,14 @@ public class Jackson2JsonEncoderTests extends AbstractEncoderTests<Jackson2JsonE
.verifyComplete());
}
@Test
public void encodeNonStreamEmpty() {
testEncode(Flux.empty(), Pojo.class, step -> step
.consumeNextWith(expectString("["))
.consumeNextWith(expectString("]"))
.verifyComplete());
}
@Test // gh-29038
void encodeNonStreamWithErrorAsFirstSignal() {
String message = "I'm a teapot";

Loading…
Cancel
Save