From 0fbebd856fd0b9d6b5e7d332f6a8556cf2a57e6a Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Sat, 18 Oct 2025 13:50:22 +0200 Subject: [PATCH] Revise contribution See gh-35660 --- .../springframework/aop/framework/AdvisedSupport.java | 7 ++++--- .../adapter/DefaultAdvisorAdapterRegistry.java | 6 ++++-- .../springframework/beans/MutablePropertyValues.java | 5 +++-- .../beans/factory/parsing/BeanComponentDefinition.java | 10 ++++++---- .../core/annotation/MergedAnnotationsCollection.java | 5 +++-- .../common/TemplateAwareExpressionParser.java | 3 ++- 6 files changed, 22 insertions(+), 14 deletions(-) diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java b/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java index 9d8500d8753..f91792694f0 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java @@ -70,14 +70,15 @@ public class AdvisedSupport extends ProxyConfig implements Advised { /** use serialVersionUID from Spring 2.0 for interoperability. */ private static final long serialVersionUID = 2651364800145442165L; + private static final Advisor[] EMPTY_ADVISOR_ARRAY = new Advisor[0]; + /** * Canonical TargetSource when there's no target, and behavior is * supplied by the advisors. */ public static final TargetSource EMPTY_TARGET_SOURCE = EmptyTargetSource.INSTANCE; - /** Empty advisor array constant. */ - public static final Advisor[] EMPTY_ADVISORS = new Advisor[0]; + /** Package-protected to allow direct access for efficiency. */ @SuppressWarnings("serial") @@ -289,7 +290,7 @@ public class AdvisedSupport extends ProxyConfig implements Advised { @Override public final Advisor[] getAdvisors() { - return this.advisors.toArray(EMPTY_ADVISORS); + return this.advisors.toArray(EMPTY_ADVISOR_ARRAY); } @Override diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/DefaultAdvisorAdapterRegistry.java b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/DefaultAdvisorAdapterRegistry.java index 55a104f95db..4c15b899537 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/DefaultAdvisorAdapterRegistry.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/DefaultAdvisorAdapterRegistry.java @@ -39,7 +39,9 @@ import org.springframework.aop.support.DefaultPointcutAdvisor; */ @SuppressWarnings("serial") public class DefaultAdvisorAdapterRegistry implements AdvisorAdapterRegistry, Serializable { - private static final MethodInterceptor [] EMPTY_INTERCEPTOR_ARRAY = new MethodInterceptor[0]; + + private static final MethodInterceptor[] EMPTY_METHOD_INTERCEPTOR_ARRAY = new MethodInterceptor[0]; + private final List adapters = new ArrayList<>(3); @@ -90,7 +92,7 @@ public class DefaultAdvisorAdapterRegistry implements AdvisorAdapterRegistry, Se if (interceptors.isEmpty()) { throw new UnknownAdviceTypeException(advisor.getAdvice()); } - return interceptors.toArray(EMPTY_INTERCEPTOR_ARRAY); + return interceptors.toArray(EMPTY_METHOD_INTERCEPTOR_ARRAY); } @Override diff --git a/spring-beans/src/main/java/org/springframework/beans/MutablePropertyValues.java b/spring-beans/src/main/java/org/springframework/beans/MutablePropertyValues.java index 18069a53f28..f78e16af92a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/MutablePropertyValues.java +++ b/spring-beans/src/main/java/org/springframework/beans/MutablePropertyValues.java @@ -44,7 +44,8 @@ import org.springframework.util.StringUtils; @SuppressWarnings("serial") public class MutablePropertyValues implements PropertyValues, Serializable { - private static final PropertyValue[] EMPTY_PROPERTY_VALUES = new PropertyValue[0]; + private static final PropertyValue[] EMPTY_PROPERTY_VALUE_ARRAY = new PropertyValue[0]; + private final List propertyValueList; @@ -266,7 +267,7 @@ public class MutablePropertyValues implements PropertyValues, Serializable { @Override public PropertyValue[] getPropertyValues() { - return this.propertyValueList.toArray(EMPTY_PROPERTY_VALUES); + return this.propertyValueList.toArray(EMPTY_PROPERTY_VALUE_ARRAY); } @Override diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/BeanComponentDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/BeanComponentDefinition.java index 097d418dbee..6deb0da0efe 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/BeanComponentDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/BeanComponentDefinition.java @@ -37,8 +37,10 @@ import org.springframework.beans.factory.config.BeanReference; */ public class BeanComponentDefinition extends BeanDefinitionHolder implements ComponentDefinition { - private static final BeanDefinition[] EMPTY_BEAN_DEFINITIONS = new BeanDefinition[0]; - private static final BeanReference[] EMPTY_BEAN_REFERENCES = new BeanReference[0]; + private static final BeanDefinition[] EMPTY_BEAN_DEFINITION_ARRAY = new BeanDefinition[0]; + + private static final BeanReference[] EMPTY_BEAN_REFERENCE_ARRAY = new BeanReference[0]; + private final BeanDefinition[] innerBeanDefinitions; @@ -87,8 +89,8 @@ public class BeanComponentDefinition extends BeanDefinitionHolder implements Com references.add(beanRef); } } - this.innerBeanDefinitions = innerBeans.toArray(EMPTY_BEAN_DEFINITIONS); - this.beanReferences = references.toArray(EMPTY_BEAN_REFERENCES); + this.innerBeanDefinitions = innerBeans.toArray(EMPTY_BEAN_DEFINITION_ARRAY); + this.beanReferences = references.toArray(EMPTY_BEAN_REFERENCE_ARRAY); } diff --git a/spring-core/src/main/java/org/springframework/core/annotation/MergedAnnotationsCollection.java b/spring-core/src/main/java/org/springframework/core/annotation/MergedAnnotationsCollection.java index 1afaa312090..97713ed8d99 100644 --- a/spring-core/src/main/java/org/springframework/core/annotation/MergedAnnotationsCollection.java +++ b/spring-core/src/main/java/org/springframework/core/annotation/MergedAnnotationsCollection.java @@ -40,7 +40,8 @@ import org.springframework.util.Assert; */ final class MergedAnnotationsCollection implements MergedAnnotations { - private static final MergedAnnotation [] EMPTY_ANNOTATIONS = new MergedAnnotation[0]; + private static final MergedAnnotation[] EMPTY_MERGED_ANNOTATION_ARRAY = new MergedAnnotation[0]; + private final MergedAnnotation[] annotations; @@ -49,7 +50,7 @@ final class MergedAnnotationsCollection implements MergedAnnotations { private MergedAnnotationsCollection(Collection> annotations) { Assert.notNull(annotations, "Annotations must not be null"); - this.annotations = annotations.toArray(EMPTY_ANNOTATIONS); + this.annotations = annotations.toArray(EMPTY_MERGED_ANNOTATION_ARRAY); this.mappings = new AnnotationTypeMappings[this.annotations.length]; for (int i = 0; i < this.annotations.length; i++) { MergedAnnotation annotation = this.annotations[i]; diff --git a/spring-expression/src/main/java/org/springframework/expression/common/TemplateAwareExpressionParser.java b/spring-expression/src/main/java/org/springframework/expression/common/TemplateAwareExpressionParser.java index fb2f121985b..6c0096af7e5 100644 --- a/spring-expression/src/main/java/org/springframework/expression/common/TemplateAwareExpressionParser.java +++ b/spring-expression/src/main/java/org/springframework/expression/common/TemplateAwareExpressionParser.java @@ -44,7 +44,8 @@ import org.springframework.util.Assert; */ public abstract class TemplateAwareExpressionParser implements ExpressionParser { - private static final Expression [] EMPTY_EXPRESSION_ARRAY = new Expression[0]; + private static final Expression[] EMPTY_EXPRESSION_ARRAY = new Expression[0]; + @Override public Expression parseExpression(String expressionString) throws ParseException {