Browse Source

Fix race condition in WriteResultPublisher

Closes gh-24989
pull/25038/head
Rossen Stoyanchev 5 years ago
parent
commit
c35b3e5c82
  1. 6
      spring-web/src/main/java/org/springframework/http/server/reactive/WriteResultPublisher.java

6
spring-web/src/main/java/org/springframework/http/server/reactive/WriteResultPublisher.java

@ -175,6 +175,9 @@ class WriteResultPublisher implements Publisher<Void> { @@ -175,6 +175,9 @@ class WriteResultPublisher implements Publisher<Void> {
@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<Void> { @@ -190,6 +193,9 @@ class WriteResultPublisher implements Publisher<Void> {
@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) {

Loading…
Cancel
Save