diff --git a/spring-context/src/main/java/org/springframework/validation/Validator.java b/spring-context/src/main/java/org/springframework/validation/Validator.java index 36ef7b37265..f4ab6c672b5 100644 --- a/spring-context/src/main/java/org/springframework/validation/Validator.java +++ b/spring-context/src/main/java/org/springframework/validation/Validator.java @@ -92,9 +92,8 @@ public interface Validator { /** * Return a {@code Validator} that checks whether the target object * {@linkplain Class#isAssignableFrom(Class) is an instance of} - * {@code targetClass}, resorting to {@code delegate} to populate + * {@code targetClass}, applying the given {@code delegate} to populate * {@link Errors} if it is. - * *

For instance: *

Validator passwordEqualsValidator = Validator.forInstanceOf(PasswordResetForm.class, (form, errors) -> {
 	 *   if (!Objects.equals(form.getPassword(), form.getConfirmPassword())) {
@@ -116,9 +115,8 @@ public interface Validator {
 
 	/**
 	 * Return a {@code Validator} that checks whether the target object's class
-	 * is identical to {@code targetClass}, resorting to {@code delegate} to
-	 * populate {@link Errors} if it is.
-	 *
+	 * is identical to {@code targetClass}, applying the given {@code delegate}
+	 * to populate {@link Errors} if it is.
 	 * 

For instance: *

Validator passwordEqualsValidator = Validator.forType(PasswordResetForm.class, (form, errors) -> {
 	 *   if (!Objects.equals(form.getPassword(), form.getConfirmPassword())) {
diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/FunctionReference.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/FunctionReference.java
index 42758694859..9a97db5c1c6 100644
--- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/FunctionReference.java
+++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/FunctionReference.java
@@ -159,7 +159,7 @@ public class FunctionReference extends SpelNodeImpl {
 	 * @param methodHandle the method to invoke
 	 * @return the return value of the invoked Java method
 	 * @throws EvaluationException if there is any problem invoking the method
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
 	private TypedValue executeFunctionBoundMethodHandle(ExpressionState state, MethodHandle methodHandle) throws EvaluationException {
 		Object[] functionArgs = getArguments(state);
diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java
index 71d3e5e357f..bbe55deccb2 100644
--- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java
+++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java
@@ -343,10 +343,11 @@ public abstract class ReflectionHelper {
 	 * ({@code null} if not varargs)
 	 * @return {@code true} if some kind of conversion occurred on an argument
 	 * @throws EvaluationException if a problem occurs during conversion
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
 	public static boolean convertAllMethodHandleArguments(TypeConverter converter, Object[] arguments,
 			MethodHandle methodHandle, @Nullable Integer varargsPosition) throws EvaluationException {
+
 		boolean conversionOccurred = false;
 		final MethodType methodHandleArgumentTypes = methodHandle.type();
 		if (varargsPosition == null) {
diff --git a/spring-test/src/main/java/org/springframework/test/context/junit/jupiter/SpringExtension.java b/spring-test/src/main/java/org/springframework/test/context/junit/jupiter/SpringExtension.java
index f2ecd599642..5eaa16e5a8d 100644
--- a/spring-test/src/main/java/org/springframework/test/context/junit/jupiter/SpringExtension.java
+++ b/spring-test/src/main/java/org/springframework/test/context/junit/jupiter/SpringExtension.java
@@ -182,7 +182,7 @@ public class SpringExtension implements BeforeAllCallback, AfterAllCallback, Tes
 	 * application events in a parallel mode that makes it non-deterministic
 	 * ({@code @TestInstance(PER_CLASS)} and {@code @Execution(CONCURRENT)}
 	 * combination).
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
 	private void validateRecordApplicationEventsConfig(ExtensionContext context) {
 		// We save the result in the ExtensionContext.Store so that we don't
diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/observation/ServerRequestObservationContext.java b/spring-web/src/main/java/org/springframework/http/server/reactive/observation/ServerRequestObservationContext.java
index eae5b64bbf0..3ef6c39e138 100644
--- a/spring-web/src/main/java/org/springframework/http/server/reactive/observation/ServerRequestObservationContext.java
+++ b/spring-web/src/main/java/org/springframework/http/server/reactive/observation/ServerRequestObservationContext.java
@@ -40,10 +40,11 @@ public class ServerRequestObservationContext extends RequestReplyReceiverContext
 
 	/**
 	 * Name of the request attribute holding the {@link ServerRequestObservationContext context} for the current observation.
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
 	public static final String CURRENT_OBSERVATION_CONTEXT_ATTRIBUTE = ServerRequestObservationContext.class.getName() + ".context";
 
+
 	private final Map attributes;
 
 	@Nullable
@@ -51,6 +52,7 @@ public class ServerRequestObservationContext extends RequestReplyReceiverContext
 
 	private boolean connectionAborted;
 
+
 	public ServerRequestObservationContext(ServerHttpRequest request, ServerHttpResponse response, Map attributes) {
 		super((req, key) -> req.getHeaders().getFirst(key));
 		setCarrier(request);
@@ -58,15 +60,6 @@ public class ServerRequestObservationContext extends RequestReplyReceiverContext
 		this.attributes = Collections.unmodifiableMap(attributes);
 	}
 
-	/**
-	 * Get the current {@link ServerRequestObservationContext observation context} from the given exchange, if available.
-	 * @param exchange the current exchange
-	 * @return the current observation context
-	 * @since 6.1.0
-	 */
-	public static Optional findCurrent(ServerWebExchange exchange) {
-		return Optional.ofNullable(exchange.getAttribute(CURRENT_OBSERVATION_CONTEXT_ATTRIBUTE));
-	}
 
 	/**
 	 * Return an immutable map of the current request attributes.
@@ -115,4 +108,15 @@ public class ServerRequestObservationContext extends RequestReplyReceiverContext
 		this.connectionAborted = connectionAborted;
 	}
 
+
+	/**
+	 * Get the current {@link ServerRequestObservationContext observation context} from the given exchange, if available.
+	 * @param exchange the current exchange
+	 * @return the current observation context
+	 * @since 6.1
+	 */
+	public static Optional findCurrent(ServerWebExchange exchange) {
+		return Optional.ofNullable(exchange.getAttribute(CURRENT_OBSERVATION_CONTEXT_ATTRIBUTE));
+	}
+
 }
diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java
index 2ca930100dc..29423cf796f 100644
--- a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java
+++ b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java
@@ -85,7 +85,8 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
 	private static final Set DISCONNECTED_CLIENT_EXCEPTIONS =
 			Set.of("AbortedException", "ClientAbortException", "EOFException", "EofException");
 
-	private static final ServerRequestObservationConvention DEFAULT_OBSERVATION_CONVENTION = new DefaultServerRequestObservationConvention();
+	private static final ServerRequestObservationConvention DEFAULT_OBSERVATION_CONVENTION =
+			new DefaultServerRequestObservationConvention();
 
 
 	private static final Log logger = LogFactory.getLog(HttpWebHandlerAdapter.class);
@@ -103,11 +104,9 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
 	@Nullable
 	private ForwardedHeaderTransformer forwardedHeaderTransformer;
 
-	@Nullable
-	private ObservationRegistry observationRegistry;
+	private ObservationRegistry observationRegistry = ObservationRegistry.NOOP;
 
-	@Nullable
-	private ServerRequestObservationConvention observationConvention;
+	private ServerRequestObservationConvention observationConvention = DEFAULT_OBSERVATION_CONVENTION;
 
 	@Nullable
 	private ApplicationContext applicationContext;
@@ -196,8 +195,7 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
 	 * @param transformer the transformer to use
 	 * @since 5.1
 	 */
-	public void setForwardedHeaderTransformer(ForwardedHeaderTransformer transformer) {
-		Assert.notNull(transformer, "ForwardedHeaderTransformer is required");
+	public void setForwardedHeaderTransformer(@Nullable ForwardedHeaderTransformer transformer) {
 		this.forwardedHeaderTransformer = transformer;
 	}
 
@@ -214,7 +212,7 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
 	 * Configure a {@link ObservationRegistry} for recording server exchange observations.
 	 * By default, a {@link ObservationRegistry#NOOP no-op} instance will be used.
 	 * @param observationRegistry the observation registry to use
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
 	public void setObservationRegistry(ObservationRegistry observationRegistry) {
 		this.observationRegistry = observationRegistry;
@@ -222,9 +220,8 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
 
 	/**
 	 * Return the configured {@link ObservationRegistry}.
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
-	@Nullable
 	public ObservationRegistry getObservationRegistry() {
 		return this.observationRegistry;
 	}
@@ -233,7 +230,7 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
 	 * Configure a {@link ServerRequestObservationConvention} for server exchanges observations.
 	 * By default, a {@link DefaultServerRequestObservationConvention} instance will be used.
 	 * @param observationConvention the observation convention to use
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
 	public void setObservationConvention(ServerRequestObservationConvention observationConvention) {
 		this.observationConvention = observationConvention;
@@ -241,9 +238,8 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
 
 	/**
 	 * Return the Observation convention configured for server exchanges observations.
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
-	@Nullable
 	public ServerRequestObservationConvention getObservationConvention() {
 		return this.observationConvention;
 	}
@@ -331,8 +327,8 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
 	}
 
 	private Publisher transform(ServerWebExchange exchange, ServerRequestObservationContext observationContext, Mono call) {
-		Observation observation = ServerHttpObservationDocumentation.HTTP_REACTIVE_SERVER_REQUESTS.observation(this.observationConvention,
-				DEFAULT_OBSERVATION_CONVENTION, () -> observationContext, this.observationRegistry);
+		Observation observation = ServerHttpObservationDocumentation.HTTP_REACTIVE_SERVER_REQUESTS.observation(
+				this.observationConvention, DEFAULT_OBSERVATION_CONVENTION, () -> observationContext, this.observationRegistry);
 		observation.start();
 		return call
 				.doOnSuccess(aVoid -> {
@@ -439,5 +435,4 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
 				});
 	}
 
-
 }
diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java b/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java
index d64f0e11cb9..68024558916 100644
--- a/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java
+++ b/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java
@@ -374,7 +374,7 @@ public final class WebHttpHandlerBuilder {
 	 * Configure a {@link ObservationRegistry} for recording server exchange observations.
 	 * By default, a {@link ObservationRegistry#NOOP no-op} registry will be configured.
 	 * @param observationRegistry the observation registry
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
 	public WebHttpHandlerBuilder observationRegistry(ObservationRegistry observationRegistry) {
 		this.observationRegistry = observationRegistry;
@@ -385,7 +385,7 @@ public final class WebHttpHandlerBuilder {
 	 * Configure a {@link ServerRequestObservationConvention} to use for server observations.
 	 * By default, a {@link DefaultServerRequestObservationConvention} will be used.
 	 * @param observationConvention the convention to use for all recorded observations
-	 * @since 6.1.0
+	 * @since 6.1
 	 */
 	public WebHttpHandlerBuilder observationConvention(ServerRequestObservationConvention observationConvention) {
 		this.observationConvention = observationConvention;