diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/AopProxyUtils.java b/spring-aop/src/main/java/org/springframework/aop/framework/AopProxyUtils.java index 639c4e6eeb..012a227ff3 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/AopProxyUtils.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/AopProxyUtils.java @@ -180,8 +180,7 @@ public abstract class AopProxyUtils { if (proxy instanceof DecoratingProxy) { nonUserIfcCount++; } - Class[] userInterfaces = new Class[proxyInterfaces.length - nonUserIfcCount]; - System.arraycopy(proxyInterfaces, 0, userInterfaces, 0, userInterfaces.length); + Class[] userInterfaces = Arrays.copyOf(proxyInterfaces, proxyInterfaces.length - nonUserIfcCount); Assert.notEmpty(userInterfaces, "JDK proxy must implement one or more interfaces"); return userInterfaces; } diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/ProxyFactoryBean.java b/spring-aop/src/main/java/org/springframework/aop/framework/ProxyFactoryBean.java index 4c38044102..9b34b2d488 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/ProxyFactoryBean.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/ProxyFactoryBean.java @@ -395,9 +395,7 @@ public class ProxyFactoryBean extends ProxyCreatorSupport logger.debug("Bean with name '" + finalName + "' concluding interceptor chain " + "is not an advisor class: treating it as a target or TargetSource"); } - String[] newNames = new String[this.interceptorNames.length - 1]; - System.arraycopy(this.interceptorNames, 0, newNames, 0, newNames.length); - this.interceptorNames = newNames; + this.interceptorNames = Arrays.copyOf(this.interceptorNames, this.interceptorNames.length - 1); } } } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java index 1313a6c5f4..257d925c50 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java @@ -25,6 +25,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashSet; @@ -721,8 +722,7 @@ public class AutowiredAnnotationBeanPostProcessor extends InstantiationAwareBean synchronized (this) { if (!this.cached) { if (arguments != null) { - Object[] cachedMethodArguments = new Object[paramTypes.length]; - System.arraycopy(descriptors, 0, cachedMethodArguments, 0, arguments.length); + DependencyDescriptor[] cachedMethodArguments = Arrays.copyOf(descriptors, arguments.length); registerDependentBeans(beanName, autowiredBeans); if (autowiredBeans.size() == paramTypes.length) { Iterator it = autowiredBeans.iterator(); diff --git a/spring-core/src/main/java/org/springframework/core/annotation/AttributeMethods.java b/spring-core/src/main/java/org/springframework/core/annotation/AttributeMethods.java index c04bf172ff..13f0d64e03 100644 --- a/spring-core/src/main/java/org/springframework/core/annotation/AttributeMethods.java +++ b/spring-core/src/main/java/org/springframework/core/annotation/AttributeMethods.java @@ -268,8 +268,7 @@ final class AttributeMethods { return NONE; } Arrays.sort(methods, methodComparator); - Method[] attributeMethods = new Method[size]; - System.arraycopy(methods, 0, attributeMethods, 0, size); + Method[] attributeMethods = Arrays.copyOf(methods, size); return new AttributeMethods(annotationType, attributeMethods); } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/standard/Tokenizer.java b/spring-expression/src/main/java/org/springframework/expression/spel/standard/Tokenizer.java index 2d8593f957..c6ca62ab92 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/standard/Tokenizer.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/standard/Tokenizer.java @@ -501,9 +501,7 @@ class Tokenizer { } private char[] subarray(int start, int end) { - char[] result = new char[end - start]; - System.arraycopy(this.charsToProcess, start, result, 0, end - start); - return result; + return Arrays.copyOfRange(this.charsToProcess, start, end); } /**