⭐ New Features
- Misleading exception message for using JPA with custom IsolationLevels [SPR-8325] #12974
- Revisit class cache in CachedIntrospectionResults [SPR-11867] #16486
- Performance regression for custom autowireBean calls with many properties [SPR-11875] #16494
- ReflectionUtils slow down application startup on WebSphere [SPR-11882] #16501
- Improve performance of ReflectionUtils.isCglibRenamedMethod [SPR-11894] #16513
- Consistent declaration of private static final logger variables [SPR-11905] #16524
- Manually registered transaction manager are not recognized by qualifiedBeanOfType [SPR-11915] #16534
- Unclear error message on BeanPostProcessor returning null [SPR-11951] #15997
🪲 Bug Fixes
- RequestAttributes in FrameworkPortlet [SPR-11295] #15919
- StandardPortletEnvironment is not properly populated [SPR-11816] #16436
- isGlobalRollbackOnly always returns 'false' with WebSphereUOWTransactionManager [SPR-11876] #16495
- MBeanExportConfiguration.SpecificPlatform never calls afterPropertiesSet() [SPR-11877] #16496
- URIComponentsBuilder shares state across calls of .build() [SPR-11885] #16504
- Spring 3.2.9 breaks JBoss EAP 5.1.1 VFS compatibility [SPR-11887] #16506
- HttpHeaders fails to return getAllow() if it was previously set to an empty collection [SPR-11917] #16536
- Objects created by FactoryBeans might get processed multiple times by BeanPostProcessors if beans are created lazily [SPR-11937] #16554
- Backward compatibility issue in RestTemplate's messageConverters after SPR-11351 [SPR-11962] #16578
- Java 8: ASM5 visitors required for parsing INVOKESPECIAL/STATIC on interfaces [SPR-11979] #16595
📔 Documentation
- Dead link to "MVC application step-by-step" guide [SPR-11935] #16552