diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java b/org.springframework.beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java index 42e69c358f..6e503472e3 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java @@ -364,9 +364,10 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra public TypeDescriptor getPropertyTypeDescriptor(String propertyName) throws BeansException { try { - BeanWrapper nestedBw = getNestedBeanWrapper(propertyName); - PropertyTokenHolder tokens = getPropertyNameTokens(getFinalPath(nestedBw, propertyName)); - PropertyDescriptor pd = getPropertyDescriptorInternal(tokens.actualName); + BeanWrapperImpl nestedBw = getBeanWrapperForPropertyPath(propertyName); + String finalPath = getFinalPath(nestedBw, propertyName); + PropertyTokenHolder tokens = getPropertyNameTokens(finalPath); + PropertyDescriptor pd = nestedBw.getCachedIntrospectionResults().getPropertyDescriptor(tokens.actualName); if (pd != null) { if (tokens.keys != null) { if (pd.getReadMethod() != null) {