⭐ New Features
- Performance issue on ResolvableType cache [SPR-12122] #16738
- Cache.get(Object key, Class type) should be more explicit about what to do in case of a type mismatch [SPR-12145] #16759
- BeanNameViewResolver should not try to use non-View beans [SPR-12079] #16695
- AbstractTypeHierarchyTraversingFilter should be more lenient when loading types [SPR-12042] #16658
- ConcurrentMapCacheManager has interdependent setters [SPR-12026] #16642
- RestTemplate with InputStreamResource does not work if Content-Length is not set [SPR-12017] #16633
- Exceptions thrown during AbstractApplicationContext.refresh() not being logged right when they are caught [SPR-12010] #16626
- XmlBeanDefinitionReader runs 10x slower due to resetBeanDefinition check [SPR-8318] #12966
🪲 Bug Fixes
- Injecting EXTENDED
@PersistenceContext
into JUnit 4 test class causes NoSuchBeanDefinitionException [SPR-8834] #13476 - getBean(Object.class) fails when introspecting Environment bean [SPR-10542] #15172
- ShallowEtagHeaderFilter doesn't support Servlet 3.1 setContentLengthLong [SPR-12097] #16713
- ServerEndpointExporter causes application context refresh to fail with an NPE when used in a Spring Boot app [SPR-12109] #16725
- MockMvc security filters causes FileUploadException: the request was rejected because no multipart boundary was found [SPR-12114] #16730
- GuavaCacheManager ignores cache specification due to eager initialization of internal cache map with static cache names [SPR-12120] #16736
- Plain FactoryBean declaration on
@Bean
method leads to early call (pre injection) [SPR-12141] #16755 - CachingConnectionFactory should catch exceptions on logical close [SPR-12148] #16762
- Tiles 3 TilesViewResolver should allow for custom TilesView subclasses [SPR-12075] #16691
- includeFilters and excludeFilters of
@ComponentScan
cause failures when used in meta-annotations [SPR-12065] #16681 - Spring may invoke
@Bean
methods too early in case of a circular reference [SPR-12018] #16634 - AbstractMessageListenerContainer#doExecuteListener can cause a dropped message if using CLIENT_ACKNOWLEDGE and the container is stopped and subsequently started again. [SPR-12015] #16631
- Non-stable BeanCurrentlyInCreationException with wrong Java config [SPR-12004] #16620
- Changes to AbstractApplicationEventMulticaster in 3.2.9 break HttpSessionEventPublisher in Google AppEngine Runtime [SPR-12002] #16618
- NPE in SelectedValueComparator with null bound value [SPR-12001] #16617
- StaxStreamXMLReader ignores significant whitespace [SPR-12000] #16616
- UriComponentsBuilder.fromUriString may not parse correctly when there is no path [SPR-11970] #16586
- Exception during context refresh swallowed by subsequent LifecycleProcessor exception handling [SPR-10000] #14634
📔 Documentation
- Incorrect documentation for AbstractAnnotationConfigDispatcherServletInitializer.getServletConfigClasses() [SPR-12028] #16644
- Documentation typo [SPR-12020] #16636
- user destinations docs are missing the brokerPrefix [SPR-11992] #16608
- Remove outdated IDE, JIRA and Tomcat references [SPR-7521] #12179