Skip to content

Commit 09da10c

Browse files
violetaggrstoyanchev
authored andcommitted
Propagate the cancel signal to the downstream
Issue: SPR-17609
1 parent 44f39d4 commit 09da10c

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,9 @@ private class WriteCompletionBarrier implements CoreSubscriber<Void>, Subscripti
338338

339339
private final WriteBarrier writeBarrier;
340340

341+
@Nullable
342+
private Subscription subscription;
343+
341344

342345
public WriteCompletionBarrier(CoreSubscriber<? super Void> subscriber, WriteBarrier writeBarrier) {
343346
this.completionSubscriber = subscriber;
@@ -357,6 +360,7 @@ public void connect() {
357360

358361
@Override
359362
public void onSubscribe(Subscription subscription) {
363+
this.subscription = subscription;
360364
subscription.request(Long.MAX_VALUE);
361365
}
362366

@@ -388,6 +392,10 @@ public void request(long n) {
388392
@Override
389393
public void cancel() {
390394
this.writeBarrier.cancel();
395+
Subscription subscription = this.subscription;
396+
if (subscription != null) {
397+
subscription.cancel();
398+
}
391399
}
392400
}
393401

0 commit comments

Comments
 (0)