⭐ New Features
- Allow method inlining of ObjectUtils.nullSafeEquals() [SPR-14349] #18921
- Normalize resource URL in ResourceServlet [SPR-14946] #19513
- ModelAndViewResolver still refers to raw Class type [SPR-7860] #12517
🪲 Bug Fixes
- Constructor sets the source incorrectly in org.springframework.beans.PropertyValue [SPR-8337] #12985
- ObjectToObjectConverter should be able to use constructors on non-public classes [SPR-14304] #18876
- Async advisor retrieval blocks when triggered by singleton init method [SPR-14324] #18896
- Deadlock while creating a new thread on bean initialization with transactional code invocation [SPR-14388] #18961
- CronSequenceGenerator causes StackOverflowError with reversed range values [SPR-14462] #19031
- Ineffective synchronization in StandardTypeConverter constructor [SPR-14465] #19034
- ResourcePatternUtils.getResourcePatternResolver does not accept null arg [SPR-14500] #19069
- LinkedCaseInsensitiveMap doesn't override HashMap.clone() [SPR-14509] #19078
- StackOverflowError for advisor search against factory-bean reference to FactoryBean [SPR-14551] #19119
- StringUtils.parseLocaleString(): does not parse locale string in java 7 for Serbian (Latin) [SPR-14718] #19283
- Concurrency problem in DeferredResult: potential double execution of handleResult [SPR-14978] #19544
- MBeanExporter fails against null beans [SPR-15031] #19598