⭐ New Features
- JettyCoreHttpHandlerAdapter compatibility with Jetty 12.0.17 #34561
- HandlerMethodValidationException.Visitor should support RequestBody with method parameter constraints #34549
- Allow
ContentResultMatchersDsl
matchers for supertypes of the checked type #34542 - Avoid
JarURLConnection
resource leak inAbstractFileResolvingResource.exists()
#34528 - Deprecate
rowsExpected
property ofSqlQuery
for removal #34526 - Supply
RuntimeHints
to anAotContextLoader
#34513 - Deprecate and remove use of UrlPathHelper in ServletWebSocketHandlerRegistry #34508
- Avoid unnecessary CGLIB processing on configuration classes #34486
- Inconsistent default class loaders in hint classes #34470
- Add missing converters to
DefaultRestClientBuilder
#34439 - Improve
BeanFactory
/ObjectProvider
to select the only one default candidate among non-default candidates #34432
🐞 Bug Fixes
MockCookie.parse()
fails to parse custom attribute with a value #34575BeanNotOfRequiredTypeException
if@Bean
factory method returnsnull
#34543- Regression in 6.2.3: No unique bean available for injection point with unresolvable generics #34541
- GenericConversionService cannot find a converter when converting to a Kotlin list of maps #34535
- isClientDisconnectedException needs to protect against null input #34533
- spring boot 3.4.3 + TimedAspect causes thread to hang #34522
- Missing Partitioned cookie support in reactive HTTP clients #34521
- DefaultManagedTaskExecutor throws java.lang.UnsupportedOperationException: isShutdown when rejecting tasks #34514
- FileSystemResource location does not end with slash for RouterFunction check #34509
- AbstractJackson2HttpMessageConverter not resolving generic type for request body since 6.2.3 #34504
- Request param handling in HttpRequestValues overrides existing URI variables with same name #34499
- MockHttpServletResponse - handle multiple values for Content-Language header #34488
- Endless loop with DataSourceUtils in spring-jdbc #34484
- MockHttpServletResponse#setHeader does not remove header for null values #34464
- ContentCachingResponseWrapper.setHeader does not handle null value properly. #34460
- Component scan fails to find bean candidates in the embedded jar file in META-INF/context.xml for embedded Tomcat application #34446
- 6.2.0 broke with "Could not register object [
@someHash
] under bean name 'blabla': there is already object [@sameHash
] bound" #34427 - 503 status code after completing SseEmitter in onTimeout #34426
NullPointerException
thrown whenConfigurationClassEnhancer
creates CGLIB proxy #34423- Add onRequest() hook for propagating request from downstream #34388
- Content-Type response header duplicated for failed StreamingResponseBody return value #34366
- Task scheduler configured by XML is not eligible for getting processed by all BeanPostProcessors #34015
📔 Documentation
- Fix typo in Spring MVC error responses documentation #34552
- Document that Spring Framework 6.x does not yet support JSpecify annotations #34551
- Fix web and webflux reference links #34517
- Document default KeyGenerator in spring-cache XSD #34468
- Fix broken antora task #34454
- Add
@since
tag for formField() and formFields in MockHttpServletRequestDsl #34448 - Improve Javadoc of ObjectProvider to clarify what is unique #34447
- rest-http-interface example code can't run #34443
- Add Javadoc since for HandlerMethod(HandlerMethod, Object, boolean) #34431
- Document wrapping behavior of
TestExecutionListener
callbacks #34422 - Cross reference annotation search APIs in Javadoc #34421
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@chenggangpro, @dark2momo, @dmitrysulman, @izeye, @ngocnhan-tran1996, @pankratz76, @quaff, @ryanprayogo, and @vpavic