Schedule blocking ResourceHttpMessageWriter operations on bounded elastic

This commit schedules blocking I/O operations on the bounded elastic
scheduler, which includes retrieving the content length and writing
the resource (region).

Closes gh-30928
This commit is contained in:
Arjen Poutsma
2023-08-28 12:47:20 +02:00
parent 3ccbe3d1cb
commit 76c032cc11
2 changed files with 84 additions and 55 deletions

View File

@@ -437,9 +437,9 @@ public class ResourceWebHandler implements WebHandler, InitializingBean {
ResourceHttpMessageWriter writer = getResourceHttpMessageWriter();
Assert.state(writer != null, "No ResourceHttpMessageWriter");
if (HttpMethod.HEAD == httpMethod) {
writer.addHeaders(exchange.getResponse(), resource, mediaType,
Hints.from(Hints.LOG_PREFIX_HINT, exchange.getLogPrefix()));
return exchange.getResponse().setComplete();
return writer.addDefaultHeaders(exchange.getResponse(), resource, mediaType,
Hints.from(Hints.LOG_PREFIX_HINT, exchange.getLogPrefix()))
.then(exchange.getResponse().setComplete());
}
else {
return writer.write(Mono.just(resource),