Tightened StringValueResolver contract
Issue: SPR-14842
(cherry picked from commit 20419d7)
This commit is contained in:
@@ -372,8 +372,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());
|
||||
}
|
||||
@@ -805,12 +805,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;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2007 the original author or authors.
|
||||
* Copyright 2002-2016 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.
|
||||
@@ -30,8 +30,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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user