I will post again as it seems to be caused by RestClient.
Environment: Spring Web 6.1.8, Java 17
The situation is the same as in #31719, which occurs when using Reactor Netty.
Test code: https://github.com/r16turbo/restclient-test/blob/main/src/test/java/com/example/demo/DemoApplicationTests.java 👆 Fails in the last test case (reactorNettyTest).
The reason is that the following code throws an exception:
https://github.com/spring-projects/spring-framework/blob/v6.1.8/spring-web/src/main/java/org/springframework/http/client/ReactorNettyClientResponse.java#L85
I believe that null should also be returned when using Reactor Netty, please let me know about a better way to implement this.
Example of a simple fix: (However, Java 11 or higher is required)
@Override
public InputStream getBody() throws IOException {
InputStream body = this.body;
if (body != null) {
return body;
}
body = this.connection.inbound().receive()
.aggregate().asInputStream().block(this.readTimeout);
if (body == null) {
// throw new IOException("Could not receive body");
body = InputStream.nullInputStream(); // 👈 here
}
this.body = body;
return body;
}
Thanks
Comment From: bclozel
duplicates #32805