diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/AbstractServerHttpResponse.java b/spring-web/src/main/java/org/springframework/http/server/reactive/AbstractServerHttpResponse.java index 0ca6b5128a8..6ad0d47a3c9 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/AbstractServerHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/AbstractServerHttpResponse.java @@ -146,7 +146,7 @@ public abstract class AbstractServerHttpResponse implements ServerHttpResponse { * @return a completion publisher */ protected Mono doCommit() { - return doCommit(null); + return (this.state.get() == State.NEW ? doCommit(null) : Mono.empty()); } /** @@ -158,8 +158,7 @@ public abstract class AbstractServerHttpResponse implements ServerHttpResponse { protected Mono doCommit(Supplier> writeAction) { if (!this.state.compareAndSet(State.NEW, State.COMMITTING)) { if (logger.isDebugEnabled()) { - logger.debug("Can't set the status " + statusCode.toString() + - " because the HTTP response has already been committed"); + logger.debug("Skipping doCommit (response already committed)."); } return Mono.empty(); }