Support empty body in Jackson2JsonDecoder.decodeToMono
Prior to this commit, extracting an HTTP response with an empty body and no Content-Type header using the WebClient would: * trigger the use of the Jackson2JsonDecoder * throw a NoSuchElementException because of the use of `Flux.single()` This commit changes this behavior to `Flux.singleOrEmpty()` to avoid throwing exceptions for empty Flux instances. Issue: SPR-14582
This commit is contained in:
@@ -105,6 +105,18 @@ public class Jackson2JsonDecoderTests extends AbstractDataBufferAllocatingTestCa
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void decodeEmptyBodyToMono() throws Exception {
|
||||
Flux<DataBuffer> source = Flux.empty();
|
||||
ResolvableType elementType = ResolvableType.forClass(Pojo.class);
|
||||
Mono<Object> flux = new Jackson2JsonDecoder().decodeToMono(source, elementType, null);
|
||||
|
||||
TestSubscriber.subscribe(flux)
|
||||
.assertNoError()
|
||||
.assertComplete()
|
||||
.assertValueCount(0);
|
||||
}
|
||||
|
||||
|
||||
void handle(List<Pojo> list) {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user