⭐ New Features
- Add "forEachByte" variant to DataBuffer for efficient traversing #35623
- Nested transaction support via savepoints is broken in HSQLDB database [followup] #35618
- Improve exception handling in
ConfigurationClassBeanDefinitionReader
#35631 - Add MySQL/MariaDB to TableMetaDataProviderFactory for correct generated-keys support #35593
- Optimize state management in StompSubProtocolHandler #35591
- ServletServerHttpRequest.getRemoteAddress() may perform DNS lookup #35589
- Emit log message when multiple primary beans are detected #35550
- Duplicate key error is mapped to
TransientDataAccessException
bySQLStateSQLExceptionTranslator
forBatchUpdateException
#35547 - Remove redundant object allocation in cglib proxy method calls #35543
- Remove deprecation on
CandidateComponentsIndex
andCandidateComponentsIndexLoader
#35472 - Processing response with no Content-Length header and no body raises EOFException #35361
🐞 Bug Fixes
- DefaultListableBeanFactory::getBeanNamesForType does not always return all bean names #35634
- Consider defaultCandidate for scoped proxies #35627
- Release data buffer in AbstractCharSequenceDecoder even when String creation fails #35625
- PathMatchingResourcePatternResolver is not able to resolve file in SpringBoot Packaged JAR #35617
- Prevent NoClassDefFoundError when Jetty Reactive HttpClient is not available #35608
- Performance regression with Property Placeholder Resolution #35594
- Retain order of
produces
media types in@ExceptionHandler
#35587 - Nested transaction support via savepoints is broken in HSQLDB database #35564
- SpEL expression parser uses more CPU after upgrade to 6.2.9 #35556
- Thread race during FactoryBean instantiations starting with 6.2 due to lenient locks #35545
- Update parsed path handling in UrlHandlerFilter #35538
- ResourceHttpMessageWriter.write has unexpected error handling for invalid range requests (offset > content length) #35536
AbstractTestNGSpringContextTests
is not thread-safe regarding tracked exceptions #35528- UrlHandlerFilter breaks RequestDispatcher.forward() on Tomcat #35509
- AbstractMockHttpServletRequestBuilder#buildRequest is not idempotent #35493
- Add support for
JvmDefault
(default in Kotlin 2.2.20+) #35487 - InstanceSupplierCodeGenerator fails to detect deprecated type on package private factory method #35486
- Fix synchronization in ResponseBodyEmitter #35466
- useCaches option in PathMatchingResourcePatternResolver not applied in special case #35465
- Deadlock during context initialization due to EntityManager lock #35398
📔 Documentation
- Improve guidance in WebFlux on how to join inbound and outbound streams in
WebSocketHandler
#35572 - Fix
idref
example in reference manual #35560 - Fix URI Patterns docs in WebMVC and WebFlux Request Mapping #35551
- Allow event listener method declared with multiple event classes to take a single parameter that is assignable from all of those event classes #35506
- Improve Task Javadoc about Runnable wrapping #35394
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Entea, @IMurzich, @hosea, @maziyarbahramian, @mlichtblau, @nstdio, @reckart, and @reda-alaoui