Fixes gh-898.

This commit is contained in:
Olga MaciaszekSharma
2021-07-05 16:41:57 +02:00
parent b628338e54
commit f90f11d7b1
2 changed files with 2 additions and 15 deletions

View File

@@ -94,7 +94,7 @@ public class ConfigurationPropertiesRebinder
try {
Object bean = this.applicationContext.getBean(name);
if (AopUtils.isAopProxy(bean)) {
bean = ProxyUtils.getUltimateTargetObject(bean);
bean = ProxyUtils.getTargetObject(bean);
}
if (bean != null) {
// TODO: determine a more general approach to fix this.

View File

@@ -31,25 +31,12 @@ public final class ProxyUtils {
@SuppressWarnings("unchecked")
public static <T> T getTargetObject(Object candidate) {
try {
if (AopUtils.isAopProxy(candidate) && (candidate instanceof Advised)) {
return (T) ((Advised) candidate).getTargetSource().getTarget();
}
}
catch (Exception ex) {
throw new IllegalStateException("Failed to unwrap proxied object", ex);
}
return (T) candidate;
}
@SuppressWarnings("unchecked")
public static <T> T getUltimateTargetObject(Object candidate) {
Assert.notNull(candidate, "Candidate must not be null");
try {
if (AopUtils.isAopProxy(candidate) && candidate instanceof Advised) {
Object target = ((Advised) candidate).getTargetSource().getTarget();
if (target != null) {
return (T) getUltimateTargetObject(target);
return (T) getTargetObject(target);
}
}
}