⭐ New Features
- Skip transaction/caching metadata retrieval for java.lang.Object methods [SPR-15296] #19861
- MessageHeaderAccessor's MutableMessageHeaders should be serializable [SPR-15262] #19827
- Consistently support CompletionStage next to CompletableFuture [SPR-15258] #19823
- Database.SQL_SERVER should set more recent Hibernate dialect with Spring 4.3.x [SPR-15255] #19820
- Allow configuring the ContentNegotiationManager in MockMVC standalone controller setup [SPR-15248] #19813
- DefaultSubscriptionRegistry should prevent duplicate Subscriptions per subscription id [SPR-15229] #19794
- Log failures to load PropertySources when ignoreResourceNotFound = true [SPR-15218] #19783
- Support for read-only transactions with Oracle 12c JDBC driver [SPR-15210] #19774
- TransactionSynchronizationManager - throw an Exception or log a warning if a Synchronization wants to add a Synchronization and afterCompletion is already called [SPR-11590] #16214
🪲 Bug Fixes
@Configuration
processing fails to handle AbstractFactoryBean.getObject() calls [SPR-15275] #19840- HEAD response has "Content-Length: 0" for
@RestController
@GetMapping
methods [SPR-15261] #19826 - RestTemplate with MockMvcClientHttpRequestFactory double encodes URIs [SPR-15254] #19819
- RestTemplate with Netty produces two Content-Length headers [SPR-15241] #19806
- MockHttpServletRequest.protocol default should be "HTTP/1.1", not "http" [SPR-15232] #19797
- DispatcherServlet's multipart request parsing fails during Jetty error dispatch [SPR-15231] #19796
- SettableListenableFuture may be successfully set with failureCallback executed and success callback ignored [SPR-15216] #19781
- MockHttpServletRequest.getReader() returns null in case of no content [SPR-15215] #19780
- Principal check in ServletRequestMethodArgumentResolver can result in type mismatches [SPR-15214] #19779
- HTTP Response should not contain both Transfer-Encoding and Content-Length headers [SPR-15212] #19776
- SettableListenableFuture may be both set and canceled successfully [SPR-15202] #19766
- Spring does not clean up db connection registered in afterCompletion callback [SPR-15194] #19759
- SpelCompiler VerifyError - Incompatible argument to function [SPR-15192] #19758
- If backing Cache is down
@CacheResult
does not seamlessly call method (in contrast to@Cacheable
) [SPR-15188] #19754 - InterceptingClientHttpRequest replaces headers set in request factory instead of merging them [SPR-15166] #19732
📔 Documentation
- CronSequenceGenerator examples in documentation are incorrect [SPR-15240] #19805