⭐ New Features
- Support response encoding in
selectandoptionsJSP form tags #35783 - Preserve Connection readOnly state for DataSource with defaultReadOnly configuration #35743
- Optimize resource URL resolution in SortedResourcesFactoryBean #35687
- Relax multiple segment matching constraints in PathPattern #35686
- Support wildcard path elements at the start of path patterns #35679
- Validating byte[]s may produce OutOfMemoryError #35675
- Update in FragmentsRendering to names of static methods #33974
🐞 Bug Fixes
ConcurrentReferenceHashMapmisses dedicatedcomputeIfAbsent,computeIfPresent,compute,mergeimplementations #35794- Avoid unnecessary bridge method resolution around getMostSpecificMethod #35780
- Fix multi-release JAR issue with VirtualThreadDelegate #35773
- ContentNegotiationManager not finding media type when request includes quality parameter #35754
- Race condition in BufferingClientHttpResponseWrapper.getBody() #35745
- Deprecate setConnectTimeout on HttpComponentsClientHttpRequestFactory #35748
- Fix PathMatchingResourcePatternResolver to handle absolute paths in JAR manifests #35732
- BeanDefinitionBuilder.addAutowiredProperty causes error during AOT processing #35731
- Improve
HttpServiceMethodsupport for Kotlin suspending functions returningFlow#35718 - Exception translation does not expose original
BatchUpdateExceptionanymore #35717 - Add hints for entities package-private methods #35711
- Fix concurrency permit leak causing deadlock in SimpleAsyncTaskExecutor #35708
- Remove
jibx-marshallerelement fromspring-oxm.xsd#35699 - NullPointerException When Handling 407 with JdkClientHttpConnector in WebClient #35692
- Method-based
Mapinjection fails against targetMapwith incomplete generics despite bean name or qualifier match #35690 - JUnit Jupiter
TEST_METHODExtensionContextScopeis not fully supported #35680 - Introduce
isAutowirableConstructor(Executable, PropertyProvider)inTestConstructorUtilsand deprecate existing variants #35676 - Reflection on java.sql.Types without runtime hints #35674
getPubliclyAccessibleMethodIfPossible()returns hidden static method #35667- RestClient hangs during upload with ReactorClientHttpRequestFactory #34707
📔 Documentation
- Correct formatting for
Monotype #35786 - Improve Java Bean Validation documentation for controller methods #35759
- Fix typo in
@NumberFormatJavadoc #35742 - Javadoc of AsyncConfigurer does not match runtime behavior #35736
- Document PathPattern behavior difference between */{name} and **/{*path} #35727
- Fix minor typo in RestClient documentation #35723
- Document test-method scoped
TestContextsemantics #35716 - Improve docs on AbstractStreamingClientHttpRequest for streaming vs buffering mode #35700
- Fix minor typo in JDBC Core Classes documentation #35684
- Fix typos #35656
- Improve spring-web filter documentation #30454
🔨 Dependency Upgrades
- Upgrade to ASM 9.9 plus lenient version check patch #35763
- Upgrade to Jetty 12.0.30 #35806
- Upgrade to Micrometer 1.14.13 #35810
- Upgrade to Reactor 2024.0.12 #35809
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Anxton, @Artur-, @HJC96, @MoadElfatihi, @NYgomets, @cbsingh1, @dmitrysulman, @ekcom, and @scordio