From 4cb453bbdc9077b89e216e46b11173edaacd7958 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Sun, 27 Oct 2013 01:21:55 +0200 Subject: [PATCH] Polishing --- .../AbstractAutowireCapableBeanFactory.java | 20 +++++++++---------- .../support/BeanFactoryGenericsTests.java | 7 +------ 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java index 0b4ceb5fc8..9c34512c01 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java @@ -21,7 +21,6 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.lang.reflect.TypeVariable; import java.security.AccessController; import java.security.PrivilegedAction; import java.security.PrivilegedActionException; @@ -666,9 +665,8 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac if (Modifier.isStatic(factoryMethod.getModifiers()) == isStatic && factoryMethod.getName().equals(mbd.getFactoryMethodName()) && factoryMethod.getParameterTypes().length >= minNrOfArgs) { - TypeVariable[] declaredTypeVariables = factoryMethod.getTypeParameters(); // No declared type variables to inspect, so just process the standard return type. - if (declaredTypeVariables.length > 0) { + if (factoryMethod.getTypeParameters().length > 0) { // Fully resolve parameter names and argument values. Class[] paramTypes = factoryMethod.getParameterTypes(); String[] paramNames = null; @@ -747,15 +745,15 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac // Find the given factory method, taking into account that in the case of // @Bean methods, there may be parameters present. ReflectionUtils.doWithMethods(fbClass, - new ReflectionUtils.MethodCallback() { - @Override - public void doWith(Method method) throws IllegalArgumentException, IllegalAccessException { - if (method.getName().equals(factoryMethodName) && - FactoryBean.class.isAssignableFrom(method.getReturnType())) { - objectType.value = GenericTypeResolver.resolveReturnTypeArgument(method, FactoryBean.class); + new ReflectionUtils.MethodCallback() { + @Override + public void doWith(Method method) throws IllegalArgumentException, IllegalAccessException { + if (method.getName().equals(factoryMethodName) && + FactoryBean.class.isAssignableFrom(method.getReturnType())) { + objectType.value = GenericTypeResolver.resolveReturnTypeArgument(method, FactoryBean.class); + } } - } - }); + }); if (objectType.value != null) { return objectType.value; } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java index 51c17f4950..e574999741 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java @@ -654,17 +654,12 @@ public class BeanFactoryGenericsTests { /** * Tests support for parameterized static {@code factory-method} declarations such as * Mockito's {@code mock()} method which has the following signature. - * *
 	 * {@code
 	 * public static  T mock(Class classToMock)
 	 * }
 	 * 
- * - *

- * See SPR-9493 - * - * @since 3.2 + *

See SPR-9493 */ @Test public void parameterizedStaticFactoryMethod() {