⭐ New Features
- Add missing RestOperations extensions [SPR-16229] #20777
- Set Vary: Origin on CORS unauthorized response [SPR-16224] #20772
- SqlParameterSourceUtils.createBatch with Collection support [SPR-16215] #20763
- spring-jdbc : Improve memory allocations when substituting named parameters. [SPR-16170] #20718
- WebTestClient supports custom TLS certificate verification [SPR-16168] #20716
- Reduce access on headers for STOMP messaging [SPR-16165] #20713
- Make JpaVendorAdapters JTA-aware (in particular for Hibernate 5.1/5.2) [SPR-16162] #20710
- Support prefix-based Servlet path mapping in ServletHttpHandlerAdapter [SPR-16155] #20703
- Improve ReactorNettyTcpClient shutdown logic [SPR-16145] #20693
- ResourceLoader with local "file:foo/bar/file.file" reference does not return WritableResource [SPR-16140] #20688
- Add StatusAssertions.isForbidden [SPR-16129] #20677
- Allow to set cookies via WebFlux functional handlers [SPR-16121] #20669
- PathContainer-based implementation of extractPathWithinPattern [SPR-16120] #20668
- Sending form and multipart data with WebTestClient [SPR-16118] #20666
- Spring context indexer does not work with nested classes [SPR-16112] #20660
- STOMP SEND should not map to
@SubscribeMapping
methods [SPR-16109] #20657 - Provide read access to the scheduled tasks at runtime [SPR-15982] #20532
- WebFlux Should Communicate X509 Authentication [SPR-15964] #20516
🪲 Bug Fixes
- commons-logging LogFactory and String arguments [SPR-16226] #20774
- Nullability inconsistency in DataAccessUtils requiredSingleResult vs requiredUniqueResult [SPR-16225] #20773
- InMemoryWebSession.changeSessionId reports error if the session does not exist [SPR-16201] #20749
- Wrong byte code for compiled SpEL when JDK proxy method invocation is used [SPR-16191] #20739
- NPE in ErrorsMethodArgumentResolver [SPR-16187] #20735
- spring webflux: stack overflow when response data is greater then 16MB [SPR-16180] #20728
- NullPointer in DefaultRequestBodyUriSpec.cookies method [SPR-16178] #20726
- NumberFormatException caused by property paths from JSR-303 based validation with no index into a collection [SPR-16177] #20725
- AbstractMessageConverterMethodProcessor ignores HttpEntityMethodProcessor's Content-Type header [SPR-16172] #20720
- Printing of session with null attributes results in NullPointerException [SPR-16164] #20712
- CastClass exception (NullBean instead of 'null' value) when getting map of beans directly from ApplicationContext [SPR-16163] #20711
- bean(nameOfBean) doesn't work with Spring Framework 5.0.1 on AspectJ 1.8.12 [SPR-16161] #20709
- MockHttpServletResponse.getDateHeader fails with NPE for non-existing header [SPR-16160] #20708
@RequestAttribute
Mono<?> is not allowed for attributes that are of type Mono [SPR-16158] #20706- When using NamedParameterJdbcTemplate, NVARCHAR or NCLOB(4000 characters or less) columns are not properly populated since StatementCreatorUtils does setString for these types instead of setNString. [SPR-16154] #20702
- Wildcard JPA packages are not scanned [SPR-16152] #20700
- Early ApplicationContext close call may lead to ApplicationEventMulticaster/LifecycleProcessor access exception [SPR-16149] #20697
- ClassPathResource.createRelative is using wrong ClassPathResource constructor for the returned resource [SPR-16146] #20694
- AbstractDispatcherHandlerInitializer does not detect WebFilter beans [SPR-16144] #20692
- MockHttpServletRequest with Host: set builds wrong getRequestURL() [SPR-16138] #20686
- InterceptingHttpAccessor.setInterceptors should support immutable lists [SPR-16137] #20685
- AbstractRequestExpectationManager fails with "Expectations already declared" when ResponseCreator.createResponse throws an exception [SPR-16132] #20680
- Multipart form data can no longer be sent with syncBody in WebTestClient [SPR-16131] #20679
- Disable CORS credentials by default [SPR-16130] #20678
- AbstractMessageSource does not support null as default message anymore [SPR-16127] #20675
- Cookies are not available from an ExchangeResult [SPR-16124] #20672
- SpEL method invocation with varargs on proxy [SPR-16122] #20670
- KotlinReflectionParameterNameDiscoverer does not handle instance-extension methods properly [SPR-16119] #20667
- PathMatchingResourcePatternResolver returns duplicate resources when using classpath* prefix [SPR-16117] #20665
- BasicAuth interceptor does not accept empty username [SPR-16116] #20664
- Fix Reactive JsonView + HttpEntity handling [SPR-16098] #20647
- Avoid implicit autowiring with Kotlin secondary constructors [SPR-16022] #20571