diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java index 9fb8968affd..2ebbaae00ed 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2009 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. @@ -393,14 +393,13 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto if (!containsBeanDefinition(beanName)) { if (containsSingleton(beanName)) { - return true; + return isAutowireCandidate(beanName, new RootBeanDefinition(getType(beanName)), descriptor); } else if (getParentBeanFactory() instanceof ConfigurableListableBeanFactory) { // No bean definition found in this factory -> delegate to parent. return ((ConfigurableListableBeanFactory) getParentBeanFactory()).isAutowireCandidate(beanName, descriptor); } } - return isAutowireCandidate(beanName, getMergedLocalBeanDefinition(beanName), descriptor); } diff --git a/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/QualifierAnnotationTests-context.xml b/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/QualifierAnnotationTests-context.xml index e39acbf5ef6..53fc7af94b2 100644 --- a/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/QualifierAnnotationTests-context.xml +++ b/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/QualifierAnnotationTests-context.xml @@ -41,4 +41,6 @@ - \ No newline at end of file + + + diff --git a/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/QualifierAnnotationTests.java b/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/QualifierAnnotationTests.java index db75fb08498..d7319eb171f 100644 --- a/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/QualifierAnnotationTests.java +++ b/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/QualifierAnnotationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2009 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. @@ -24,6 +24,7 @@ import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import java.util.Properties; import org.junit.Test; import org.springframework.beans.factory.BeanCreationException; @@ -82,6 +83,7 @@ public final class QualifierAnnotationTests { QualifiedByBeanNameTestBean testBean = (QualifiedByBeanNameTestBean) context.getBean("testBean"); Person person = testBean.getLarry(); assertEquals("LarryBean", person.getName()); + assertTrue(testBean.myProps != null && testBean.myProps.isEmpty()); } @Test @@ -192,6 +194,9 @@ public final class QualifierAnnotationTests { @Autowired @Qualifier("larryBean") private Person larry; + @Autowired @Qualifier("testProperties") + public Properties myProps; + public Person getLarry() { return larry; }