Defensive handling of exceptions during factory method type checking

Also using ClassUtils.forName in AutowireUtils now in order to accept all common class name formats.

Issue: SPR-11034
(cherry picked from commit 8c1767e)
This commit is contained in:
Juergen Hoeller
2013-10-28 13:25:45 +01:00
parent 094ff8883d
commit c8e8d6cd49
3 changed files with 53 additions and 29 deletions

View File

@@ -660,8 +660,7 @@ public class BeanFactoryGenericsTests {
* public static <T> T mock(Class<T> classToMock)
* }
* </pre>
* <p>
* See SPR-9493
* <p>See SPR-9493
*/
@Test
public void parameterizedStaticFactoryMethod() {
@@ -736,6 +735,23 @@ public class BeanFactoryGenericsTests {
assertEquals(1, beans.size());
}
@Test
public void parameterizedInstanceFactoryMethodWithInvalidClassName() {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
RootBeanDefinition rbd = new RootBeanDefinition(MocksControl.class);
bf.registerBeanDefinition("mocksControl", rbd);
rbd = new RootBeanDefinition();
rbd.setFactoryBeanName("mocksControl");
rbd.setFactoryMethodName("createMock");
rbd.getConstructorArgumentValues().addGenericArgumentValue("x");
bf.registerBeanDefinition("mock", rbd);
Map<String, Runnable> beans = bf.getBeansOfType(Runnable.class);
assertEquals(0, beans.size());
}
@Test
public void parameterizedInstanceFactoryMethodWithIndexedArgument() {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();