From b8c0e153e3f6f7beae5b4927f0bb0dff2971edf9 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 16 Mar 2010 23:47:40 +0000 Subject: [PATCH] do not insist on BeanDefinition presence for @Value resolution (for use in unit tests; SPR-6918) --- .../beans/factory/support/AbstractBeanFactory.java | 2 +- .../beans/factory/support/DefaultListableBeanFactory.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java index a8731c75119..3c418e4714f 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java @@ -1242,7 +1242,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp if (this.beanExpressionResolver == null) { return value; } - Scope scope = getRegisteredScope(beanDefinition.getScope()); + Scope scope = (beanDefinition != null ? getRegisteredScope(beanDefinition.getScope()) : null); return this.beanExpressionResolver.evaluate(value, new BeanExpressionContext(this, scope)); } 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 6a85c8d1fbf..9feecbc4ed2 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 @@ -694,7 +694,8 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto if (value != null) { if (value instanceof String) { String strVal = resolveEmbeddedValue((String) value); - value = evaluateBeanDefinitionString(strVal, getMergedBeanDefinition(beanName)); + BeanDefinition bd = (containsBean(beanName) ? getMergedBeanDefinition(beanName) : null); + value = evaluateBeanDefinitionString(strVal, bd); } TypeConverter converter = (typeConverter != null ? typeConverter : getTypeConverter()); return converter.convertIfNecessary(value, type);