From 7a39a3aa5c48a661a950c0f92b09fef1565fea17 Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Fri, 19 Sep 2025 16:31:54 -0700 Subject: [PATCH] Nullability fixes for AtomicReference variables Signed-off-by: Manu Sridharan --- .../core/io/buffer/OutputStreamPublisher.java | 2 +- .../core/io/buffer/SubscriberInputStream.java | 2 +- .../r2dbc/connection/SingleConnectionFactory.java | 2 +- .../springframework/test/web/servlet/DefaultMvcResult.java | 2 +- .../springframework/http/client/OutputStreamPublisher.java | 2 +- .../http/client/ReactorClientHttpRequest.java | 5 +++-- .../springframework/http/client/SubscriberInputStream.java | 2 +- .../servlet/mvc/method/annotation/ReactiveTypeHandler.java | 2 +- 8 files changed, 10 insertions(+), 9 deletions(-) diff --git a/spring-core/src/main/java/org/springframework/core/io/buffer/OutputStreamPublisher.java b/spring-core/src/main/java/org/springframework/core/io/buffer/OutputStreamPublisher.java index 62b852637a3e..0d6341e26d59 100644 --- a/spring-core/src/main/java/org/springframework/core/io/buffer/OutputStreamPublisher.java +++ b/spring-core/src/main/java/org/springframework/core/io/buffer/OutputStreamPublisher.java @@ -137,7 +137,7 @@ private static final class OutputStreamSubscription extends OutputStream impl private final AtomicLong requested = new AtomicLong(); - private final AtomicReference parkedThread = new AtomicReference<>(); + private final AtomicReference<@Nullable Object> parkedThread = new AtomicReference<>(); private volatile @Nullable Throwable error; diff --git a/spring-core/src/main/java/org/springframework/core/io/buffer/SubscriberInputStream.java b/spring-core/src/main/java/org/springframework/core/io/buffer/SubscriberInputStream.java index 479ec41fc560..df9e3bb399fa 100644 --- a/spring-core/src/main/java/org/springframework/core/io/buffer/SubscriberInputStream.java +++ b/spring-core/src/main/java/org/springframework/core/io/buffer/SubscriberInputStream.java @@ -72,7 +72,7 @@ final class SubscriberInputStream extends InputStream implements Subscriber queue; - private final AtomicReference parkedThread = new AtomicReference<>(); + private final AtomicReference<@Nullable Object> parkedThread = new AtomicReference<>(); private final AtomicInteger workAmount = new AtomicInteger(); diff --git a/spring-r2dbc/src/main/java/org/springframework/r2dbc/connection/SingleConnectionFactory.java b/spring-r2dbc/src/main/java/org/springframework/r2dbc/connection/SingleConnectionFactory.java index 5e079928acc3..5254852eadc8 100644 --- a/spring-r2dbc/src/main/java/org/springframework/r2dbc/connection/SingleConnectionFactory.java +++ b/spring-r2dbc/src/main/java/org/springframework/r2dbc/connection/SingleConnectionFactory.java @@ -73,7 +73,7 @@ public class SingleConnectionFactory extends DelegatingConnectionFactory private @Nullable Boolean autoCommit; /** Wrapped Connection. */ - private final AtomicReference target = new AtomicReference<>(); + private final AtomicReference<@Nullable Connection> target = new AtomicReference<>(); /** Proxy Connection. */ private @Nullable Connection connection; diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java b/spring-test/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java index 2b586b27bd7b..f39a6fe0127f 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java @@ -54,7 +54,7 @@ class DefaultMvcResult implements MvcResult { private @Nullable Exception resolvedException; - private final AtomicReference asyncResult = new AtomicReference<>(RESULT_NONE); + private final AtomicReference<@Nullable Object> asyncResult = new AtomicReference<>(RESULT_NONE); private @Nullable CountDownLatch asyncDispatchLatch; diff --git a/spring-web/src/main/java/org/springframework/http/client/OutputStreamPublisher.java b/spring-web/src/main/java/org/springframework/http/client/OutputStreamPublisher.java index cda0e099c89a..710c61cf3ff0 100644 --- a/spring-web/src/main/java/org/springframework/http/client/OutputStreamPublisher.java +++ b/spring-web/src/main/java/org/springframework/http/client/OutputStreamPublisher.java @@ -135,7 +135,7 @@ private static final class OutputStreamSubscription extends OutputStream impl private final AtomicLong requested = new AtomicLong(); - private final AtomicReference parkedThread = new AtomicReference<>(); + private final AtomicReference<@Nullable Object> parkedThread = new AtomicReference<>(); private volatile @Nullable Throwable error; diff --git a/spring-web/src/main/java/org/springframework/http/client/ReactorClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/ReactorClientHttpRequest.java index 1967d07dd612..73f1ed5a5986 100644 --- a/spring-web/src/main/java/org/springframework/http/client/ReactorClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/ReactorClientHttpRequest.java @@ -20,6 +20,7 @@ import java.io.UncheckedIOException; import java.net.URI; import java.time.Duration; +import java.util.Objects; import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicReference; @@ -131,13 +132,13 @@ private Publisher send( return Mono.empty(); } - AtomicReference executorRef = new AtomicReference<>(); + AtomicReference<@Nullable Executor> executorRef = new AtomicReference<>(); return outbound .withConnection(connection -> executorRef.set(connection.channel().eventLoop())) .send(FlowAdapters.toPublisher(new OutputStreamPublisher<>( os -> body.writeTo(StreamUtils.nonClosing(os)), new ByteBufMapper(outbound), - executorRef.getAndSet(null), null))); + Objects.requireNonNull(executorRef.getAndSet(null)), null))); } static IOException convertException(RuntimeException ex) { diff --git a/spring-web/src/main/java/org/springframework/http/client/SubscriberInputStream.java b/spring-web/src/main/java/org/springframework/http/client/SubscriberInputStream.java index df57638d0ac7..e5e6ac4c17b6 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SubscriberInputStream.java +++ b/spring-web/src/main/java/org/springframework/http/client/SubscriberInputStream.java @@ -81,7 +81,7 @@ final class SubscriberInputStream extends InputStream implements Flow.Subscri private final Queue queue; - private final AtomicReference parkedThread = new AtomicReference<>(); + private final AtomicReference<@Nullable Object> parkedThread = new AtomicReference<>(); private final AtomicInteger workAmount = new AtomicInteger(); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ReactiveTypeHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ReactiveTypeHandler.java index d6135ce98d0a..62114423f5bb 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ReactiveTypeHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ReactiveTypeHandler.java @@ -256,7 +256,7 @@ private abstract static class AbstractEmitterSubscriber implements Subscriber elementRef = new AtomicReference<>(); + private final AtomicReference<@Nullable Object> elementRef = new AtomicReference<>(); private @Nullable Throwable error;