Skip to content

Commit 06b2ab3

Browse files
committed
Use volatile for subscriber in base publishers
Issue: SPR-16207
1 parent b89a48a commit 06b2ab3

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,17 @@ public abstract class AbstractListenerReadPublisher<T> implements Publisher<T> {
5252

5353
private volatile long demand;
5454

55-
private volatile boolean completionBeforeDemand;
56-
57-
@Nullable
58-
private volatile Throwable errorBeforeDemand;
59-
6055
@SuppressWarnings("rawtypes")
6156
private static final AtomicLongFieldUpdater<AbstractListenerReadPublisher> DEMAND_FIELD_UPDATER =
6257
AtomicLongFieldUpdater.newUpdater(AbstractListenerReadPublisher.class, "demand");
6358

6459
@Nullable
65-
private Subscriber<? super T> subscriber;
60+
private volatile Subscriber<? super T> subscriber;
61+
62+
private volatile boolean completionBeforeDemand;
63+
64+
@Nullable
65+
private volatile Throwable errorBeforeDemand;
6666

6767

6868
// Publisher implementation...

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class WriteResultPublisher implements Publisher<Void> {
4343
private final AtomicReference<State> state = new AtomicReference<>(State.UNSUBSCRIBED);
4444

4545
@Nullable
46-
private Subscriber<? super Void> subscriber;
46+
private volatile Subscriber<? super Void> subscriber;
4747

4848
private volatile boolean completedBeforeSubscribed;
4949

0 commit comments

Comments
 (0)