⭐ New Features
- ForwardedHeaderFilter should provide option to "remove" forwarded headers without using them [SPR-15610] #20169
- Optimize DefaultUserDestinationResolver.resolveDestination() [SPR-15602] #20161
- Inefficient use of keySet operators in messaging classes [SPR-15553] #20112
- Increase log level in ExceptionWebSocketHandlerDecorator [SPR-15537] #20096
- UriComponentsBuilder's fromHttpRequest uses server port as host port when handling the Forwarded header [SPR-15504] #20063
- Also clear SerializableTypeWrapper when ResolvableType cache is cleared [SPR-15503] #20062
- Defer StringHttpMessageConverter Charset.availableCharsets() call [SPR-15502] #20061
- Allow for HttpOnly cookie result matcher [SPR-15488] #20048
- Add getTargetCache to TransactionAwareCacheDecorator [SPR-15479] #20039
- Optimize AntPathMatcher when checking for potential matches [SPR-15477] #20037
- Lazily initialize Environment in GenericFilterBean (aligned with HttpServletBean) [SPR-15469] #20029
- Honor
@Autowired
(required=false) at parameter level, as an alternative to java.util.Optional [SPR-15268] #19833
🪲 Bug Fixes
- AbstractMethodError when calling validated method of MethodValidationPostProcessor is using a
@Lazy
validator [SPR-15629] #20188 - Poor diagnostics when Jackson cannot deserialise an application/json payload due to a missing deserialiser [SPR-15582] #20141
- Consistently accept "taskExecutor" bean of type Executor (as stated in
@EnableAsync
's javadoc) [SPR-15566] #20125 - LocalValidatorFactoryBean does not support unwrap for native ValidatorFactory [SPR-15561] #20120
- Multipart range requests leave file handles open [SPR-15559] #20118
- o/s/mail/javamail mime.types has duplicate image/jpeg entries [SPR-15557] #20116
- ResourceUtils.extractArchiveURL fails to work under Tomcat 8.0.41 with unpackWARs=false [SPR-15556] #20115
- o/s/mail/javamail mime.types PNG mapped to image/x-png [SPR-15546] #20105
- DefaultSubscriptionRegistry should prevent duplicate subscription id in accessCache [SPR-15543] #20102
- WebJarsResourceResolver: multiple matches in case of multiple files with the same name in the same webjar [SPR-15526] #20085
- HandlerExecutionChain toString() may miss interceptors [SPR-15525] #20084
- "Not a setter" exception cannot be be thrown in Property.java [SPR-15507] #20066
- AbstractFlashMapManager.isFlashMapForRequest does not inspect forwarded request coherently [SPR-15505] #20064
- Deceptive error message in Spring Test ModelResultMatchers [SPR-15487] #20047
- Last modified check of Resource created from Tomcat war:file: URL fails with FileNotFoundException [SPR-15485] #20045
- AnnotationUtils.getValue() may hide relevant errors [SPR-15481] #20041