⭐ New Features
- XmlBeanDefinitionReader runs 10x slower due to resetBeanDefinition check [SPR-8318] #12966
- Exceptions thrown during AbstractApplicationContext.refresh() not being logged right when they are caught [SPR-12010] #16626
- RestTemplate with InputStreamResource does not work if Content-Length is not set [SPR-12017] #16633
🪲 Bug Fixes
- Injecting EXTENDED
@PersistenceContext
into JUnit 4 test class causes NoSuchBeanDefinitionException [SPR-8834] #13476 - Exception during context refresh swallowed by subsequent LifecycleProcessor exception handling [SPR-10000] #14634
- getBean(Object.class) fails when introspecting Environment bean [SPR-10542] #15172
- UriComponentsBuilder.fromUriString may not parse correctly when there is no path [SPR-11970] #16586
- StaxStreamXMLReader ignores significant whitespace [SPR-12000] #16616
- NPE in SelectedValueComparator with null bound value [SPR-12001] #16617
- Changes to AbstractApplicationEventMulticaster in 3.2.9 break HttpSessionEventPublisher in Google AppEngine Runtime [SPR-12002] #16618
- AbstractMessageListenerContainer#doExecuteListener can cause a dropped message if using CLIENT_ACKNOWLEDGE and the container is stopped and subsequently started again. [SPR-12015] #16631
- Tiles 3 TilesViewResolver should allow for custom TilesView subclasses [SPR-12075] #16691
- MockMvc security filters causes FileUploadException: the request was rejected because no multipart boundary was found [SPR-12114] #16730
- 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