⭐ New Features
- WebClient's retrieve doesn't support custom HTTP status code #23367
- Can't wrap a ClientResponse with a custom status code in a builder #23366
- Javadoc missing on some public BeanDefinitionParserDelegate methods #23349
- In contrast to the Javadoc, ServerHttpRequest.Builder implementation does not override headers #23333
- Hibernate Query.list() is not included in SharedEntityManagerCreator.queryTerminatingMethods set, causing database connection not to be unreleased when query is proxied #23248
- Exception while WebClient onStatus handler is applied leads to ByteBuf leak #23230
- Error signal not propagated if writeFunction in ChannelSendOperator fails immediately #23175
- PathPatternParser does not allow any non-Java characters in variables like "-" #23101
🪲 Bug Fixes
- MethodParameter.equals is too coarse-grained for its use in HandlerMethodArgumentResolverComposite #23352
- Session.close() accidentally triggers creation of TransactionAwareDataSourceProxy Connection #23346
- Inconsistent use of getInterfaceMethodIfPossible for init method invocation #23323
- ResolvableType.forRawClass fails isAssignable against TypeVariable #23321
- ForwardedHeaderTransformer preserves escape sequences when applying X-Forwarded-Prefix #23305
- Accept header with trailing comma produces HTTP "406 Not Acceptable" #23241
- FlashMapManager throws StringIndexOutOfBoundsException for empty target URL path #23240
- SpEL ReflectivePropertyAccessor: ConversionService missing annotations on concrete implementations #23210
- Defensively register ReactiveReturnValueHandler for messaging methods #23207
- Raise log level when bean destruction fails #23200
- New OncePerRequestFilter behavior breaks RequestContextFilter on Jetty after sendError #23196
- SpringValidatorAdapter's ObjectError subclass is not Serializable #23181
- WebSocketHttpRequestHandler not writing headers after interceptor returns false #23179
- Reliable detection of user change from interceptor in StompSubProtocolHandler #23160
- Fixes issue with optional
@RequestPart
Mono argument being resolved to null instead of Mono.empty #23070
📔 Documentation
- Add Javadoc since for Jaxb2XmlDecoder(MimeType...) #23353
- Fix typo in webflux.adoc #23329
- Clarify use of MultipartBodyBuilder with RestTemplate #23295
- Improve documentation for
@Autowired
constructors #23263 - AbstractCacheManager.getCache() breaks contract of CacheManager.getCache() #23193
- PriorityOrdered Javadoc is misleading #23187
- Document that Ordered is not supported for
@ControllerAdvice
beans #23172 - Fix Jackson documentation broken links #23153
- Document how to specify Jackson JSON view serialization hints #23150
- HtmlUtils Javadoc refers to deprecated Apache Commons Lang #23122
- Docs for Spring MVC Test should cover async requests [SPR-15099] #19666
❤️ Contributors
We'd like to thank all the contributors who worked on this release!