Spring Framework - v6.1.3


:star: 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() in CommonAnnotationBeanPostProcessor #31956
  • Make maximum length of SpEL expressions in an ApplicationContext configurable #31952
  • JdkClientHttpRequest may block indefinitely #31911
  • Allow Propagation.NOT\_SUPPORTED with @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 @Resource in 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
  • SpringValidatorAdapter fails in getRejectedValue if ValueExtractor used in property path to unwrap a container type #29043
  • Add CORS support for Private Network Access #28546
  • Introduce NoOpTaskScheduler for disabling @Scheduled tasks 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
  • @annotation pointcut 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

:lady_beetle: Bug Fixes

  • Using a URI variable for port in WebClient causes an IllegalStateException #32003
  • [spring-tx] Unable to override prepareSynchronization of AbstractPlatformTransactionManager from v6.1.0 #32000
  • RestClientResponseException handles responseHeaders case-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 WebClient URI template attribute since Spring WebFlux 6.1.2 #31882
  • @Async does 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
  • @Cacheable does 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
  • NullPointerException with @RequestMapping on 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 StringDecoder when 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 ConstraintViolation property path and BindingResult target in MethodValidationAdapter #31746
  • Built-in method validation validates @RequestBody parameter 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.proceed when called from within another advised bean #26068

:notebook_with_decorative_cover: Documentation

  • Document exception handling for HTTP Interface client with RestClient and RestTemplate #31991
  • Update ContentRequestMatchers#multipartData Javadoc #31988
  • Update Spring Properties section of reference manual #31987
  • Document Kotlin internal modifier impact on @Bean #31985
  • Add missing preposition in reference guide #31977
  • Adapt Jackson2ObjectMapperBuilder documentation to mention ParameterNamesModule registration #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.adoc to refer the -parameters Java 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 @Transactional in reactive environments with non-reactive signatures #23277
  • Thread-safety and visibility issues not documented [SPR-4307] #8986

:hammer: 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

:heart: 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


Details

date
Jan. 11, 2024, 9:48 a.m.
name
v6.1.3
type
Patch
👇
Register or login to:
  • 🔍View and search all Spring Framework releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google
or