diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/WriteResultPublisher.java b/spring-web/src/main/java/org/springframework/http/server/reactive/WriteResultPublisher.java index 5636a9faa0f..523050a37a8 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/WriteResultPublisher.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/WriteResultPublisher.java @@ -175,6 +175,9 @@ class WriteResultPublisher implements Publisher { @Override void publishComplete(WriteResultPublisher publisher) { publisher.completedBeforeSubscribed = true; + if(State.SUBSCRIBED.equals(publisher.state.get())) { + publisher.state.get().publishComplete(publisher); + } } @Override void publishError(WriteResultPublisher publisher, Throwable ex) { @@ -190,6 +193,9 @@ class WriteResultPublisher implements Publisher { @Override void publishComplete(WriteResultPublisher publisher) { publisher.completedBeforeSubscribed = true; + if(State.SUBSCRIBED.equals(publisher.state.get())) { + publisher.state.get().publishComplete(publisher); + } } @Override void publishError(WriteResultPublisher publisher, Throwable ex) {