Browse Source

fixed non-Lifecycle-FactoryBean with exposed Lifecycle object case (SPR-6545)

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2639 50f2f4bb-b051-0410-bef5-90022cba6387
pull/1/head
Juergen Hoeller 16 years ago
parent
commit
a03c3e30a1
  1. 7
      org.springframework.context/src/main/java/org/springframework/context/support/DefaultLifecycleProcessor.java

7
org.springframework.context/src/main/java/org/springframework/context/support/DefaultLifecycleProcessor.java

@ -226,9 +226,10 @@ public class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor @@ -226,9 +226,10 @@ public class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor
String[] beanNames = this.beanFactory.getBeanNamesForType(Lifecycle.class, false, false);
for (String beanName : beanNames) {
String beanNameToRegister = BeanFactoryUtils.transformedBeanName(beanName);
String beanNameToCheck = (this.beanFactory.isFactoryBean(beanNameToRegister) ?
BeanFactory.FACTORY_BEAN_PREFIX + beanName : beanName);
if (this.beanFactory.containsSingleton(beanNameToRegister) ||
boolean isFactoryBean = this.beanFactory.isFactoryBean(beanNameToRegister);
String beanNameToCheck = (isFactoryBean ? BeanFactory.FACTORY_BEAN_PREFIX + beanName : beanName);
if ((this.beanFactory.containsSingleton(beanNameToRegister) &&
(!isFactoryBean || Lifecycle.class.isAssignableFrom(this.beanFactory.getType(beanNameToCheck)))) ||
SmartLifecycle.class.isAssignableFrom(this.beanFactory.getType(beanNameToCheck))) {
Lifecycle bean = this.beanFactory.getBean(beanNameToCheck, Lifecycle.class);
if (bean != this) {

Loading…
Cancel
Save