Browse Source

Check status in AbstractServerHttpResponse setComplete

pull/1208/head
Rossen Stoyanchev 9 years ago
parent
commit
fada5aed6e
  1. 5
      spring-web/src/main/java/org/springframework/http/server/reactive/AbstractServerHttpResponse.java

5
spring-web/src/main/java/org/springframework/http/server/reactive/AbstractServerHttpResponse.java

@ -146,7 +146,7 @@ public abstract class AbstractServerHttpResponse implements ServerHttpResponse { @@ -146,7 +146,7 @@ public abstract class AbstractServerHttpResponse implements ServerHttpResponse {
* @return a completion publisher
*/
protected Mono<Void> doCommit() {
return doCommit(null);
return (this.state.get() == State.NEW ? doCommit(null) : Mono.empty());
}
/**
@ -158,8 +158,7 @@ public abstract class AbstractServerHttpResponse implements ServerHttpResponse { @@ -158,8 +158,7 @@ public abstract class AbstractServerHttpResponse implements ServerHttpResponse {
protected Mono<Void> doCommit(Supplier<? extends Mono<Void>> 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();
}

Loading…
Cancel
Save