mirror of
https://github.com/spring-projects/spring-framework
synced 2026-06-08 17:33:33 +00:00
4b07edbaeb
Prior to this commit, the determineBasicProperties() method in PropertyDescriptorUtils did not reliably resolve read/write methods in type hierarchies with generics. This utility method is used by SimpleBeanInfoFactory which is used by BeanUtils and BeanWrapperImpl. Thus, failure to reliably resolve read/write JavaBeans methods resulted in bugs in certain scenarios. For example, BeanUtils.copyProperties() randomly failed to copy certain properties if the write method for the property could not be resolved. To address such issues, this commit revises the implementation of PropertyDescriptorUtils as follows. 1) Read methods with covariant return types are now consistently resolved correctly. 2) If multiple ambiguous write methods are discovered, the algorithm now checks for an exact match against the resolved generic parameter type as a fallback. Closes gh-36019