From 6eac141160c014a2c5e48bbf308ddab3a39de8b5 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Tue, 4 Jun 2019 15:41:33 +0300 Subject: [PATCH] Restore non-null check for requiredType in BeanFactory methods Beginning with Spring Framework 5.0, non-null checks for the requiredType in the following methods were inadvertently removed with the internal switch to ResolvableType.forRawClass(requiredType). - BeanFactory.getBean(Class, Object...) - BeanFactory.getBeanProvider(Class) - AutowireCapableBeanFactory.resolveNamedBean(Class) This commit restores those non-null checks. Closes gh-23045 --- .../beans/factory/BeanFactory.java | 4 +- .../support/DefaultListableBeanFactory.java | 3 + .../DefaultListableBeanFactoryTests.java | 263 +++++------------- 3 files changed, 73 insertions(+), 197 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/BeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/BeanFactory.java index 7431a44bac4..583f2daf3d1 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/BeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/BeanFactory.java @@ -208,7 +208,7 @@ public interface BeanFactory { T getBean(Class requiredType, Object... args) throws BeansException; /** - * Return an provider for the specified bean, allowing for lazy on-demand retrieval + * Return a provider for the specified bean, allowing for lazy on-demand retrieval * of instances, including availability and uniqueness options. * @param requiredType type the bean must match; can be an interface or superclass * @return a corresponding provider handle @@ -218,7 +218,7 @@ public interface BeanFactory { ObjectProvider getBeanProvider(Class requiredType); /** - * Return an provider for the specified bean, allowing for lazy on-demand retrieval + * Return a provider for the specified bean, allowing for lazy on-demand retrieval * of instances, including availability and uniqueness options. * @param requiredType type the bean must match; can be a generic type declaration. * Note that collection types are not supported here, in contrast to reflective 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 3ce1e4c4d3b..49c004cd897 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 @@ -340,6 +340,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto @SuppressWarnings("unchecked") @Override public T getBean(Class requiredType, @Nullable Object... args) throws BeansException { + Assert.notNull(requiredType, "Required type must not be null"); Object resolved = resolveBean(ResolvableType.forRawClass(requiredType), args, false); if (resolved == null) { throw new NoSuchBeanDefinitionException(requiredType); @@ -349,6 +350,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto @Override public ObjectProvider getBeanProvider(Class requiredType) throws BeansException { + Assert.notNull(requiredType, "Required type must not be null"); return getBeanProvider(ResolvableType.forRawClass(requiredType)); } @@ -1080,6 +1082,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto @Override public NamedBeanHolder resolveNamedBean(Class requiredType) throws BeansException { + Assert.notNull(requiredType, "Required type must not be null"); NamedBeanHolder namedBean = resolveNamedBean(ResolvableType.forRawClass(requiredType), null, false); if (namedBean != null) { return namedBean; diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java index 86b8fca7382..8ed5b027130 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -121,6 +121,7 @@ public class DefaultListableBeanFactoryTests { private static final Log factoryLog = LogFactory.getLog(DefaultListableBeanFactory.class); + private DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); @Rule public ExpectedException thrown = ExpectedException.none(); @@ -129,7 +130,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testUnreferencedSingletonWasInstantiated() { KnowsIfInstantiated.clearInstantiationRecord(); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("x1.(class)", KnowsIfInstantiated.class.getName()); assertTrue("singleton not instantiated", !KnowsIfInstantiated.wasInstantiated()); @@ -141,7 +141,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testLazyInitialization() { KnowsIfInstantiated.clearInstantiationRecord(); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("x1.(class)", KnowsIfInstantiated.class.getName()); p.setProperty("x1.(lazy-init)", "true"); @@ -157,7 +156,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testFactoryBeanDidNotCreatePrototype() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("x1.(class)", DummyFactory.class.getName()); // Reset static state @@ -179,7 +177,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPrototypeFactoryBeanIgnoredByNonEagerTypeMatching() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("x1.(class)", DummyFactory.class.getName()); // Reset static state @@ -214,7 +211,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testSingletonFactoryBeanIgnoredByNonEagerTypeMatching() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("x1.(class)", DummyFactory.class.getName()); // Reset static state @@ -249,7 +245,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testNonInitializedFactoryBeanIgnoredByNonEagerTypeMatching() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("x1.(class)", DummyFactory.class.getName()); // Reset static state @@ -283,7 +278,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testInitializedFactoryBeanFoundByNonEagerTypeMatching() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("x1.(class)", DummyFactory.class.getName()); // Reset static state @@ -342,7 +336,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testStaticFactoryMethodFoundByNonEagerTypeMatching() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(TestBeanFactory.class); rbd.setFactoryMethodName("createTestBean"); lbf.registerBeanDefinition("x1", rbd); @@ -367,7 +360,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testStaticPrototypeFactoryMethodFoundByNonEagerTypeMatching() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(TestBeanFactory.class); rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setFactoryMethodName("createTestBean"); @@ -393,7 +385,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testNonStaticFactoryMethodFoundByNonEagerTypeMatching() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition factoryBd = new RootBeanDefinition(TestBeanFactory.class); lbf.registerBeanDefinition("factory", factoryBd); RootBeanDefinition rbd = new RootBeanDefinition(TestBeanFactory.class); @@ -421,7 +412,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testNonStaticPrototypeFactoryMethodFoundByNonEagerTypeMatching() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition factoryBd = new RootBeanDefinition(TestBeanFactory.class); lbf.registerBeanDefinition("factory", factoryBd); RootBeanDefinition rbd = new RootBeanDefinition(); @@ -486,7 +476,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testEmptyPropertiesPopulation() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); (new PropertiesBeanDefinitionReader(lbf)).registerBeanDefinitions(p); assertTrue("No beans defined after ignorable invalid", lbf.getBeanDefinitionCount() == 0); @@ -494,7 +483,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testHarmlessIgnorableRubbish() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("foo", "bar"); p.setProperty("qwert", "er"); @@ -504,7 +492,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPropertiesPopulationWithNullPrefix() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("test.(class)", TestBean.class.getName()); p.setProperty("test.name", "Tony"); @@ -517,7 +504,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPropertiesPopulationWithPrefix() { String PREFIX = "beans."; - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty(PREFIX + "test.(class)", TestBean.class.getName()); p.setProperty(PREFIX + "test.name", "Tony"); @@ -530,7 +516,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testSimpleReference() { String PREFIX = "beans."; - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty(PREFIX + "rod.(class)", TestBean.class.getName()); @@ -553,7 +538,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPropertiesWithDotsInKey() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("tb.(class)", TestBean.class.getName()); @@ -570,7 +554,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testUnresolvedReference() { String PREFIX = "beans."; - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); try { @@ -591,7 +574,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testSelfReference() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("spouse", new RuntimeBeanReference("self")); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); @@ -604,7 +586,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPossibleMatches() { try { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("ag", "foobar"); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); @@ -624,7 +605,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPrototype() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("kerry.(class)", TestBean.class.getName()); p.setProperty("kerry.age", "35"); @@ -659,7 +639,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPrototypeCircleLeadsToException() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("kerry.(class)", TestBean.class.getName()); p.setProperty("kerry.(singleton)", "false"); @@ -683,7 +662,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPrototypeExtendsPrototype() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("wife.(class)", TestBean.class.getName()); p.setProperty("wife.name", "kerry"); @@ -765,7 +743,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testNameAlreadyBound() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("kerry.(class)", TestBean.class.getName()); p.setProperty("kerry.age", "35"); @@ -793,7 +770,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAliasCircle() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerAlias("test", "test2"); lbf.registerAlias("test2", "test3"); @@ -818,7 +794,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanDefinitionOverriding() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class)); lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class)); lbf.registerAlias("otherTest", "test2"); @@ -829,7 +804,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanDefinitionRemoval() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setAllowBeanDefinitionOverriding(false); lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class)); lbf.registerAlias("test", "test2"); @@ -844,7 +818,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanDefinitionOverridingNotAllowed() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setAllowBeanDefinitionOverriding(false); BeanDefinition oldDef = new RootBeanDefinition(TestBean.class); BeanDefinition newDef = new RootBeanDefinition(NestedTestBean.class); @@ -862,7 +835,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanDefinitionOverridingWithAlias() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class)); lbf.registerAlias("test", "testAlias"); lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class)); @@ -873,7 +845,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAliasChaining() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class)); lbf.registerAlias("test", "testAlias"); lbf.registerAlias("testAlias", "testAlias2"); @@ -886,7 +857,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanReferenceWithNewSyntax() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("r.(class)", TestBean.class.getName()); p.setProperty("r.name", "rod"); @@ -902,7 +872,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCanEscapeBeanReferenceSyntax() { String name = "*name"; - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("r.(class)", TestBean.class.getName()); p.setProperty("r.name", "*" + name); @@ -913,7 +882,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCustomEditor() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.addPropertyEditorRegistrar(new PropertyEditorRegistrar() { @Override public void registerCustomEditors(PropertyEditorRegistry registry) { @@ -932,7 +900,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCustomConverter() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); GenericConversionService conversionService = new DefaultConversionService(); conversionService.addConverter(new Converter() { @Override @@ -958,7 +925,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCustomEditorWithBeanReference() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.addPropertyEditorRegistrar(new PropertyEditorRegistrar() { @Override public void registerCustomEditors(PropertyEditorRegistry registry) { @@ -978,7 +944,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCustomTypeConverter() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN); lbf.setTypeConverter(new CustomTypeConverter(nf)); MutablePropertyValues pvs = new MutablePropertyValues(); @@ -995,7 +960,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCustomTypeConverterWithBeanReference() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN); lbf.setTypeConverter(new CustomTypeConverter(nf)); MutablePropertyValues pvs = new MutablePropertyValues(); @@ -1013,7 +977,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testRegisterExistingSingletonWithReference() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("test.(class)", TestBean.class.getName()); p.setProperty("test.name", "Tony"); @@ -1050,7 +1013,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testRegisterExistingSingletonWithNameOverriding() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Properties p = new Properties(); p.setProperty("test.(class)", TestBean.class.getName()); p.setProperty("test.name", "Tony"); @@ -1089,7 +1051,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testRegisterExistingSingletonWithAutowire() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("name", "Tony"); pvs.add("age", "48"); @@ -1112,7 +1073,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testRegisterExistingSingletonWithAlreadyBound() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); Object singletonObject = new TestBean(); lbf.registerSingleton("singletonObject", singletonObject); try { @@ -1126,7 +1086,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testReregisterBeanDefinition() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); bd1.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); lbf.registerBeanDefinition("testBean", bd1); @@ -1139,14 +1098,13 @@ public class DefaultListableBeanFactoryTests { @Test public void testArrayPropertyWithAutowiring() throws MalformedURLException { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); - bf.registerSingleton("resource1", new UrlResource("http://localhost:8080")); - bf.registerSingleton("resource2", new UrlResource("http://localhost:9090")); + lbf.registerSingleton("resource1", new UrlResource("http://localhost:8080")); + lbf.registerSingleton("resource2", new UrlResource("http://localhost:9090")); RootBeanDefinition rbd = new RootBeanDefinition(ArrayBean.class); rbd.setAutowireMode(RootBeanDefinition.AUTOWIRE_BY_TYPE); - bf.registerBeanDefinition("arrayBean", rbd); - ArrayBean ab = (ArrayBean) bf.getBean("arrayBean"); + lbf.registerBeanDefinition("arrayBean", rbd); + ArrayBean ab = (ArrayBean) lbf.getBean("arrayBean"); assertEquals(new UrlResource("http://localhost:8080"), ab.getResourceArray()[0]); assertEquals(new UrlResource("http://localhost:9090"), ab.getResourceArray()[1]); @@ -1154,26 +1112,23 @@ public class DefaultListableBeanFactoryTests { @Test public void testArrayPropertyWithOptionalAutowiring() throws MalformedURLException { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); - RootBeanDefinition rbd = new RootBeanDefinition(ArrayBean.class); rbd.setAutowireMode(RootBeanDefinition.AUTOWIRE_BY_TYPE); - bf.registerBeanDefinition("arrayBean", rbd); - ArrayBean ab = (ArrayBean) bf.getBean("arrayBean"); + lbf.registerBeanDefinition("arrayBean", rbd); + ArrayBean ab = (ArrayBean) lbf.getBean("arrayBean"); assertNull(ab.getResourceArray()); } @Test public void testArrayConstructorWithAutowiring() { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); - bf.registerSingleton("integer1", new Integer(4)); - bf.registerSingleton("integer2", new Integer(5)); + lbf.registerSingleton("integer1", new Integer(4)); + lbf.registerSingleton("integer2", new Integer(5)); RootBeanDefinition rbd = new RootBeanDefinition(ArrayBean.class); rbd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); - bf.registerBeanDefinition("arrayBean", rbd); - ArrayBean ab = (ArrayBean) bf.getBean("arrayBean"); + lbf.registerBeanDefinition("arrayBean", rbd); + ArrayBean ab = (ArrayBean) lbf.getBean("arrayBean"); assertEquals(new Integer(4), ab.getIntegerArray()[0]); assertEquals(new Integer(5), ab.getIntegerArray()[1]); @@ -1181,28 +1136,25 @@ public class DefaultListableBeanFactoryTests { @Test public void testArrayConstructorWithOptionalAutowiring() { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); - RootBeanDefinition rbd = new RootBeanDefinition(ArrayBean.class); rbd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); - bf.registerBeanDefinition("arrayBean", rbd); - ArrayBean ab = (ArrayBean) bf.getBean("arrayBean"); + lbf.registerBeanDefinition("arrayBean", rbd); + ArrayBean ab = (ArrayBean) lbf.getBean("arrayBean"); assertNull(ab.getIntegerArray()); } @Test public void testDoubleArrayConstructorWithAutowiring() throws MalformedURLException { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); - bf.registerSingleton("integer1", new Integer(4)); - bf.registerSingleton("integer2", new Integer(5)); - bf.registerSingleton("resource1", new UrlResource("http://localhost:8080")); - bf.registerSingleton("resource2", new UrlResource("http://localhost:9090")); + lbf.registerSingleton("integer1", new Integer(4)); + lbf.registerSingleton("integer2", new Integer(5)); + lbf.registerSingleton("resource1", new UrlResource("http://localhost:8080")); + lbf.registerSingleton("resource2", new UrlResource("http://localhost:9090")); RootBeanDefinition rbd = new RootBeanDefinition(ArrayBean.class); rbd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); - bf.registerBeanDefinition("arrayBean", rbd); - ArrayBean ab = (ArrayBean) bf.getBean("arrayBean"); + lbf.registerBeanDefinition("arrayBean", rbd); + ArrayBean ab = (ArrayBean) lbf.getBean("arrayBean"); assertEquals(new Integer(4), ab.getIntegerArray()[0]); assertEquals(new Integer(5), ab.getIntegerArray()[1]); @@ -1212,14 +1164,13 @@ public class DefaultListableBeanFactoryTests { @Test public void testDoubleArrayConstructorWithOptionalAutowiring() throws MalformedURLException { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); - bf.registerSingleton("resource1", new UrlResource("http://localhost:8080")); - bf.registerSingleton("resource2", new UrlResource("http://localhost:9090")); + lbf.registerSingleton("resource1", new UrlResource("http://localhost:8080")); + lbf.registerSingleton("resource2", new UrlResource("http://localhost:9090")); RootBeanDefinition rbd = new RootBeanDefinition(ArrayBean.class); rbd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); - bf.registerBeanDefinition("arrayBean", rbd); - ArrayBean ab = (ArrayBean) bf.getBean("arrayBean"); + lbf.registerBeanDefinition("arrayBean", rbd); + ArrayBean ab = (ArrayBean) lbf.getBean("arrayBean"); assertNull(ab.getIntegerArray()); assertNull(ab.getResourceArray()); @@ -1227,24 +1178,22 @@ public class DefaultListableBeanFactoryTests { @Test public void testExpressionInStringArray() { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); BeanExpressionResolver beanExpressionResolver = mock(BeanExpressionResolver.class); when(beanExpressionResolver.evaluate(eq("#{foo}"), ArgumentMatchers.any(BeanExpressionContext.class))) .thenReturn("classpath:/org/springframework/beans/factory/xml/util.properties"); - bf.setBeanExpressionResolver(beanExpressionResolver); + lbf.setBeanExpressionResolver(beanExpressionResolver); RootBeanDefinition rbd = new RootBeanDefinition(PropertiesFactoryBean.class); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("locations", new String[]{"#{foo}"}); rbd.setPropertyValues(pvs); - bf.registerBeanDefinition("myProperties", rbd); - Properties properties = (Properties) bf.getBean("myProperties"); + lbf.registerBeanDefinition("myProperties", rbd); + Properties properties = (Properties) lbf.getBean("myProperties"); assertEquals("bar", properties.getProperty("foo")); } @Test public void testAutowireWithNoDependencies() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("rod", bd); assertEquals(1, lbf.getBeanDefinitionCount()); @@ -1255,7 +1204,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireWithSatisfiedJavaBeanDependency() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("name", "Rod"); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); @@ -1272,7 +1220,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireWithSatisfiedConstructorDependency() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("name", "Rod"); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); @@ -1288,7 +1235,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireWithTwoMatchesForConstructorDependency() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("rod", bd); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); @@ -1306,7 +1252,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireWithUnsatisfiedConstructorDependency() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.addPropertyValue(new PropertyValue("name", "Rod")); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); @@ -1324,7 +1269,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireConstructor() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("spouse", bd); ConstructorDependenciesBean bean = (ConstructorDependenciesBean) @@ -1336,7 +1280,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByName() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("spouse", bd); DependenciesBean bean = (DependenciesBean) @@ -1348,7 +1291,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByNameWithDependencyCheck() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("spous", bd); try { @@ -1362,7 +1304,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByNameWithNoDependencyCheck() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("spous", bd); DependenciesBean bean = (DependenciesBean) @@ -1372,7 +1313,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testDependsOnCycle() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); bd1.setDependsOn("tb2"); lbf.registerBeanDefinition("tb1", bd1); @@ -1393,7 +1333,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testImplicitDependsOnCycle() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); bd1.setDependsOn("tb2"); lbf.registerBeanDefinition("tb1", bd1); @@ -1417,7 +1356,6 @@ public class DefaultListableBeanFactoryTests { @Test(expected = NoSuchBeanDefinitionException.class) public void testGetBeanByTypeWithNoneFound() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.getBean(TestBean.class); } @@ -1433,7 +1371,6 @@ public class DefaultListableBeanFactoryTests { @Test(expected = NoUniqueBeanDefinitionException.class) public void testGetBeanByTypeWithAmbiguity() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("bd1", bd1); @@ -1443,7 +1380,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeWithPrimary() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); bd1.setLazyInit(true); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); @@ -1457,7 +1393,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeWithMultiplePrimary() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); bd1.setPrimary(true); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); @@ -1471,7 +1406,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeWithPriority() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE); RootBeanDefinition bd1 = new RootBeanDefinition(HighPriorityTestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(LowPriorityTestBean.class); @@ -1486,7 +1420,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testMapInjectionWithPriority() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE); RootBeanDefinition bd1 = new RootBeanDefinition(HighPriorityTestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(LowPriorityTestBean.class); @@ -1503,7 +1436,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeWithMultiplePriority() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE); RootBeanDefinition bd1 = new RootBeanDefinition(HighPriorityTestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(HighPriorityTestBean.class); @@ -1517,7 +1449,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeWithPriorityAndNullInstance() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE); RootBeanDefinition bd1 = new RootBeanDefinition(HighPriorityTestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(NullTestBeanFactoryBean.class); @@ -1529,7 +1460,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypePrimaryHasPrecedenceOverPriority() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE); RootBeanDefinition bd1 = new RootBeanDefinition(HighPriorityTestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); @@ -1542,7 +1472,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeFiltersOutNonAutowireCandidates() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); RootBeanDefinition na1 = new RootBeanDefinition(TestBean.class); @@ -1563,9 +1492,26 @@ public class DefaultListableBeanFactoryTests { } } + @Test + public void getBeanByTypeWithNullRequiredType() { + thrown.expect(IllegalArgumentException.class); + lbf.getBean((Class) null); + } + + @Test + public void getBeanProviderByTypeWithNullRequiredType() { + thrown.expect(IllegalArgumentException.class); + lbf.getBeanProvider((Class) null); + } + + @Test + public void resolveNamedBeanByTypeWithNullRequiredType() { + thrown.expect(IllegalArgumentException.class); + lbf.resolveNamedBean((Class) null); + } + @Test public void testGetBeanByTypeInstanceWithNoneFound() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); try { lbf.getBean(ConstructorDependency.class); @@ -1632,7 +1578,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeInstanceWithAmbiguity() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99); RootBeanDefinition bd2 = new RootBeanDefinition(ConstructorDependency.class); bd2.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); @@ -1701,7 +1646,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeInstanceWithPrimary() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99); RootBeanDefinition bd2 = createConstructorDependencyBeanDefinition(43); bd2.setPrimary(true); @@ -1751,7 +1695,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeInstanceWithMultiplePrimary() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99); RootBeanDefinition bd2 = createConstructorDependencyBeanDefinition(43); bd1.setPrimary(true); @@ -1766,7 +1709,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanByTypeInstanceFiltersOutNonAutowireCandidates() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99); RootBeanDefinition bd2 = createConstructorDependencyBeanDefinition(43); RootBeanDefinition na1 = createConstructorDependencyBeanDefinition(21); @@ -1789,7 +1731,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanProviderSerialization() throws Exception { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setSerializationId("test"); ObjectProvider provider = lbf.getBeanProvider(ConstructorDependency.class); @@ -1814,7 +1755,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanWithArgsNotCreatedForFactoryBeanChecking() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd1 = new RootBeanDefinition(ConstructorDependency.class); bd1.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); lbf.registerBeanDefinition("bd1", bd1); @@ -1841,7 +1781,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByType() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("test", bd); DependenciesBean bean = (DependenciesBean) @@ -1858,7 +1797,6 @@ public class DefaultListableBeanFactoryTests { */ @Test public void testAutowireBeanWithFactoryBeanByType() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(LazyInitFactory.class); lbf.registerBeanDefinition("factoryBean", bd); LazyInitFactory factoryBean = (LazyInitFactory) lbf.getBean("&factoryBean"); @@ -1871,7 +1809,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetTypeForAbstractFactoryBean() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class); bd.setAbstract(true); lbf.registerBeanDefinition("factoryBean", bd); @@ -1880,7 +1817,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanNamesForTypeBeforeFactoryBeanCreation() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("factoryBean", new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class)); assertFalse(lbf.containsSingleton("factoryBean")); @@ -1903,7 +1839,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testGetBeanNamesForTypeAfterFactoryBeanCreation() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("factoryBean", new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class)); lbf.getBean("&factoryBean"); @@ -1932,7 +1867,6 @@ public class DefaultListableBeanFactoryTests { */ @Test(expected = TypeMismatchException.class) public void testAutowireBeanWithFactoryBeanByName() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(LazyInitFactory.class); lbf.registerBeanDefinition("factoryBean", bd); LazyInitFactory factoryBean = (LazyInitFactory) lbf.getBean("&factoryBean"); @@ -1942,7 +1876,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByTypeWithTwoMatches() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("test", bd); @@ -1960,7 +1893,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByTypeWithDependencyCheck() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); try { lbf.autowire(DependenciesBean.class, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true); fail("Should have thrown UnsatisfiedDependencyException"); @@ -1972,7 +1904,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByTypeWithNoDependencyCheck() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); DependenciesBean bean = (DependenciesBean) lbf.autowire(DependenciesBean.class, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false); assertNull(bean.getSpouse()); @@ -1980,7 +1911,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByTypeWithTwoMatchesAndOnePrimary() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); bd.setPrimary(true); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); @@ -1994,7 +1924,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByTypeWithTwoPrimaryCandidates() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); bd.setPrimary(true); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); @@ -2015,7 +1944,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByTypeWithTwoMatchesAndPriority() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE); RootBeanDefinition bd = new RootBeanDefinition(HighPriorityTestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(LowPriorityTestBean.class); @@ -2029,7 +1957,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByTypeWithIdenticalPriorityCandidates() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE); RootBeanDefinition bd = new RootBeanDefinition(HighPriorityTestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(HighPriorityTestBean.class); @@ -2050,7 +1977,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireBeanByTypePrimaryTakesPrecedenceOverPriority() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE); RootBeanDefinition bd = new RootBeanDefinition(HighPriorityTestBean.class); RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); @@ -2065,7 +1991,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireExistingBeanByName() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("spouse", bd); DependenciesBean existingBean = new DependenciesBean(); @@ -2077,7 +2002,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireExistingBeanByNameWithDependencyCheck() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("spous", bd); DependenciesBean existingBean = new DependenciesBean(); @@ -2092,7 +2016,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireExistingBeanByNameWithNoDependencyCheck() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("spous", bd); DependenciesBean existingBean = new DependenciesBean(); @@ -2102,7 +2025,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireExistingBeanByType() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("test", bd); DependenciesBean existingBean = new DependenciesBean(); @@ -2113,7 +2035,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireExistingBeanByTypeWithDependencyCheck() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); DependenciesBean existingBean = new DependenciesBean(); try { lbf.autowireBeanProperties(existingBean, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true); @@ -2125,7 +2046,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAutowireExistingBeanByTypeWithNoDependencyCheck() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); DependenciesBean existingBean = new DependenciesBean(); lbf.autowireBeanProperties(existingBean, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false); assertNull(existingBean.getSpouse()); @@ -2133,7 +2053,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testInvalidAutowireMode() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); try { lbf.autowireBeanProperties(new TestBean(), AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, false); fail("Should have thrown IllegalArgumentException"); @@ -2144,7 +2063,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testApplyBeanPropertyValues() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("age", "99"); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); @@ -2158,7 +2076,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testApplyBeanPropertyValuesWithIncompleteDefinition() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("age", "99"); RootBeanDefinition bd = new RootBeanDefinition(); @@ -2174,7 +2091,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCreateBean() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); TestBean tb = lbf.createBean(TestBean.class); assertSame(lbf, tb.getBeanFactory()); lbf.destroyBean(tb); @@ -2182,7 +2098,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCreateBeanWithDisposableBean() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); DerivedTestBean tb = lbf.createBean(DerivedTestBean.class); assertSame(lbf, tb.getBeanFactory()); lbf.destroyBean(tb); @@ -2191,7 +2106,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testConfigureBean() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("age", "99"); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); @@ -2207,7 +2121,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testConfigureBeanWithAutowiring() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); lbf.registerBeanDefinition("spouse", bd); MutablePropertyValues pvs = new MutablePropertyValues(); @@ -2224,7 +2137,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testExtensiveCircularReference() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); for (int i = 0; i < 1000; i++) { MutablePropertyValues pvs = new MutablePropertyValues(); pvs.addPropertyValue(new PropertyValue("spouse", new RuntimeBeanReference("bean" + (i < 99 ? i + 1 : 0)))); @@ -2242,7 +2154,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCircularReferenceThroughAutowiring() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependencyBean.class); bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); lbf.registerBeanDefinition("test", bd); @@ -2256,7 +2167,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCircularReferenceThroughFactoryBeanAutowiring() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependencyFactoryBean.class); bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); lbf.registerBeanDefinition("test", bd); @@ -2270,7 +2180,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testCircularReferenceThroughFactoryBeanTypeCheck() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependencyFactoryBean.class); bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); lbf.registerBeanDefinition("test", bd); @@ -2284,7 +2193,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testAvoidCircularReferenceThroughAutowiring() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependencyFactoryBean.class); bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); lbf.registerBeanDefinition("test", bd); @@ -2296,7 +2204,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testConstructorDependencyWithClassResolution() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependencyWithClassResolution.class); bd.getConstructorArgumentValues().addGenericArgumentValue("java.lang.String"); lbf.registerBeanDefinition("test", bd); @@ -2305,7 +2212,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testConstructorDependencyWithUnresolvableClass() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependencyWithClassResolution.class); bd.getConstructorArgumentValues().addGenericArgumentValue("java.lang.Strin"); lbf.registerBeanDefinition("test", bd); @@ -2320,7 +2226,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanDefinitionWithInterface() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(ITestBean.class)); try { lbf.getBean("test"); @@ -2334,7 +2239,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanDefinitionWithAbstractClass() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(AbstractBeanFactory.class)); try { lbf.getBean("test"); @@ -2348,14 +2252,12 @@ public class DefaultListableBeanFactoryTests { @Test public void testPrototypeFactoryBeanNotEagerlyCalled() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class)); lbf.preInstantiateSingletons(); } @Test public void testLazyInitFactory() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(LazyInitFactory.class)); lbf.preInstantiateSingletons(); LazyInitFactory factory = (LazyInitFactory) lbf.getBean("&test"); @@ -2364,7 +2266,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testSmartInitFactory() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(EagerInitFactory.class)); lbf.preInstantiateSingletons(); EagerInitFactory factory = (EagerInitFactory) lbf.getBean("&test"); @@ -2373,7 +2274,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPrototypeFactoryBeanNotEagerlyCalledInCaseOfBeanClassName() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class.getName(), null, null)); lbf.preInstantiateSingletons(); @@ -2381,7 +2281,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPrototypeStringCreatedRepeatedly() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition stringDef = new RootBeanDefinition(String.class); stringDef.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); stringDef.getConstructorArgumentValues().addGenericArgumentValue(new TypedStringValue("value")); @@ -2395,7 +2294,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPrototypeWithArrayConversionForConstructor() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); List list = new ManagedList<>(); list.add("myName"); list.add("myBeanName"); @@ -2414,7 +2312,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testPrototypeWithArrayConversionForFactoryMethod() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); List list = new ManagedList<>(); list.add("myName"); list.add("myBeanName"); @@ -2436,7 +2333,6 @@ public class DefaultListableBeanFactoryTests { public void testPrototypeCreationIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); Assume.notLogging(factoryLog); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); lbf.registerBeanDefinition("test", rbd); @@ -2455,7 +2351,6 @@ public class DefaultListableBeanFactoryTests { public void testPrototypeCreationWithDependencyCheckIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); Assume.notLogging(factoryLog); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(LifecycleBean.class); rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.setDependencyCheck(RootBeanDefinition.DEPENDENCY_CHECK_OBJECTS); @@ -2477,7 +2372,6 @@ public class DefaultListableBeanFactoryTests { public void testPrototypeCreationWithConstructorArgumentsIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); Assume.notLogging(factoryLog); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.getConstructorArgumentValues().addGenericArgumentValue("juergen"); @@ -2500,7 +2394,6 @@ public class DefaultListableBeanFactoryTests { public void testPrototypeCreationWithResolvedConstructorArgumentsIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); Assume.notLogging(factoryLog); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference("spouse")); @@ -2523,7 +2416,6 @@ public class DefaultListableBeanFactoryTests { public void testPrototypeCreationWithPropertiesIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); Assume.notLogging(factoryLog); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.getPropertyValues().add("name", "juergen"); @@ -2546,7 +2438,6 @@ public class DefaultListableBeanFactoryTests { public void testPrototypeCreationWithResolvedPropertiesIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); Assume.notLogging(factoryLog); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition rbd = new RootBeanDefinition(TestBean.class); rbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); rbd.getPropertyValues().add("spouse", new RuntimeBeanReference("spouse")); @@ -2569,7 +2460,6 @@ public class DefaultListableBeanFactoryTests { public void testSingletonLookupByNameIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); Assume.notLogging(factoryLog); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class)); lbf.freezeConfiguration(); StopWatch sw = new StopWatch(); @@ -2586,7 +2476,6 @@ public class DefaultListableBeanFactoryTests { public void testSingletonLookupByTypeIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); Assume.notLogging(factoryLog); - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class)); lbf.freezeConfiguration(); StopWatch sw = new StopWatch(); @@ -2601,7 +2490,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanPostProcessorWithWrappedObjectAndDisposableBean() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(BeanWithDisposableBean.class); lbf.registerBeanDefinition("test", bd); lbf.addBeanPostProcessor(new BeanPostProcessor() { @@ -2622,7 +2510,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanPostProcessorWithWrappedObjectAndCloseable() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(BeanWithCloseable.class); lbf.registerBeanDefinition("test", bd); lbf.addBeanPostProcessor(new BeanPostProcessor() { @@ -2643,7 +2530,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testBeanPostProcessorWithWrappedObjectAndDestroyMethod() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(BeanWithDestroyMethod.class); bd.setDestroyMethodName("close"); lbf.registerBeanDefinition("test", bd); @@ -2665,7 +2551,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testDestroyMethodOnInnerBean() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition innerBd = new RootBeanDefinition(BeanWithDestroyMethod.class); innerBd.setDestroyMethodName("close"); RootBeanDefinition bd = new RootBeanDefinition(BeanWithDestroyMethod.class); @@ -2680,7 +2565,6 @@ public class DefaultListableBeanFactoryTests { @Test public void testDestroyMethodOnInnerBeanAsPrototype() { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition innerBd = new RootBeanDefinition(BeanWithDestroyMethod.class); innerBd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE); innerBd.setDestroyMethodName("close"); @@ -2715,7 +2599,6 @@ public class DefaultListableBeanFactoryTests { String expectedNameFromProperties = "tony"; String expectedNameFromArgs = "gordon"; - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition instanceFactoryDefinition = new RootBeanDefinition(BeanWithFactoryMethod.class); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("name", expectedNameFromProperties); @@ -2843,7 +2726,6 @@ public class DefaultListableBeanFactoryTests { } private void doTestFieldSettingWithInstantiationAwarePostProcessor(final boolean skipPropertyPopulation) { - DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); int ageSetByPropertyValue = 27; bd.getPropertyValues().addPropertyValue(new PropertyValue("age", new Integer(ageSetByPropertyValue))); @@ -2880,7 +2762,6 @@ public class DefaultListableBeanFactoryTests { @SuppressWarnings("unchecked") @Test public void testInitSecurityAwarePrototypeBean() { - final DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(TestSecuredBean.class); bd.setScope(ConfigurableBeanFactory.SCOPE_PROTOTYPE); bd.setInitMethodName("init"); @@ -2901,27 +2782,25 @@ public class DefaultListableBeanFactoryTests { @Test public void testContainsBeanReturnsTrueEvenForAbstractBeanDefinition() { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); - bf.registerBeanDefinition("abs", BeanDefinitionBuilder + lbf.registerBeanDefinition("abs", BeanDefinitionBuilder .rootBeanDefinition(TestBean.class).setAbstract(true).getBeanDefinition()); - assertThat(bf.containsBean("abs"), equalTo(true)); - assertThat(bf.containsBean("bogus"), equalTo(false)); + assertThat(lbf.containsBean("abs"), equalTo(true)); + assertThat(lbf.containsBean("bogus"), equalTo(false)); } @Test public void resolveEmbeddedValue() { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); StringValueResolver r1 = mock(StringValueResolver.class); StringValueResolver r2 = mock(StringValueResolver.class); StringValueResolver r3 = mock(StringValueResolver.class); - bf.addEmbeddedValueResolver(r1); - bf.addEmbeddedValueResolver(r2); - bf.addEmbeddedValueResolver(r3); + lbf.addEmbeddedValueResolver(r1); + lbf.addEmbeddedValueResolver(r2); + lbf.addEmbeddedValueResolver(r3); given(r1.resolveStringValue("A")).willReturn("B"); given(r2.resolveStringValue("B")).willReturn(null); given(r3.resolveStringValue(isNull())).willThrow(new IllegalArgumentException()); - bf.resolveEmbeddedValue("A"); + lbf.resolveEmbeddedValue("A"); verify(r1).resolveStringValue("A"); verify(r2).resolveStringValue("B"); @@ -2930,30 +2809,27 @@ public class DefaultListableBeanFactoryTests { @Test public void populatedJavaUtilOptionalBean() { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(Optional.class); bd.setFactoryMethodName("of"); bd.getConstructorArgumentValues().addGenericArgumentValue("CONTENT"); - bf.registerBeanDefinition("optionalBean", bd); - assertEquals(Optional.of("CONTENT"), bf.getBean(Optional.class)); + lbf.registerBeanDefinition("optionalBean", bd); + assertEquals(Optional.of("CONTENT"), lbf.getBean(Optional.class)); } @Test public void emptyJavaUtilOptionalBean() { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(Optional.class); bd.setFactoryMethodName("empty"); - bf.registerBeanDefinition("optionalBean", bd); - assertSame(Optional.empty(), bf.getBean(Optional.class)); + lbf.registerBeanDefinition("optionalBean", bd); + assertSame(Optional.empty(), lbf.getBean(Optional.class)); } @Test public void testNonPublicEnum() { - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); RootBeanDefinition bd = new RootBeanDefinition(NonPublicEnumHolder.class); bd.getConstructorArgumentValues().addGenericArgumentValue("VALUE_1"); - bf.registerBeanDefinition("holderBean", bd); - NonPublicEnumHolder holder = (NonPublicEnumHolder) bf.getBean("holderBean"); + lbf.registerBeanDefinition("holderBean", bd); + NonPublicEnumHolder holder = (NonPublicEnumHolder) lbf.getBean("holderBean"); assertEquals(NonPublicEnum.VALUE_1, holder.getNonPublicEnum()); } @@ -2970,41 +2846,38 @@ public class DefaultListableBeanFactoryTests { @Test(timeout = 1000) public void testByTypeLookupIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); for (int i = 0; i < 1000; i++) { - bf.registerBeanDefinition("a" + i, new RootBeanDefinition(A.class)); + lbf.registerBeanDefinition("a" + i, new RootBeanDefinition(A.class)); } - bf.registerBeanDefinition("b", new RootBeanDefinition(B.class)); + lbf.registerBeanDefinition("b", new RootBeanDefinition(B.class)); - bf.freezeConfiguration(); + lbf.freezeConfiguration(); for (int i = 0; i < 10000; i++) { - bf.getBean(B.class); + lbf.getBean(B.class); } } @Test(timeout = 1000) public void testRegistrationOfManyBeanDefinitionsIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); - bf.registerBeanDefinition("b", new RootBeanDefinition(B.class)); - // bf.getBean("b"); + lbf.registerBeanDefinition("b", new RootBeanDefinition(B.class)); + // lbf.getBean("b"); for (int i = 0; i < 100000; i++) { - bf.registerBeanDefinition("a" + i, new RootBeanDefinition(A.class)); + lbf.registerBeanDefinition("a" + i, new RootBeanDefinition(A.class)); } } @Test(timeout = 1000) public void testRegistrationOfManySingletonsIsFastEnough() { Assume.group(TestGroup.PERFORMANCE); - DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); - bf.registerBeanDefinition("b", new RootBeanDefinition(B.class)); - // bf.getBean("b"); + lbf.registerBeanDefinition("b", new RootBeanDefinition(B.class)); + // lbf.getBean("b"); for (int i = 0; i < 100000; i++) { - bf.registerSingleton("a" + i, new A()); + lbf.registerSingleton("a" + i, new A()); } }