Propagate Reactor Context when using FluxSink
This commit makes sure that the Reactor context from a given mono or flux is propagated to the Flux returned by a FluxSink. This change affects both DataBufferUtils::write and internal classes used by the DefaultPartHttpMessageReader. Closes gh-27517
This commit is contained in:
@@ -29,6 +29,7 @@ import org.reactivestreams.Subscription;
|
||||
import reactor.core.publisher.BaseSubscriber;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.FluxSink;
|
||||
import reactor.util.context.Context;
|
||||
|
||||
import org.springframework.core.codec.DecodingException;
|
||||
import org.springframework.core.io.buffer.DataBuffer;
|
||||
@@ -98,6 +99,11 @@ final class MultipartParser extends BaseSubscriber<DataBuffer> {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Context currentContext() {
|
||||
return this.sink.currentContext();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void hookOnSubscribe(Subscription subscription) {
|
||||
requestBuffer();
|
||||
|
||||
@@ -42,6 +42,7 @@ import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.FluxSink;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.core.scheduler.Scheduler;
|
||||
import reactor.util.context.Context;
|
||||
|
||||
import org.springframework.core.codec.DecodingException;
|
||||
import org.springframework.core.io.buffer.DataBuffer;
|
||||
@@ -113,6 +114,11 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Context currentContext() {
|
||||
return this.sink.currentContext();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void hookOnSubscribe(Subscription subscription) {
|
||||
requestToken();
|
||||
|
||||
Reference in New Issue
Block a user