Browse Source

Tightened StringValueResolver contract

Issue: SPR-14842
pull/1223/head
Juergen Hoeller 8 years ago
parent
commit
20419d72ef
  1. 9
      spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java
  2. 7
      spring-core/src/main/java/org/springframework/util/StringValueResolver.java

9
spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java

@ -370,8 +370,8 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp @@ -370,8 +370,8 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
}
catch (TypeMismatchException ex) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to convert bean '" + name + "' to required type [" +
ClassUtils.getQualifiedName(requiredType) + "]", ex);
logger.debug("Failed to convert bean '" + name + "' to required type '" +
ClassUtils.getQualifiedName(requiredType) + "'", ex);
}
throw new BeanNotOfRequiredTypeException(name, requiredType, bean.getClass());
}
@ -803,12 +803,15 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp @@ -803,12 +803,15 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
@Override
public String resolveEmbeddedValue(String value) {
if (value == null) {
return null;
}
String result = value;
for (StringValueResolver resolver : this.embeddedValueResolvers) {
result = resolver.resolveStringValue(result);
if (result == null) {
return null;
}
result = resolver.resolveStringValue(result);
}
return result;
}

7
spring-core/src/main/java/org/springframework/util/StringValueResolver.java

@ -31,8 +31,11 @@ public interface StringValueResolver { @@ -31,8 +31,11 @@ public interface StringValueResolver {
/**
* Resolve the given String value, for example parsing placeholders.
* @param strVal the original String value
* @return the resolved String value
* @param strVal the original String value (never {@code null})
* @return the resolved String value (may be {@code null} when resolved to a null
* value), possibly the original String value itself (in case of no placeholders
* to resolve or when ignoring unresolvable placeholders)
* @throws IllegalArgumentException in case of an unresolvable String value
*/
String resolveStringValue(String strVal);

Loading…
Cancel
Save