v6.1.3
⭐ New Features
- Perform checks for bean validation constraints in HandlerMethod only when needed #32007
- Exclude URI query from remaining WebClient checkpoints #31992
- Avoid early getMostSpecificMethod resolution in CommonAnnotationBeanPostProcessor #31967
- Introduce processInjection()inCommonAnnotationBeanPostProcessor#31956
- Make maximum length of SpEL expressions in an ApplicationContextconfigurable #31952
- JdkClientHttpRequestmay block indefinitely #31911
- Allow Propagation.NOT\_SUPPORTEDwith@TransactionalEventListener#31907
- Review HibernateJpaVendorAdapter to align dialect to use for recent Hibernate versions #31896
- Improve method validation support for containers with constraints on container elements #31887
- Method validation is not triggered when constraints are applied to the elements of a List #31870
- Use standard String comparison in ExtendedBeanInfo.PropertyDescriptorComparator #31866
- Detect Jetty 12 "max length exceeded" message for MaxUploadSizeExceededException#31850
- Ensure that Observation is stopped and Scope is closed in doReceiveAndExecute() #31798
- Support the use of @Resourcein test classes in AOT mode #31733
- Add support for configuring sslContext in StandardWebSocketClient #30680
- Refine allocations for improved memory profile when creating a large amount of proxy instances #30499
- Check ResponseStatusException reason as MessageSource code for ProblemDetail #30300
- SpringValidatorAdapterfails in- getRejectedValueif- ValueExtractorused in property path to unwrap a container type #29043
- Add CORS support for Private Network Access #28546
- Introduce NoOpTaskScheduler for disabling @Scheduledtasks in test setups #28073
- MvcUriComponentsBuilder should resolve property placeholders in request mapping paths #26795
- Allow SockJsUrlInfo to be overridden in SockJsClient #25888
- Extending abstract class does not expose parameter annotations #25788
- DatabasePopulatorConfigUtils should only set a populator if matching scripts are defined #23405
- @annotationpointcut is not matched with complex hierarchy and generics against classes compiled by Eclipse [SPR-17310] #21843
- Allow registration of application event listeners in a functional way [SPR-16872] #21411
- Allow CronTrigger to resume from specified timestamp [SPR-14909] #19475
🐞 Bug Fixes
- Using a URI variable for port in WebClientcauses anIllegalStateException#32003
- [spring-tx] Unable to override prepareSynchronization of AbstractPlatformTransactionManager from v6.1.0 #32000
- RestClientResponseExceptionhandles- responseHeaderscase-sensitive #31978
- CronTrigger hard-codes default ZoneId instead of participating in scheduler-wide Clock setup #31948
- HandlerMappingIntrospector is throwing PatternSyntaxException for wildcards in the request URL #31937
- java.lang.NullPointerException with Scheduled tasks through DefaultScheduledTaskObservationConvention #31918
- HibernateJpaVendorAdapter refers to org.hibernate.dialect.Oracle12cDialect that does not exist in recent Hibernate versions #31892
- ClassNotFoundException: org.hibernate.dialect.MySQL57Dialect with Hibernate 6.4 #31889
- Inconsistent inclusion of base URL in WebClientURI template attribute since Spring WebFlux 6.1.2 #31882
- @Asyncdoes not support- Unit?return type #31881
- Web handlers don't support Kotlin extensions #31876
- DefaultDataBuffer fails to transform its content to a string #31873
- With XML configuration, setter selection can be random in case of overloaded setter methods (e.g. on SimpleClientHttpRequestFactory in 6.1) #31872
- Complete frame callback when opcode is not PONG #31869
- @Cacheabledoes not respect cache hit when empty Mono/Flux response is returned #31868
- Unable to use sync cache with reactivestreams #31861
- Spring Websocket - JettyWebsocketHandlerAdapter copyByteBuffer fills Buffer with zeros #31857
- NullPointerExceptionwith- @RequestMappingon Kotlin property accessors #31856
- Non-deterministic native image JSON hints invalidate Gradle build cache #31852
- DefaultServerRequestObservationConvention is silently used when multiple convention beans are defined #31864
- Significant increase in memory consumption StringDecoderwhen splitting input by delimiters. #31848
- Convert args to Kotlin value class in CoroutinesUtils #31846
- ForwardedHeaderFilter should reject invalid requests #31842
- NotReadablePropertyException due to mismatch between ConstraintViolationproperty path andBindingResulttarget inMethodValidationAdapter#31746
- Built-in method validation validates @RequestBodyparameter twice #31711
- Double error response handling on suspended methods #31541
- Spring AOP does not propagate arguments for dynamic prototype-scoped advice #28407
- Only log status in ServletRequestHandledEvent #27595
- MergedAnnotation swallows IllegalAccessException for attribute method #27182
- AOP pointcut erroneously matching ProceedingJoinPoint.proceedwhen called from within another advised bean #26068
📔 Documentation
- Document exception handling for HTTP Interface client with RestClientandRestTemplate#31991
- Update ContentRequestMatchers#multipartDataJavadoc #31988
- Update Spring Properties section of reference manual #31987
- Document Kotlin internalmodifier impact on@Bean#31985
- Add missing preposition in reference guide #31977
- Adapt Jackson2ObjectMapperBuilderdocumentation to mentionParameterNamesModuleregistration #31959
- Fix typo in kotlin.adoc #31958
- Fix references to "application/*+xml" in Javadoc #31951
- Update outdated elements in Kotlin reference documentation #31943
- Update autowired-qualifiers.adocto refer the-parametersJava compiler flag #31939
- Fix Kotlin example for simpler SELECT variant using IN #31932
- Fix usage of WebClientAdapter in reference documentation #31917
- With virtual threads enabled, separate fixed-delay tasks cannot run concurrently #31900
- Fix formatting in scheduling.adoc #31899
- Specify use of regexp Path Pattern in javadoc #31886
- Improve the documentation and discoverability of CoWebFilter#31877
- Add Javadoc for MockHttpServletResponse getContentLength method #31833
- Revisit JdbcClient/JdbcTemplate javadoc for operations that take a KeyHolder #31486
- Document that CGLIB cannot proxy package private methods declared in a superclass is in a different package #28973
- Doc: ConfigurationClassParser's property source composition requires distinct (Resource)PropertySources names #28886
- Provide guidelines in AspectJ documentation to avoid dumps #27650
- Document autowiring of ServletRequest and other scoped proxy beans provided by WebApplicationContext #26201
- Clarify assisted constructor injection through getBean call with provided arguments #24955
- Document behaviour of @Transactionalin reactive environments with non-reactive signatures #23277
- Thread-safety and visibility issues not documented [SPR-4307] #8986
🔨 Dependency Upgrades
- Early support for Java 23 #31929
- Upgrade to Kotlin 1.9.22 #31971
- Upgrade to Micrometer 1.12.2 #31996
- Upgrade to Reactor 2023.0.2 #31995
❤️ Contributors
Thank you to all the contributors who worked on this release:
@0x1306e6d, @Drezir, @FBibonne, @JuHyun419, @OlgaMaciaszek, @SuhasBk, @T45K, @Yaklede, @aaronrosser, @achhibi, @bohub12, @dodie, @dogglezz, @izeye, @janjouketjalsma, @kzander91, @leonchen83, @pri88yank, @quaff, @scordio, @slovenlyimp, and @wfouche