diff --git a/spring-aop/src/main/java/org/springframework/aop/MethodMatcher.java b/spring-aop/src/main/java/org/springframework/aop/MethodMatcher.java index 9e04831a015..f1b175fbcce 100644 --- a/spring-aop/src/main/java/org/springframework/aop/MethodMatcher.java +++ b/spring-aop/src/main/java/org/springframework/aop/MethodMatcher.java @@ -18,6 +18,8 @@ package org.springframework.aop; import java.lang.reflect.Method; +import org.jspecify.annotations.Nullable; + /** * Part of a {@link Pointcut}: Checks whether the target method is eligible for advice. * @@ -94,7 +96,7 @@ public interface MethodMatcher { * @return whether there's a runtime match * @see #matches(Method, Class) */ - boolean matches(Method method, Class targetClass, Object... args); + boolean matches(Method method, Class targetClass, @Nullable Object... args); /** diff --git a/spring-aop/src/main/java/org/springframework/aop/TrueMethodMatcher.java b/spring-aop/src/main/java/org/springframework/aop/TrueMethodMatcher.java index 6498627d6fe..02294462437 100644 --- a/spring-aop/src/main/java/org/springframework/aop/TrueMethodMatcher.java +++ b/spring-aop/src/main/java/org/springframework/aop/TrueMethodMatcher.java @@ -19,6 +19,8 @@ package org.springframework.aop; import java.io.Serializable; import java.lang.reflect.Method; +import org.jspecify.annotations.Nullable; + /** * Canonical MethodMatcher instance that matches all methods. * @@ -48,7 +50,7 @@ final class TrueMethodMatcher implements MethodMatcher, Serializable { } @Override - public boolean matches(Method method, Class targetClass, Object... args) { + public boolean matches(Method method, Class targetClass, @Nullable Object... args) { // Should never be invoked as isRuntime returns false. throw new UnsupportedOperationException(); } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java index 99b4f1ea488..b9c657af0d5 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java @@ -340,7 +340,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut } @Override - public boolean matches(Method method, Class targetClass, Object... args) { + public boolean matches(Method method, Class targetClass, @Nullable Object... args) { ShadowMatch shadowMatch = getTargetShadowMatch(method, targetClass); // Bind Spring AOP proxy to AspectJ "this" and Spring AOP target to AspectJ target, diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/InstantiationModelAwarePointcutAdvisorImpl.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/InstantiationModelAwarePointcutAdvisorImpl.java index daaf18c6958..42b5349eac9 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/InstantiationModelAwarePointcutAdvisorImpl.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/InstantiationModelAwarePointcutAdvisorImpl.java @@ -289,7 +289,7 @@ final class InstantiationModelAwarePointcutAdvisorImpl } @Override - public boolean matches(Method method, Class targetClass, Object... args) { + public boolean matches(Method method, Class targetClass, @Nullable Object... args) { // This can match only on declared pointcut. return (isAspectMaterialized() && this.declaredPointcut.matches(method, targetClass, args)); } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/ControlFlowPointcut.java b/spring-aop/src/main/java/org/springframework/aop/support/ControlFlowPointcut.java index fc7e7af34aa..63f1a4358a7 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/ControlFlowPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/ControlFlowPointcut.java @@ -144,7 +144,7 @@ public class ControlFlowPointcut implements Pointcut, ClassFilter, MethodMatcher } @Override - public boolean matches(Method method, Class targetClass, Object... args) { + public boolean matches(Method method, Class targetClass, @Nullable Object... args) { incrementEvaluationCount(); for (StackTraceElement element : new Throwable().getStackTrace()) { diff --git a/spring-aop/src/main/java/org/springframework/aop/support/MethodMatchers.java b/spring-aop/src/main/java/org/springframework/aop/support/MethodMatchers.java index 53c558a498e..1c1b66d1b40 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/MethodMatchers.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/MethodMatchers.java @@ -151,7 +151,7 @@ public abstract class MethodMatchers { } @Override - public boolean matches(Method method, Class targetClass, Object... args) { + public boolean matches(Method method, Class targetClass, @Nullable Object... args) { return this.mm1.matches(method, targetClass, args) || this.mm2.matches(method, targetClass, args); } @@ -303,7 +303,7 @@ public abstract class MethodMatchers { } @Override - public boolean matches(Method method, Class targetClass, Object... args) { + public boolean matches(Method method, Class targetClass, @Nullable Object... args) { // Because a dynamic intersection may be composed of a static and dynamic part, // we must avoid calling the 3-arg matches method on a dynamic matcher, as // it will probably be an unsupported operation. @@ -373,7 +373,7 @@ public abstract class MethodMatchers { } @Override - public boolean matches(Method method, Class targetClass, Object... args) { + public boolean matches(Method method, Class targetClass, @Nullable Object... args) { return !this.original.matches(method, targetClass, args); } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcher.java b/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcher.java index 482ecfd1c26..7e11e7d06e5 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcher.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcher.java @@ -18,6 +18,8 @@ package org.springframework.aop.support; import java.lang.reflect.Method; +import org.jspecify.annotations.Nullable; + import org.springframework.aop.MethodMatcher; /** @@ -34,7 +36,7 @@ public abstract class StaticMethodMatcher implements MethodMatcher { } @Override - public final boolean matches(Method method, Class targetClass, Object... args) { + public final boolean matches(Method method, Class targetClass, @Nullable Object... args) { // should never be invoked because isRuntime() returns false throw new UnsupportedOperationException("Illegal MethodMatcher usage"); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/ObjectProvider.java b/spring-beans/src/main/java/org/springframework/beans/factory/ObjectProvider.java index ffbffc9154c..7a2724c402d 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/ObjectProvider.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/ObjectProvider.java @@ -77,7 +77,7 @@ public interface ObjectProvider extends ObjectFactory, Iterable { * @throws BeansException in case of creation errors * @see #getObject() */ - default T getObject(Object... args) throws BeansException { + default T getObject(@Nullable Object... args) throws BeansException { throw new UnsupportedOperationException("Retrieval with arguments not supported -" + "for custom ObjectProvider classes, implement getObject(Object...) for your purposes"); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java index d0645494084..e719ddd284a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java @@ -140,7 +140,7 @@ class ConstructorResolver { Constructor constructorToUse = null; ArgumentsHolder argsHolderToUse = null; - Object[] argsToUse = null; + @Nullable Object[] argsToUse = null; if (explicitArgs != null) { argsToUse = explicitArgs; @@ -227,7 +227,7 @@ class ConstructorResolver { Class[] paramTypes = candidate.getParameterTypes(); if (resolvedValues != null) { try { - String[] paramNames = null; + @Nullable String[] paramNames = null; if (resolvedValues.containsNamedArgument()) { paramNames = ConstructorPropertiesChecker.evaluate(candidate, parameterCount); if (paramNames == null) { @@ -437,7 +437,7 @@ class ConstructorResolver { argsToUse = explicitArgs; } else { - Object[] argsToResolve = null; + @Nullable Object[] argsToResolve = null; synchronized (mbd.constructorArgumentLock) { factoryMethodToUse = (Method) mbd.resolvedConstructorOrFactoryMethod; if (factoryMethodToUse != null && mbd.constructorArgumentsResolved) { @@ -536,7 +536,7 @@ class ConstructorResolver { else { // Resolved constructor arguments: type conversion and/or autowiring necessary. try { - String[] paramNames = null; + @Nullable String[] paramNames = null; if (resolvedValues != null && resolvedValues.containsNamedArgument()) { ParameterNameDiscoverer pnd = this.beanFactory.getParameterNameDiscoverer(); if (pnd != null) { @@ -719,7 +719,7 @@ class ConstructorResolver { */ private ArgumentsHolder createArgumentArray( String beanName, RootBeanDefinition mbd, @Nullable ConstructorArgumentValues resolvedValues, - BeanWrapper bw, Class[] paramTypes, String @Nullable [] paramNames, Executable executable, + BeanWrapper bw, Class[] paramTypes, @Nullable String @Nullable [] paramNames, Executable executable, boolean autowiring, boolean fallback) throws UnsatisfiedDependencyException { TypeConverter customConverter = this.beanFactory.getCustomTypeConverter(); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java index 5cef0db1e48..db8d68fd5cc 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java @@ -422,7 +422,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto return resolved; } @Override - public T getObject(Object... args) throws BeansException { + public T getObject(@Nullable Object... args) throws BeansException { T resolved = resolveBean(requiredType, args, false); if (resolved == null) { throw new NoSuchBeanDefinitionException(requiredType); @@ -2147,7 +2147,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto * Create an {@link Optional} wrapper for the specified dependency. */ private Optional createOptionalDependency( - DependencyDescriptor descriptor, @Nullable String beanName, final Object... args) { + DependencyDescriptor descriptor, @Nullable String beanName, final @Nullable Object... args) { DependencyDescriptor descriptorToUse = new NestedDependencyDescriptor(descriptor) { @Override @@ -2317,7 +2317,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto } @Override - public Object getObject(final Object... args) throws BeansException { + public Object getObject(final @Nullable Object... args) throws BeansException { if (this.optional) { return createOptionalDependency(this.descriptor, this.beanName, args); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java index 1ae2dd22500..3fc5cc6ccbd 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java @@ -301,7 +301,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { } } @Override - public T getObject(Object... args) throws BeansException { + public T getObject(@Nullable Object... args) throws BeansException { String[] beanNames = getBeanNamesForType(requiredType); if (beanNames.length == 1) { return (T) getBean(beanNames[0], args); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java b/spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java index 3d969f14fef..2a39fbe8fd9 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java @@ -63,7 +63,7 @@ final class BeanMethod extends ConfigurationMethod { return; } - Map attributes = + Map attributes = getConfigurationClass().getMetadata().getAnnotationAttributes(Configuration.class.getName()); if (attributes != null && (Boolean) attributes.get("proxyBeanMethods") && !getMetadata().isOverridable()) { // instance @Bean methods within @Configuration classes must be overridable to accommodate CGLIB diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java index 7a451c6f494..1268cf04cdf 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java @@ -220,7 +220,7 @@ final class ConfigurationClass { @SuppressWarnings("NullAway") // Reflection void validate(ProblemReporter problemReporter) { - Map attributes = this.metadata.getAnnotationAttributes(Configuration.class.getName()); + Map attributes = this.metadata.getAnnotationAttributes(Configuration.class.getName()); // A configuration class may not be final (CGLIB limitation) unless it declares proxyBeanMethods=false if (attributes != null && (Boolean) attributes.get("proxyBeanMethods") && this.metadata.isFinal()) { diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java index 3b8ad11c909..65f8bc5150d 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java @@ -26,6 +26,7 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import org.springframework.beans.factory.BeanDefinitionStoreException; import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; @@ -309,7 +310,7 @@ class ConfigurationClassBeanDefinitionReader { ccbd.setNonUniqueFactoryMethodName(ccbd.getFactoryMethodMetadata().getMethodName()); return true; } - Map attributes = + Map attributes = configClass.getMetadata().getAnnotationAttributes(Configuration.class.getName()); if ((attributes != null && (Boolean) attributes.get("enforceUniqueMethods")) || !this.registry.isBeanDefinitionOverridable(beanName)) { diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java b/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java index f1c197803f3..e5c0a36463f 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java @@ -16,6 +16,8 @@ package org.springframework.context.annotation; +import org.jspecify.annotations.Nullable; + import org.springframework.core.type.AnnotatedTypeMetadata; import org.springframework.util.MultiValueMap; @@ -33,7 +35,7 @@ class ProfileCondition implements Condition { @Override @SuppressWarnings("NullAway") // Reflection public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { - MultiValueMap attrs = metadata.getAllAnnotationAttributes(Profile.class.getName()); + MultiValueMap attrs = metadata.getAllAnnotationAttributes(Profile.class.getName()); if (attrs != null) { for (Object value : attrs.get("value")) { if (context.getEnvironment().matchesProfiles((String[]) value)) { diff --git a/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java b/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java index e0bd6513b1e..5f548694032 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java @@ -139,7 +139,7 @@ public class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac } @Override - public org.springframework.jmx.export.metadata.ManagedOperationParameter[] getManagedOperationParameters(Method method) + public org.springframework.jmx.export.metadata.@Nullable ManagedOperationParameter[] getManagedOperationParameters(Method method) throws InvalidMetadataException { List> anns = getRepeatableAnnotations( @@ -149,7 +149,7 @@ public class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac } @Override - public org.springframework.jmx.export.metadata.ManagedNotification[] getManagedNotifications(Class clazz) + public org.springframework.jmx.export.metadata.@Nullable ManagedNotification[] getManagedNotifications(Class clazz) throws InvalidMetadataException { List> anns = getRepeatableAnnotations( diff --git a/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java b/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java index f12552047ea..712ea3138f0 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java @@ -18,6 +18,7 @@ package org.springframework.jmx.export.assembler; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; +import java.util.Objects; import javax.management.Descriptor; import javax.management.MBeanParameterInfo; @@ -259,7 +260,7 @@ public class MetadataMBeanInfoAssembler extends AbstractReflectiveMBeanInfoAssem */ @Override protected MBeanParameterInfo[] getOperationParameters(Method method, String beanKey) { - ManagedOperationParameter[] params = obtainAttributeSource().getManagedOperationParameters(method); + @Nullable ManagedOperationParameter[] params = obtainAttributeSource().getManagedOperationParameters(method); if (ObjectUtils.isEmpty(params)) { return super.getOperationParameters(method, beanKey); } @@ -267,7 +268,7 @@ public class MetadataMBeanInfoAssembler extends AbstractReflectiveMBeanInfoAssem MBeanParameterInfo[] parameterInfo = new MBeanParameterInfo[params.length]; Class[] methodParameters = method.getParameterTypes(); for (int i = 0; i < params.length; i++) { - ManagedOperationParameter param = params[i]; + ManagedOperationParameter param = Objects.requireNonNull(params[i]); parameterInfo[i] = new MBeanParameterInfo(param.getName(), methodParameters[i].getName(), param.getDescription()); } @@ -280,14 +281,14 @@ public class MetadataMBeanInfoAssembler extends AbstractReflectiveMBeanInfoAssem */ @Override protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) { - ManagedNotification[] notificationAttributes = + @Nullable ManagedNotification[] notificationAttributes = obtainAttributeSource().getManagedNotifications(getClassToExpose(managedBean)); ModelMBeanNotificationInfo[] notificationInfos = new ModelMBeanNotificationInfo[notificationAttributes.length]; for (int i = 0; i < notificationAttributes.length; i++) { ManagedNotification attribute = notificationAttributes[i]; - notificationInfos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(attribute); + notificationInfos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(Objects.requireNonNull(attribute)); } return notificationInfos; diff --git a/spring-context/src/main/java/org/springframework/jmx/export/metadata/JmxAttributeSource.java b/spring-context/src/main/java/org/springframework/jmx/export/metadata/JmxAttributeSource.java index 43b557a9dc4..8d50f6ca169 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/metadata/JmxAttributeSource.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/metadata/JmxAttributeSource.java @@ -80,7 +80,7 @@ public interface JmxAttributeSource { * @return the parameter information. * @throws InvalidMetadataException in the case of invalid attributes. */ - ManagedOperationParameter[] getManagedOperationParameters(Method method) throws InvalidMetadataException; + @Nullable ManagedOperationParameter[] getManagedOperationParameters(Method method) throws InvalidMetadataException; /** * Implementations should return an array of {@link ManagedNotification ManagedNotifications} @@ -90,7 +90,7 @@ public interface JmxAttributeSource { * @return the notification information * @throws InvalidMetadataException in the case of invalid metadata */ - ManagedNotification[] getManagedNotifications(Class clazz) throws InvalidMetadataException; + @Nullable ManagedNotification[] getManagedNotifications(Class clazz) throws InvalidMetadataException; diff --git a/spring-context/src/main/java/org/springframework/jndi/support/SimpleJndiBeanFactory.java b/spring-context/src/main/java/org/springframework/jndi/support/SimpleJndiBeanFactory.java index 5d3ff1e1404..ba75eeb7150 100644 --- a/spring-context/src/main/java/org/springframework/jndi/support/SimpleJndiBeanFactory.java +++ b/spring-context/src/main/java/org/springframework/jndi/support/SimpleJndiBeanFactory.java @@ -162,7 +162,7 @@ public class SimpleJndiBeanFactory extends JndiLocatorSupport implements BeanFac return getBean(requiredType); } @Override - public T getObject(Object... args) throws BeansException { + public T getObject(@Nullable Object... args) throws BeansException { return getBean(requiredType, args); } @Override diff --git a/spring-expression/src/main/java/org/springframework/expression/ConstructorExecutor.java b/spring-expression/src/main/java/org/springframework/expression/ConstructorExecutor.java index 363506b951f..55f7344f86f 100644 --- a/spring-expression/src/main/java/org/springframework/expression/ConstructorExecutor.java +++ b/spring-expression/src/main/java/org/springframework/expression/ConstructorExecutor.java @@ -16,6 +16,8 @@ package org.springframework.expression; +import org.jspecify.annotations.Nullable; + /** * A {@code ConstructorExecutor} is built by a {@link ConstructorResolver} and * can be cached by the infrastructure to repeat an operation quickly without @@ -49,6 +51,6 @@ public interface ConstructorExecutor { * @throws AccessException if there is a problem executing the constructor or * if this {@code ConstructorExecutor} has become stale */ - TypedValue execute(EvaluationContext context, Object... arguments) throws AccessException; + TypedValue execute(EvaluationContext context, @Nullable Object... arguments) throws AccessException; } diff --git a/spring-expression/src/main/java/org/springframework/expression/MethodExecutor.java b/spring-expression/src/main/java/org/springframework/expression/MethodExecutor.java index 6d717cd4b00..cde52a2b784 100644 --- a/spring-expression/src/main/java/org/springframework/expression/MethodExecutor.java +++ b/spring-expression/src/main/java/org/springframework/expression/MethodExecutor.java @@ -16,6 +16,8 @@ package org.springframework.expression; +import org.jspecify.annotations.Nullable; + /** * A {@code MethodExecutor} is built by a {@link MethodResolver} and can be cached * by the infrastructure to repeat an operation quickly without going back to the @@ -50,6 +52,6 @@ public interface MethodExecutor { * @throws AccessException if there is a problem executing the method or * if this {@code MethodExecutor} has become stale */ - TypedValue execute(EvaluationContext context, Object target, Object... arguments) throws AccessException; + TypedValue execute(EvaluationContext context, Object target, @Nullable Object... arguments) throws AccessException; } diff --git a/spring-web/src/jmh/java/org/springframework/http/support/HeadersAdaptersBaseline.java b/spring-web/src/jmh/java/org/springframework/http/support/HeadersAdaptersBaseline.java index 606e75a5aac..22a29939932 100644 --- a/spring-web/src/jmh/java/org/springframework/http/support/HeadersAdaptersBaseline.java +++ b/spring-web/src/jmh/java/org/springframework/http/support/HeadersAdaptersBaseline.java @@ -69,12 +69,12 @@ class HeadersAdaptersBaseline { } @Override - public void addAll(String key, List values) { + public void addAll(String key, List values) { values.forEach(value -> add(key, value)); } @Override - public void addAll(MultiValueMap values) { + public void addAll(MultiValueMap values) { values.forEach(this::addAll); } @@ -84,12 +84,12 @@ class HeadersAdaptersBaseline { } @Override - public void setAll(Map values) { + public void setAll(Map values) { values.forEach(this::set); } @Override - public Map toSingleValueMap() { + public Map toSingleValueMap() { Map map = CollectionUtils.newLinkedHashMap(size()); this.message.headerIterator().forEachRemaining(h -> map.putIfAbsent(h.getName(), h.getValue())); return map; @@ -274,12 +274,12 @@ class HeadersAdaptersBaseline { } @Override - public void addAll(String key, List values) { + public void addAll(String key, List values) { values.forEach(value -> add(key, value)); } @Override - public void addAll(MultiValueMap values) { + public void addAll(MultiValueMap values) { values.forEach(this::addAll); } @@ -295,7 +295,7 @@ class HeadersAdaptersBaseline { } @Override - public void setAll(Map values) { + public void setAll(Map values) { values.forEach(this::set); } @@ -566,12 +566,12 @@ class HeadersAdaptersBaseline { } @Override - public void addAll(String key, List values) { + public void addAll(String key, List values) { this.headers.add(key, values); } @Override - public void addAll(MultiValueMap values) { + public void addAll(MultiValueMap values) { values.forEach(this.headers::add); } @@ -583,7 +583,7 @@ class HeadersAdaptersBaseline { } @Override - public void setAll(Map values) { + public void setAll(Map values) { values.forEach(this.headers::set); } @@ -809,12 +809,12 @@ class HeadersAdaptersBaseline { } @Override - public void addAll(String key, List values) { + public void addAll(String key, List values) { this.headers.add(key, values); } @Override - public void addAll(MultiValueMap values) { + public void addAll(MultiValueMap values) { values.forEach(this.headers::add); } @@ -826,7 +826,7 @@ class HeadersAdaptersBaseline { } @Override - public void setAll(Map values) { + public void setAll(Map values) { values.forEach(this.headers::set); }