⭐ New Features
- Ensure multipart temp directories do not collide #26931
- SpringBeanAutowiringSupport should log at warn level when autowiring fails #26925
- spring-context-indexer doesn't support Java records #26909
- Ignore trailing slash in CorsConfiguration origin patterns #26892
- RSocketRequester disposal of underlying RSocketClient #26886
- Add PreFlightRequestWebFilter #26885
- Avoid memory leak when PropertyComparator is reused #26869
- Support MySQL safe updates mode in MySQLMaxValueIncrementer #26858
- HttpStatus.resolve allocates HttpStatus.values() once per invocation #26842
- InvalidPathException in log when running SpringBootTest with NIO Path property on Windows #26828
- Use String.startsWith() instead of String.substring() in PatternMatchUtils #26822
- Access to the cachedSessions in CachingConnectionFactory #26811
- Reduce log level in ExecutorConfigurationSupport.initialize #26810
- Avoid exceptions when evaluating validation hints #26787
🪲 Bug Fixes
- UriComponentsBuilder handles invalid port numbers correctly #26905
- Incorrect check in AbstractBrokerRegistration's constructor #26896
- DataClassRowMapper doesn't correctly convert generic fields #26881
CorsRegistration#combine
is a noop #26877- LinkedCaseInsensitiveMap#putIfAbsent does not honor the case where the key is associated with a null value #26868
- Provide control over fallback charset to use in WebClientResponseException #26866
@ModelAttribute(binding=false)
is not honored with WebFlux #26856- Fix Kotlin filter parameter bug in Router DSLs #26838
- AbstractListenerReadPublisher publishing onComplete signal before onNext during heavy load #26834
- MockMvc's MVC_RESULT_ATTRIBUTE lost with HandlerMappingIntrospector and RouterFunctions in use #26833
- webmvc.fn onError doesn't work with CompletableFuture #26831
- Daylight saving time issue in CronExpression #26830
- HandlerMappingIntrospector does not work with PathPattern backed HandlerMappings #26814
- Addition of fallback patterns to DateFormatter loses cause in Spring 5.3.5 #26804
- Support empty file uploads with HtmlUnit and MockMvc #26799
- Cache setup failure does not provide nested cause #25250
- Fix web parameters resolution when injected via constructor #25200
📔 Documentation
- Document feature to load
@ModelAttribute
through type conversion from a request value #26873 - Improve advice on response handling in an ExchangeFilterFunction #26819
- Remove leftover Javadoc from WebClient #26807
- Add information about changed behaviour for resolving
@AuthenticationPrincipal
annotation #26791 - Update Javadoc on CORS in spring-websocket #26753
- Add advice on Spring MVC path matching for 5.3 and above to the reference documentation #26750
🔨 Dependency Upgrades
- Upgrade to Kotlin 1.5.0 #26792
- Upgrade to Kotlin Serialization 1.2.0 #26887
- Upgrade to Reactor 2020.0.7 #26890
❤️ Contributors
We'd like to thank all the contributors who worked on this release!