diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/AbstractClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/reactive/AbstractClientHttpRequest.java index 70785c2c12d..cc0d7230c78 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/AbstractClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/AbstractClientHttpRequest.java @@ -22,6 +22,7 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; import java.util.stream.Collectors; +import org.reactivestreams.Publisher; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -57,7 +58,7 @@ public abstract class AbstractClientHttpRequest implements ClientHttpRequest { private final AtomicReference state = new AtomicReference<>(State.NEW); - private final List>> commitActions = new ArrayList<>(4); + private final List>> commitActions = new ArrayList<>(4); public AbstractClientHttpRequest() { @@ -112,7 +113,7 @@ public abstract class AbstractClientHttpRequest implements ClientHttpRequest { * @param writeAction the action to write the request body (may be {@code null}) * @return a completion publisher */ - protected Mono doCommit(@Nullable Supplier> writeAction) { + protected Mono doCommit(@Nullable Supplier> writeAction) { if (!this.state.compareAndSet(State.NEW, State.COMMITTING)) { return Mono.empty(); } @@ -128,10 +129,10 @@ public abstract class AbstractClientHttpRequest implements ClientHttpRequest { this.commitActions.add(writeAction); } - List> actions = this.commitActions.stream() + List> actions = this.commitActions.stream() .map(Supplier::get).collect(Collectors.toList()); - return Flux.concat(actions).next(); + return Mono.fromDirect(Flux.concat(actions)); }