spring-projects/spring-framework (org.springframework:spring-beans)
### [`v6.1.5`](https://togithub.com/spring-projects/spring-framework/compare/v6.1.4...v6.1.5)
[Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.1.4...v6.1.5)
### [`v6.1.4`](https://togithub.com/spring-projects/spring-framework/releases/tag/v6.1.4)
[Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.1.3...v6.1.4)
#### :star: New Features
- Add missing RequestPredicate variants in coRouter [#32256](https://togithub.com/spring-projects/spring-framework/issues/32256)
- Adapt ConcurrencyThrottleSupport to use ReentrantLock for better virtual thread support [#32251](https://togithub.com/spring-projects/spring-framework/issues/32251)
- Create optimized versions of request predicates [#32244](https://togithub.com/spring-projects/spring-framework/issues/32244)
- Include function name in `SpelMessage.INCORRECT\_NUMBER\_OF\_ARGUMENTS\_TO\_FUNCTION` [#32239](https://togithub.com/spring-projects/spring-framework/issues/32239)
- Add Coroutines support to `NonReactiveHandlerMethodPredicate` [#32227](https://togithub.com/spring-projects/spring-framework/issues/32227)
- RouterFunctionMapping does not implement MatchableHandlerMapping [#32221](https://togithub.com/spring-projects/spring-framework/issues/32221)
- Initialize (another) Map with correct size in RequestPredicates [#32215](https://togithub.com/spring-projects/spring-framework/pull/32215)
- Make SmartLifecycle `phase` value configurable in STOMP message handling components [#32205](https://togithub.com/spring-projects/spring-framework/issues/32205)
- Initialize Map with correct size in RequestPredicates [#32201](https://togithub.com/spring-projects/spring-framework/pull/32201)
- Let `BeanPropertyRowMapper` subclasses customize mapped names [#32199](https://togithub.com/spring-projects/spring-framework/issues/32199)
- Improve client and server handling of STOMP heartbeat failures [#32195](https://togithub.com/spring-projects/spring-framework/issues/32195)
- Optimize Map methods in ServletAttributesMap [#32189](https://togithub.com/spring-projects/spring-framework/pull/32189)
- Support binary streams with `JdbcClient` [#32161](https://togithub.com/spring-projects/spring-framework/issues/32161)
- Annotate core functional SPIs in SpEL with `@FunctionalInterface` [#32135](https://togithub.com/spring-projects/spring-framework/issues/32135)
- Cannot use `SimpleJdbcInsert` with catalog name [#32124](https://togithub.com/spring-projects/spring-framework/issues/32124)
- Refactor ReloadableResourceBundleMessageSource [#32118](https://togithub.com/spring-projects/spring-framework/pull/32118)
- Reuse `MapPropertySource` for `DynamicValuesPropertySource` implementation (as a template for custom variants) [#32110](https://togithub.com/spring-projects/spring-framework/issues/32110)
- Improve Spring AOP performance for methods without specific advice [#32104](https://togithub.com/spring-projects/spring-framework/issues/32104)
- Make it possible to configure any TaskExecutor through ChannelRegistration [#32081](https://togithub.com/spring-projects/spring-framework/issues/32081)
- Add support for JSON streams to Kotlin Serialization [#32074](https://togithub.com/spring-projects/spring-framework/pull/32074)
- Avoid reflecting to obtain `validationGroups` every time the call is made [#32068](https://togithub.com/spring-projects/spring-framework/issues/32068)
- Reject `@RequestMapping` and `@HttpExchange` declarations on the same element [#32065](https://togithub.com/spring-projects/spring-framework/issues/32065)
- Missing toString for ExponentialBackOff [#32061](https://togithub.com/spring-projects/spring-framework/issues/32061)
- Reject multiple `@HttpExchange` declarations on the same element [#32049](https://togithub.com/spring-projects/spring-framework/issues/32049)
- ClientAbortException from StreamingResponseBody can cause infinite loop of dispatches [#32042](https://togithub.com/spring-projects/spring-framework/issues/32042)
- Log warning if multiple `@PostMapping`, `@GetMapping`, etc. annotations are declared [#31962](https://togithub.com/spring-projects/spring-framework/issues/31962)
- Using types in `@SessionAttributes` is sometimes not reflected in the model [#30463](https://togithub.com/spring-projects/spring-framework/issues/30463)
- Improve read publisher cancel handling to avoid connections in CLOSE_WAIT state with WebSocket on Tomcat [#30393](https://togithub.com/spring-projects/spring-framework/issues/30393)
- Provide more control over JPA entities scanning [#27892](https://togithub.com/spring-projects/spring-framework/issues/27892)
- Provide and document a way to handle single-page application redirects [#27257](https://togithub.com/spring-projects/spring-framework/issues/27257)
- MockMvcClientHttpRequestFactory swallows ServletResponse.errorMessage [#26720](https://togithub.com/spring-projects/spring-framework/issues/26720)
#### :lady_beetle: Bug Fixes
- Cannot send Server-Sent Events without data using WebMvc.fn SseBuilder [#32270](https://togithub.com/spring-projects/spring-framework/issues/32270)
- Fix `pathExtension` null-safety in Kotlin DSLs [#32254](https://togithub.com/spring-projects/spring-framework/issues/32254)
- `SimpleEvaluationContext.Builder` is not `final` and has a `public` constructor [#32253](https://togithub.com/spring-projects/spring-framework/issues/32253)
- `@JsonDeserialize(builder = ...)` does not work in GraalVM native image [#32238](https://togithub.com/spring-projects/spring-framework/issues/32238)
- RestClientAdapter claims it supports request attributes when it does not [#32232](https://togithub.com/spring-projects/spring-framework/pull/32232)
- ThreadPoolTaskExecutor rejecting tasks as soon as the context has been closed can lead to exceptions during web app shutdown [#32226](https://togithub.com/spring-projects/spring-framework/issues/32226)
- Consistent parsing of user information in UriComponentsBuilder [#32211](https://togithub.com/spring-projects/spring-framework/issues/32211)
- "IllegalStateException: Cannot call sendError() after the response has been committed" when IOException is thrown during resolving method argument values on Tomcat >= 10.1.16 [#32206](https://togithub.com/spring-projects/spring-framework/issues/32206)
- No longer able to override the `toString()` in `HandlerMethod` from `6.1.3` [#32184](https://togithub.com/spring-projects/spring-framework/issues/32184)
- 6.1.3 regression: aspect not called with multiple inheritance [#32181](https://togithub.com/spring-projects/spring-framework/issues/32181)
- Unable to use baseUrl on builders created from RestTemplate [#32180](https://togithub.com/spring-projects/spring-framework/issues/32180)
- MessageDeliveryException on shutdown with open WebSocket connections [#32171](https://togithub.com/spring-projects/spring-framework/issues/32171)
- With XML configuration, setter selection can be random in case of overloaded setter methods (e.g. on SimpleClientHttpRequestFactory in 6.1.3 from convertForProperty method) [#32159](https://togithub.com/spring-projects/spring-framework/issues/32159)
- Cannot process AOT when spring-orm is on the classpath without JPA [#32155](https://togithub.com/spring-projects/spring-framework/issues/32155)
- SpEL's `Indexer.setArrayElement()` incorrectly requests conversion to wrapper instead of primitive [#32147](https://togithub.com/spring-projects/spring-framework/issues/32147)
- SpEL increment and decrement operators do not generate prefix AST representation [#32144](https://togithub.com/spring-projects/spring-framework/issues/32144)
- Validation of `PartEventHttpMessageReader#maxParts` is off by one [#32122](https://togithub.com/spring-projects/spring-framework/issues/32122)
- QualifierAnnotationAutowireCandidateResolver.checkQualifier does identity checks when comparing arrays used as qualifier fields [#32106](https://togithub.com/spring-projects/spring-framework/issues/32106)
- Guard against multiple body subscriptions in Jetty and JDK reactive responses [#32100](https://togithub.com/spring-projects/spring-framework/issues/32100)
- Parameter based cache keys on repository methods can't resolve after 6.1.2->6.1.3 [#32087](https://togithub.com/spring-projects/spring-framework/issues/32087)
- Exceptions thrown by custom error handlers are not recorded in RestTemplate observations [#32060](https://togithub.com/spring-projects/spring-framework/issues/32060)
- Static resources caching issues with ShallowEtagHeaderFilter and Jetty caching directives [#32039](https://togithub.com/spring-projects/spring-framework/issues/32039)
- `RestClient` calls interceptors from `RestTemplate` twice [#32038](https://togithub.com/spring-projects/spring-framework/issues/32038)
- `DefaultRestClientBuilder.defaultRequest(...)` doesn't do anything [#32028](https://togithub.com/spring-projects/spring-framework/issues/32028)
- Alias resolution error message in `SimpleAliasRegistry` is misleading [#32025](https://togithub.com/spring-projects/spring-framework/issues/32025)
- Destroy method not found in Native image for `ExecutorService` Bean type [#32006](https://togithub.com/spring-projects/spring-framework/issues/32006)
- `RequestPredicate` fails with WebFlux 6.1.2 [#31955](https://togithub.com/spring-projects/spring-framework/issues/31955)
- ChannelSendOperator.WriteBarrier race condition in request(long) method leads to response being dropped [#31865](https://togithub.com/spring-projects/spring-framework/issues/31865)
#### :notebook_with_decorative_cover: Documentation
- Fix Kotlin syntax errors in RestClient builder example in rest-clients.adoc [#32265](https://togithub.com/spring-projects/spring-framework/pull/32265)
- Use double dot in "META-INF/aop.xml" documentation [#32264](https://togithub.com/spring-projects/spring-framework/issues/32264)
- Document that functions are variables in SpEL EvaluationContexts [#32258](https://togithub.com/spring-projects/spring-framework/issues/32258)
- Add section on AOT best practices about registering beans programmatically [#32241](https://togithub.com/spring-projects/spring-framework/issues/32241)
- Add section on AOT best practices about registering singletons [#32240](https://togithub.com/spring-projects/spring-framework/issues/32240)
- Fixes syntax error in JdbcClient examples [#32236](https://togithub.com/spring-projects/spring-framework/pull/32236)
- Document `@RequestAttribute` in HTTP clients [#32231](https://togithub.com/spring-projects/spring-framework/pull/32231)
- Fix typo in beanvalidation.adoc [#32218](https://togithub.com/spring-projects/spring-framework/pull/32218)
- Variables definition fixed [#32216](https://togithub.com/spring-projects/spring-framework/pull/32216)
- Document safe navigation support for collection selection/projection in SpEL [#32208](https://togithub.com/spring-projects/spring-framework/issues/32208)
- Document usage of SpEL's power operator in the reference manual [#32187](https://togithub.com/spring-projects/spring-framework/issues/32187)
- Document support for overloading operators in SpEL [#32182](https://togithub.com/spring-projects/spring-framework/issues/32182)
- Update basics.adoc [#32145](https://togithub.com/spring-projects/spring-framework/pull/32145)
- Document `between` operator in SpEL [#32140](https://togithub.com/spring-projects/spring-framework/issues/32140)
- Update documentation for supported letters in variable names in SpEL [#32138](https://togithub.com/spring-projects/spring-framework/issues/32138)
- Document repeat and characer subtraction `String` operators in SpEL [#32137](https://togithub.com/spring-projects/spring-framework/issues/32137)
- Document increment and decrement operators in SpEL [#32136](https://togithub.com/spring-projects/spring-framework/issues/32136)
- Document cron-vs-quartz parsing convention for dayOfWeek part in CronExpression [#32128](https://togithub.com/spring-projects/spring-framework/issues/32128)
- Fix typo [#32111](https://togithub.com/spring-projects/spring-framework/pull/32111)
- Graceful shutdown does not cancel `@Scheduled` tasks [#32109](https://togithub.com/spring-projects/spring-framework/issues/32109)
- Fixes atlas-extension order [#32083](https://togithub.com/spring-projects/spring-framework/pull/32083)
- Spring MVC and WebFlux docs need to say method validation applies if any method parameter has constraint annotations [#32082](https://togithub.com/spring-projects/spring-framework/issues/32082)
- Add `@see PathPattern` to function router methods with a pattern parameter [#32045](https://togithub.com/spring-projects/spring-framework/issues/32045)
- Rename `class-data-sharing.html` to `cds.html` [#32044](https://togithub.com/spring-projects/spring-framework/issues/32044)
- Enable table striping by default in the reference manual [#32022](https://togithub.com/spring-projects/spring-framework/issues/32022)
- Document that Conditions can be ordered [#32019](https://togithub.com/spring-projects/spring-framework/issues/32019)
- Document how `@JvmName` could mitigate Kotlin `internal` modifier impact [#32010](https://togithub.com/spring-projects/spring-framework/pull/32010)
- Update docs on server side use of `@HttpExchange` to make it more clear when it is a good fit [#32008](https://togithub.com/spring-projects/spring-framework/pull/32008)
- Document safe navigation semantics within compound expressions in SpEL [#21827](https://togithub.com/spring-projects/spring-framework/issues/21827)
- Document limitation of SpEL regarding minimum values for numeric literals [#20779](https://togithub.com/spring-projects/spring-framework/issues/20779)
#### :hammer: Dependency Upgrades
- Upgrade to Micrometer 1.12.3 and Context Propagation 1.1.1 [#32277](https://togithub.com/spring-projects/spring-framework/issues/32277)
- Upgrade to Reactor 2023.0.3 [#32274](https://togithub.com/spring-projects/spring-framework/issues/32274)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@1515biubiubiu](https://togithub.com/1515biubiubiu), [@Akaame](https://togithub.com/Akaame), [@OlgaMaciaszek](https://togithub.com/OlgaMaciaszek), [@andreibastun](https://togithub.com/andreibastun), [@cirusthenter](https://togithub.com/cirusthenter), [@erichaagdev](https://togithub.com/erichaagdev), [@jee14](https://togithub.com/jee14), [@jmondo](https://togithub.com/jmondo), [@kilink](https://togithub.com/kilink), [@kzander91](https://togithub.com/kzander91), [@mnhock](https://togithub.com/mnhock), [@quaff](https://togithub.com/quaff), [@rotilho](https://togithub.com/rotilho), [@rwinch](https://togithub.com/rwinch), [@senocak](https://togithub.com/senocak), [@spencergibb](https://togithub.com/spencergibb), and [@wfouche](https://togithub.com/wfouche)
### [`v6.1.3`](https://togithub.com/spring-projects/spring-framework/releases/tag/v6.1.3)
[Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.1.2...v6.1.3)
#### :star: New Features
- Perform checks for bean validation constraints in HandlerMethod only when needed [#32007](https://togithub.com/spring-projects/spring-framework/issues/32007)
- Exclude URI query from remaining WebClient checkpoints [#31992](https://togithub.com/spring-projects/spring-framework/pull/31992)
- Avoid early getMostSpecificMethod resolution in CommonAnnotationBeanPostProcessor [#31967](https://togithub.com/spring-projects/spring-framework/issues/31967)
- Introduce `processInjection()` in `CommonAnnotationBeanPostProcessor` [#31956](https://togithub.com/spring-projects/spring-framework/issues/31956)
- Make maximum length of SpEL expressions in an `ApplicationContext` configurable [#31952](https://togithub.com/spring-projects/spring-framework/issues/31952)
- `JdkClientHttpRequest` may block indefinitely [#31911](https://togithub.com/spring-projects/spring-framework/issues/31911)
- Allow `Propagation.NOT\_SUPPORTED` with `@TransactionalEventListener` [#31907](https://togithub.com/spring-projects/spring-framework/issues/31907)
- Review HibernateJpaVendorAdapter to align dialect to use for recent Hibernate versions [#31896](https://togithub.com/spring-projects/spring-framework/issues/31896)
- Improve method validation support for containers with constraints on container elements [#31887](https://togithub.com/spring-projects/spring-framework/issues/31887)
- Method validation is not triggered when constraints are applied to the elements of a List [#31870](https://togithub.com/spring-projects/spring-framework/issues/31870)
- Use standard String comparison in ExtendedBeanInfo.PropertyDescriptorComparator [#31866](https://togithub.com/spring-projects/spring-framework/issues/31866)
- Detect Jetty 12 "max length exceeded" message for `MaxUploadSizeExceededException` [#31850](https://togithub.com/spring-projects/spring-framework/issues/31850)
- Ensure that Observation is stopped and Scope is closed in doReceiveAndExecute() [#31798](https://togithub.com/spring-projects/spring-framework/pull/31798)
- Support the use of `@Resource` in test classes in AOT mode [#31733](https://togithub.com/spring-projects/spring-framework/issues/31733)
- Add support for configuring sslContext in StandardWebSocketClient [#30680](https://togithub.com/spring-projects/spring-framework/issues/30680)
- Refine allocations for improved memory profile when creating a large amount of proxy instances [#30499](https://togithub.com/spring-projects/spring-framework/issues/30499)
- Check ResponseStatusException reason as MessageSource code for ProblemDetail [#30300](https://togithub.com/spring-projects/spring-framework/pull/30300)
- `SpringValidatorAdapter` fails in `getRejectedValue` if `ValueExtractor` used in property path to unwrap a container type [#29043](https://togithub.com/spring-projects/spring-framework/issues/29043)
- Add CORS support for Private Network Access [#28546](https://togithub.com/spring-projects/spring-framework/issues/28546)
- Introduce NoOpTaskScheduler for disabling `@Scheduled` tasks in test setups [#28073](https://togithub.com/spring-projects/spring-framework/issues/28073)
- MvcUriComponentsBuilder should resolve property placeholders in request mapping paths [#26795](https://togithub.com/spring-projects/spring-framework/issues/26795)
- Allow SockJsUrlInfo to be overridden in SockJsClient [#25888](https://togithub.com/spring-projects/spring-framework/issues/25888)
- Extending abstract class does not expose parameter annotations [#25788](https://togithub.com/spring-projects/spring-framework/issues/25788)
- DatabasePopulatorConfigUtils should only set a populator if matching scripts are defined [#23405](https://togithub.com/spring-projects/spring-framework/issues/23405)
- `@annotation` pointcut is not matched with complex hierarchy and generics against classes compiled by Eclipse \[SPR-17310] [#21843](https://togithub.com/spring-projects/spring-framework/issues/21843)
- Allow registration of application event listeners in a functional way \[SPR-16872] [#21411](https://togithub.com/spring-projects/spring-framework/issues/21411)
- Allow CronTrigger to resume from specified timestamp \[SPR-14909] [#19475](https://togithub.com/spring-projects/spring-framework/issues/19475)
#### :lady_beetle: Bug Fixes
- Using a URI variable for port in `WebClient` causes an `IllegalStateException` [#32003](https://togithub.com/spring-projects/spring-framework/issues/32003)
- \[spring-tx] Unable to override prepareSynchronization of AbstractPlatformTransactionManager from v6.1.0 [#32000](https://togithub.com/spring-projects/spring-framework/issues/32000)
- `RestClientResponseException` handles `responseHeaders` case-sensitive [#31978](https://togithub.com/spring-projects/spring-framework/issues/31978)
- CronTrigger hard-codes default ZoneId instead of participating in scheduler-wide Clock setup [#31948](https://togithub.com/spring-projects/spring-framework/issues/31948)
- HandlerMappingIntrospector is throwing PatternSyntaxException for wildcards in the request URL [#31937](https://togithub.com/spring-projects/spring-framework/issues/31937)
- java.lang.NullPointerException with Scheduled tasks through DefaultScheduledTaskObservationConvention [#31918](https://togithub.com/spring-projects/spring-framework/issues/31918)
- HibernateJpaVendorAdapter refers to org.hibernate.dialect.Oracle12cDialect that does not exist in recent Hibernate versions [#31892](https://togithub.com/spring-projects/spring-framework/issues/31892)
- ClassNotFoundException: org.hibernate.dialect.MySQL57Dialect with Hibernate 6.4 [#31889](https://togithub.com/spring-projects/spring-framework/issues/31889)
- Inconsistent inclusion of base URL in `WebClient` URI template attribute since Spring WebFlux 6.1.2 [#31882](https://togithub.com/spring-projects/spring-framework/issues/31882)
- `@Async` does not support `Unit?` return type [#31881](https://togithub.com/spring-projects/spring-framework/issues/31881)
- Web handlers don't support Kotlin extensions [#31876](https://togithub.com/spring-projects/spring-framework/issues/31876)
- DefaultDataBuffer fails to transform its content to a string [#31873](https://togithub.com/spring-projects/spring-framework/issues/31873)
- With XML configuration, setter selection can be random in case of overloaded setter methods (e.g. on SimpleClientHttpRequestFactory in 6.1) [#31872](https://togithub.com/spring-projects/spring-framework/issues/31872)
- Complete frame callback when opcode is not PONG [#31869](https://togithub.com/spring-projects/spring-framework/pull/31869)
- `@Cacheable` does not respect cache hit when empty Mono/Flux response is returned [#31868](https://togithub.com/spring-projects/spring-framework/issues/31868)
- Unable to use sync cache with reactivestreams [#31861](https://togithub.com/spring-projects/spring-framework/issues/31861)
- Spring Websocket - JettyWebsocketHandlerAdapter copyByteBuffer fills Buffer with zeros [#31857](https://togithub.com/spring-projects/spring-framework/issues/31857)
- `NullPointerException` with `@RequestMapping` on Kotlin property accessors [#31856](https://togithub.com/spring-projects/spring-framework/issues/31856)
- Non-deterministic native image JSON hints invalidate Gradle build cache [#31852](https://togithub.com/spring-projects/spring-framework/issues/31852)
- DefaultServerRequestObservationConvention is silently used when multiple convention beans are defined [#31864](https://togithub.com/spring-projects/spring-framework/issues/31864)
- Significant increase in memory consumption `StringDecoder` when splitting input by delimiters. [#31848](https://togithub.com/spring-projects/spring-framework/issues/31848)
- Convert args to Kotlin value class in CoroutinesUtils [#31846](https://togithub.com/spring-projects/spring-framework/pull/31846)
- ForwardedHeaderFilter should reject invalid requests [#31842](https://togithub.com/spring-projects/spring-framework/issues/31842)
- NotReadablePropertyException due to mismatch between `ConstraintViolation` property path and `BindingResult` target in `MethodValidationAdapter` [#31746](https://togithub.com/spring-projects/spring-framework/issues/31746)
- Built-in method validation validates `@RequestBody` parameter twice [#31711](https://togithub.com/spring-projects/spring-framework/issues/31711)
- Double error response handling on suspended methods [#31541](https://togithub.com/spring-projects/spring-framework/issues/31541)
- Spring AOP does not propagate arguments for dynamic prototype-scoped advice [#28407](https://togithub.com/spring-projects/spring-framework/issues/28407)
- Only log status in ServletRequestHandledEvent [#27595](https://togithub.com/spring-projects/spring-framework/issues/27595)
- MergedAnnotation swallows IllegalAccessException for attribute method [#27182](https://togithub.com/spring-projects/spring-framework/issues/27182)
- AOP pointcut erroneously matching `ProceedingJoinPoint.proceed` when called from within another advised bean [#26068](https://togithub.com/spring-projects/spring-framework/issues/26068)
#### :notebook_with_decorative_cover: Documentation
- Document exception handling for HTTP Interface client with `RestClient` and `RestTemplate` [#31991](https://togithub.com/spring-projects/spring-framework/pull/31991)
- Update `ContentRequestMatchers#multipartData` Javadoc [#31988](https://togithub.com/spring-projects/spring-framework/issues/31988)
- Update Spring Properties section of reference manual [#31987](https://togithub.com/spring-projects/spring-framework/issues/31987)
- Document Kotlin `internal` modifier impact on `@Bean` [#31985](https://togithub.com/spring-projects/spring-framework/issues/31985)
- Add missing preposition in reference guide [#31977](https://togithub.com/spring-projects/spring-framework/pull/31977)
- Adapt `Jackson2ObjectMapperBuilder` documentation to mention `ParameterNamesModule` registration [#31959](https://togithub.com/spring-projects/spring-framework/issues/31959)
- Fix typo in kotlin.adoc [#31958](https://togithub.com/spring-projects/spring-framework/pull/31958)
- Fix references to "application/\*+xml" in Javadoc [#31951](https://togithub.com/spring-projects/spring-framework/pull/31951)
- Update outdated elements in Kotlin reference documentation [#31943](https://togithub.com/spring-projects/spring-framework/issues/31943)
- Update `autowired-qualifiers.adoc` to refer the `-parameters` Java compiler flag [#31939](https://togithub.com/spring-projects/spring-framework/pull/31939)
- Fix Kotlin example for simpler SELECT variant using IN [#31932](https://togithub.com/spring-projects/spring-framework/pull/31932)
- Fix usage of WebClientAdapter in reference documentation [#31917](https://togithub.com/spring-projects/spring-framework/pull/31917)
- With virtual threads enabled, separate fixed-delay tasks cannot run concurrently [#31900](https://togithub.com/spring-projects/spring-framework/issues/31900)
- Fix formatting in scheduling.adoc [#31899](https://togithub.com/spring-projects/spring-framework/pull/31899)
- Specify use of regexp Path Pattern in javadoc [#31886](https://togithub.com/spring-projects/spring-framework/pull/31886)
- Improve the documentation and discoverability of `CoWebFilter` [#31877](https://togithub.com/spring-projects/spring-framework/issues/31877)
- Add Javadoc for MockHttpServletResponse getContentLength method [#31833](https://togithub.com/spring-projects/spring-framework/issues/31833)
- Revisit JdbcClient/JdbcTemplate javadoc for operations that take a KeyHolder [#31486](https://togithub.com/spring-projects/spring-framework/issues/31486)
- Document that CGLIB cannot proxy package private methods declared in a superclass is in a different package [#28973](https://togithub.com/spring-projects/spring-framework/issues/28973)
- Doc: ConfigurationClassParser's property source composition requires distinct (Resource)PropertySources names [#28886](https://togithub.com/spring-projects/spring-framework/issues/28886)
- Provide guidelines in AspectJ documentation to avoid dumps [#27650](https://togithub.com/spring-projects/spring-framework/issues/27650)
- Document autowiring of ServletRequest and other scoped proxy beans provided by WebApplicationContext [#26201](https://togithub.com/spring-projects/spring-framework/issues/26201)
- Clarify assisted constructor injection through getBean call with provided arguments [#24955](https://togithub.com/spring-projects/spring-framework/issues/24955)
- Document behaviour of `@Transactional` in reactive environments with non-reactive signatures [#23277](https://togithub.com/spring-projects/spring-framework/issues/23277)
- Thread-safety and visibility issues not documented \[SPR-4307] [#8986](https://togithub.com/spring-projects/spring-framework/issues/8986)
#### :hammer: Dependency Upgrades
- Early support for Java 23 [#31929](https://togithub.com/spring-projects/spring-framework/issues/31929)
- Upgrade to Kotlin 1.9.22 [#31971](https://togithub.com/spring-projects/spring-framework/pull/31971)
- Upgrade to Micrometer 1.12.2 [#31996](https://togithub.com/spring-projects/spring-framework/issues/31996)
- Upgrade to Reactor 2023.0.2 [#31995](https://togithub.com/spring-projects/spring-framework/issues/31995)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@0x1306e6d](https://togithub.com/0x1306e6d), [@Drezir](https://togithub.com/Drezir), [@FBibonne](https://togithub.com/FBibonne), [@JuHyun419](https://togithub.com/JuHyun419), [@OlgaMaciaszek](https://togithub.com/OlgaMaciaszek), [@SuhasBk](https://togithub.com/SuhasBk), [@T45K](https://togithub.com/T45K), [@Yaklede](https://togithub.com/Yaklede), [@aaronrosser](https://togithub.com/aaronrosser), [@achhibi](https://togithub.com/achhibi), [@bohub12](https://togithub.com/bohub12), [@dodie](https://togithub.com/dodie), [@dogglezz](https://togithub.com/dogglezz), [@izeye](https://togithub.com/izeye), [@janjouketjalsma](https://togithub.com/janjouketjalsma), [@kzander91](https://togithub.com/kzander91), [@leonchen83](https://togithub.com/leonchen83), [@pri88yank](https://togithub.com/pri88yank), [@quaff](https://togithub.com/quaff), [@scordio](https://togithub.com/scordio), [@slovenlyimp](https://togithub.com/slovenlyimp), and [@wfouche](https://togithub.com/wfouche)
### [`v6.1.2`](https://togithub.com/spring-projects/spring-framework/releases/tag/v6.1.2)
[Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.1.1...v6.1.2)
##### :star: New Features
- Optimize ContentCachingRequestWrapper allocation for known request size [#31834](https://togithub.com/spring-projects/spring-framework/issues/31834)
- Inherit parent context in `coRouter` DSL [#31831](https://togithub.com/spring-projects/spring-framework/issues/31831)
- Declare `isStatic` and `releaseTarget` as default methods on `TargetSource` [#31820](https://togithub.com/spring-projects/spring-framework/issues/31820)
- Delegation support for JDBC 4.3 ConnectionBuilder and ShardingKeyBuilder [#31795](https://togithub.com/spring-projects/spring-framework/issues/31795)
- Support for a read-only DataSource in LazyConnectionDataSourceProxy [#31785](https://togithub.com/spring-projects/spring-framework/issues/31785)
- Add `MySQLIdentityColumnMaxValueIncrementer` [#31784](https://togithub.com/spring-projects/spring-framework/pull/31784)
- Introduce overloaded `MockPart` constructor that accepts the `Content-Type` [#31757](https://togithub.com/spring-projects/spring-framework/pull/31757)
- Introduce `toString(Charset)` in `FastByteArrayOutputStream` [#31737](https://togithub.com/spring-projects/spring-framework/pull/31737)
- Avoid byte array copy in getContentAsString [#31731](https://togithub.com/spring-projects/spring-framework/pull/31731)
- Improve "active" metrics handling in WebClient observations [#31702](https://togithub.com/spring-projects/spring-framework/issues/31702)
- Make ResourceArrayPropertyEditor supports comma delimited location patterns [#31700](https://togithub.com/spring-projects/spring-framework/pull/31700)
- Consistently log exceptions from `TestExecutionListener`s at `WARN` level [#31688](https://togithub.com/spring-projects/spring-framework/issues/31688)
- Document need for `-parameters` flag in exception messages [#31675](https://togithub.com/spring-projects/spring-framework/issues/31675)
- Improve `@RegisterReflectionForBinding` for enums [#31570](https://togithub.com/spring-projects/spring-framework/issues/31570)
- Support direct shard database operation routing in Spring JDBC [#31506](https://togithub.com/spring-projects/spring-framework/pull/31506)
- Log test aborted/skipped exceptions at INFO level in the TestContext framework [#31479](https://togithub.com/spring-projects/spring-framework/issues/31479)
- Avoid double proxying for `@Resource` `@Lazy` fallback autowiring [#31447](https://togithub.com/spring-projects/spring-framework/issues/31447)
- Add support for tuning the code generation for bean property values [#31427](https://togithub.com/spring-projects/spring-framework/issues/31427)
- Avoid race condition in ConcurrentReferenceHashMap [#31008](https://togithub.com/spring-projects/spring-framework/issues/31008)
- Allow functional bean registration to set bean order (equivalent to `@Order`) [#30849](https://togithub.com/spring-projects/spring-framework/issues/30849)
- Allow AOT generated classes to be excluded from code analyzer tools [#30824](https://togithub.com/spring-projects/spring-framework/issues/30824)
- Error page does not utilize forwarded prefix [#30828](https://togithub.com/spring-projects/spring-framework/issues/30828)
- Fix `SimpleJdbcCall` named parameter binding for Sybase ASE [#30231](https://togithub.com/spring-projects/spring-framework/pull/30231)
- DefaultWebClient ignores baseUrl when setting URI_TEMPLATE_ATTRIBUTE [#30027](https://togithub.com/spring-projects/spring-framework/issues/30027)
- Avoid eager checkDefaultConnectionProperties call in LazyConnectionDataSourceProxy [#29931](https://togithub.com/spring-projects/spring-framework/issues/29931)
- Allow TransactionAwareDataSourceProxy to eagerly fetch the connection [#29423](https://togithub.com/spring-projects/spring-framework/pull/29423)
- Extract common value generator out of BeanDefinitionPropertyValueCodeGenerator [#28999](https://togithub.com/spring-projects/spring-framework/issues/28999)
- PostgresCallMetaDataProvider should detect current schema as indicated by the JDBC Connection [#28723](https://togithub.com/spring-projects/spring-framework/issues/28723)
- Implement setMaxTextMessageSize and setMaxBinaryMessageSize in JettyWebSocketSession [#28325](https://togithub.com/spring-projects/spring-framework/issues/28325)
- Optimize cache used in AutowiredAnnotationBeanPostProcessor [#28293](https://togithub.com/spring-projects/spring-framework/issues/28293)
- `@Async` aspect should clear cached executors when different BeanFactory set [#28201](https://togithub.com/spring-projects/spring-framework/pull/28201)
- Component scanning should be able to ignore encrypted classes with invalid class version [#27691](https://togithub.com/spring-projects/spring-framework/issues/27691)
- Property to control URL decoding in `ServletCookieValueMethodArgumentResolver` [#26989](https://togithub.com/spring-projects/spring-framework/issues/26989)
- Support `Predicate`- based mappedHandler config in `AbstractHandlerExceptionResolver` [#26772](https://togithub.com/spring-projects/spring-framework/issues/26772)
- `SimpleJdbcCall` with `namedBinding=true` for MS SQL Server [#26072](https://togithub.com/spring-projects/spring-framework/issues/26072)
- Improve default `setNull` performance on PostgreSQL and MS SQL Server (e.g. for `NamedParameterJdbcTemplate` batch updates) [#25679](https://togithub.com/spring-projects/spring-framework/issues/25679)
##### :lady_beetle: Bug Fixes
- `` unnecessarily requires explicit `arg-type` since 6.0 [#31826](https://togithub.com/spring-projects/spring-framework/issues/31826)
- Avoid nested constructor data binding if there are no request parameters [#31821](https://togithub.com/spring-projects/spring-framework/issues/31821)
- Custom Init or Destroy method from an interface cannot be invoked in a native image [#31819](https://togithub.com/spring-projects/spring-framework/issues/31819)
- Avoid potential refresh deadlock with AbstractApplicationContext#registerShutdownHook [#31811](https://togithub.com/spring-projects/spring-framework/issues/31811)
- Classes proxied by CGLIB produces NPE with coroutine async job on Springboot 3.2.0 [#31809](https://togithub.com/spring-projects/spring-framework/issues/31809)
- Fix Comparators.nullsLow and Comporators.nullsHigh behavior [#31808](https://togithub.com/spring-projects/spring-framework/pull/31808)
- `MergedAnnotations` finds duplicate annotations on method in multi-level interface hierarchy [#31803](https://togithub.com/spring-projects/spring-framework/issues/31803)
- Pickup coroutineContext saved by CoWebFilter in coRouter [#31793](https://togithub.com/spring-projects/spring-framework/issues/31793)
- Support for multiple CoWebFilters that change CoroutineContext [#31792](https://togithub.com/spring-projects/spring-framework/issues/31792)
- TestCompiler should not discover annotation processors on the classpath by default [#31791](https://togithub.com/spring-projects/spring-framework/issues/31791)
- `@Cacheable` key generator is called after invoking the cached method in case of a miss [#31789](https://togithub.com/spring-projects/spring-framework/issues/31789)
- Encountered `NotSerializableException` for `HttpComponentsHeadersAdapter` when serializing `HttpClientErrorException` [#31787](https://togithub.com/spring-projects/spring-framework/issues/31787)
- Exclude `Part` from nested constructor binding in WebFlux [#31778](https://togithub.com/spring-projects/spring-framework/pull/31778)
- Fix condition for "Too many elements" in `MimeTypeUtils.sortBySpecificity()` [#31769](https://togithub.com/spring-projects/spring-framework/pull/31769)
- `AnnotatedTypeMetadata`'s `getMergedRepeatableAnnotationAttributes()` method ignores `classValuesAsString` [#31768](https://togithub.com/spring-projects/spring-framework/issues/31768)
- SimpleAsyncTaskScheduler: task with fixed delay stops working after unhandled exception [#31749](https://togithub.com/spring-projects/spring-framework/issues/31749)
- Spring unable to decode aggregated JSON content [#31747](https://togithub.com/spring-projects/spring-framework/issues/31747)
- cannot resolve `ServerRequest::pathVariable` in nested `RequestPredicate` again [#31732](https://togithub.com/spring-projects/spring-framework/issues/31732)
- `@NotNull` on JPA entity not respected in schema generation [#31726](https://togithub.com/spring-projects/spring-framework/issues/31726)
- `@Cacheable` throws NullPointerException when encountering cached null value for empty Mono [#31722](https://togithub.com/spring-projects/spring-framework/issues/31722)
- RestClient ResponseSpec.body() throws an exception instead of returning `null` if no response body is available [#31719](https://togithub.com/spring-projects/spring-framework/issues/31719)
- UrlResource getFilename() suddenly returns null for certain paths [#31718](https://togithub.com/spring-projects/spring-framework/issues/31718)
- DisconnectedClientHelper is missing "AbortedException" [#31717](https://togithub.com/spring-projects/spring-framework/issues/31717)
- Constructor binding fails for `Duration` argument if request parameter is not present [#31709](https://togithub.com/spring-projects/spring-framework/issues/31709)
- TraceId is missing in WebFlux controller handlers [#31706](https://togithub.com/spring-projects/spring-framework/issues/31706)
- Wrong observation status tag when a Not Found in a webflux application [#31703](https://togithub.com/spring-projects/spring-framework/issues/31703)
- Correct conversion from Resource\[] with length 1 to Collection [#31699](https://togithub.com/spring-projects/spring-framework/pull/31699)
- `@ComponentScan` added directly and via a meta-annotation leads to multiple scanning [#31704](https://togithub.com/spring-projects/spring-framework/issues/31704)
- Unable to use kotlin value classes as function arguments to functions mapping web endpoints [#31698](https://togithub.com/spring-projects/spring-framework/issues/31698)
- `@DisabledInAotMode` does not work in native image [#31705](https://togithub.com/spring-projects/spring-framework/issues/31705)
- GenericTypeResolver does not resolve nested generics - causes issues with Jackson & Spring MVC [#31690](https://togithub.com/spring-projects/spring-framework/issues/31690)
- DefaultManagedTaskScheduler created manually now throws a NPE if the scheduled executor is not configured [#31751](https://togithub.com/spring-projects/spring-framework/issues/31751)
- Include Hibernate's `Query.scroll()` in `SharedEntityManagerCreator`'s `queryTerminatingMethods` set [#31682](https://togithub.com/spring-projects/spring-framework/issues/31682)
- TypeDescriptor does not check generics in `equals` method (for ConversionService caching) [#31672](https://togithub.com/spring-projects/spring-framework/issues/31672)
- DataBinder fails with "No primary or single unique constructor found for interface MultipartFile" [#31669](https://togithub.com/spring-projects/spring-framework/issues/31669)
- SpEL expression on a reloadable type can no longer be resolved [#31668](https://togithub.com/spring-projects/spring-framework/issues/31668)
- Programmatic registration of `RequestMappingInfo` leads to "IllegalArgumentException: Expected lookup path" [#31662](https://togithub.com/spring-projects/spring-framework/issues/31662)
- Current Observation.Context missing from WebClient request [#31609](https://togithub.com/spring-projects/spring-framework/issues/31609)
- Multipart messages with empty parts are not correctly parsed in WebFlux [#30953](https://togithub.com/spring-projects/spring-framework/issues/30953)
- Always fall back to original method if annotation pointcut used [#30534](https://togithub.com/spring-projects/spring-framework/pull/30534)
- PathEditor cannot handle absolute Windows paths with forward slashes [#29881](https://togithub.com/spring-projects/spring-framework/issues/29881)
- `@Resource` dependency injection fails with AOT/native [#29614](https://togithub.com/spring-projects/spring-framework/issues/29614)
- Reactor Netty can only get the first cookie value when multiple cookies with the same name exist [#28490](https://togithub.com/spring-projects/spring-framework/issues/28490)
- Slow SpEL performance due to method sorting in `ReflectiveMethodResolver` [#28377](https://togithub.com/spring-projects/spring-framework/issues/28377)
- Cache-busting does not work when lazy-initialization is enabled [#25488](https://togithub.com/spring-projects/spring-framework/issues/25488)
- Fail to register MBean with bean name containing invalid character [#23608](https://togithub.com/spring-projects/spring-framework/issues/23608)
- Use of `DatabaseMetadata#getProcedures` (and functions) should take search string escape into account [#22725](https://togithub.com/spring-projects/spring-framework/issues/22725)
##### :notebook_with_decorative_cover: Documentation
- Fix link text in WebFlux `@HttpExchange` section of reference docs [#31796](https://togithub.com/spring-projects/spring-framework/pull/31796)
- Improve documentation for custom exception requirements for RestClient [#31783](https://togithub.com/spring-projects/spring-framework/issues/31783)
- Java-based Container Configuration section contains duplicated Section Summary [#31777](https://togithub.com/spring-projects/spring-framework/issues/31777)
- SpEL Language Reference section contains duplicated Section Summary [#31776](https://togithub.com/spring-projects/spring-framework/issues/31776)
- Incorrect `#this` and `#root` variable examples in SpEL documentation [#31770](https://togithub.com/spring-projects/spring-framework/issues/31770)
- Document explicit `@ModelAttribute` is required for reflection hints inference [#31765](https://togithub.com/spring-projects/spring-framework/issues/31765)
- Fix Javadoc for `MockRestServiceServer.bindTo(RestClient.Builder)` [#31741](https://togithub.com/spring-projects/spring-framework/pull/31741)
- Document `-Dspring.context.exit=onRefresh` for Project CRaC testing purpose [#31724](https://togithub.com/spring-projects/spring-framework/issues/31724)
- Link to `spring.factories` used in the TestContext framework in the reference manual [#31723](https://togithub.com/spring-projects/spring-framework/pull/31723)
- Clarify that DI is a type of IoC [#31679](https://togithub.com/spring-projects/spring-framework/pull/31679)
- Polish GenericTypeResolver Javadoc [#31663](https://togithub.com/spring-projects/spring-framework/pull/31663)
- RestClient documentation improvements [#31659](https://togithub.com/spring-projects/spring-framework/pull/31659)
- Add Javadoc to MvcResult getResponse().getErrorMessage() [#31386](https://togithub.com/spring-projects/spring-framework/issues/31386)
- Review Default Profile section in the reference documentation [#30319](https://togithub.com/spring-projects/spring-framework/issues/30319)
- Documentation needs to be updated with instructions for STOMP Client [#28409](https://togithub.com/spring-projects/spring-framework/issues/28409)
- Document LazyConnectionDataSourceProxy setup for routing datasource to act on transaction definition read-only flag [#21415](https://togithub.com/spring-projects/spring-framework/issues/21415)
- Document LazyConnectionDataSourceProxy for IsolationLevelDataSourceRouter usage with DataSourceTransactionManager [#19688](https://togithub.com/spring-projects/spring-framework/issues/19688)
##### :hammer: Dependency Upgrades
- Upgrade to Kotlin 1.9.21 [#31667](https://togithub.com/spring-projects/spring-framework/issues/31667)
- Upgrade to Micrometer 1.12.1 [#31813](https://togithub.com/spring-projects/spring-framework/issues/31813)
- Upgrade to Reactor 2023.0.1 [#31814](https://togithub.com/spring-projects/spring-framework/issues/31814)
##### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@HeartPattern](https://togithub.com/HeartPattern), [@HyeongMokJeong](https://togithub.com/HyeongMokJeong), [@Johannes-Rost](https://togithub.com/Johannes-Rost), [@JuHyun419](https://togithub.com/JuHyun419), [@Nijco](https://togithub.com/Nijco), [@cdalexndr](https://togithub.com/cdalexndr), [@dogglezz](https://togithub.com/dogglezz), [@freesme](https://togithub.com/freesme), [@giuseppemilicia](https://togithub.com/giuseppemilicia), [@hpoettker](https://togithub.com/hpoettker), [@izeye](https://togithub.com/izeye), [@kilink](https://togithub.com/kilink), [@lugaramirez](https://togithub.com/lugaramirez), [@mathieu-amblard](https://togithub.com/mathieu-amblard), [@meedbek](https://togithub.com/meedbek), [@perlun](https://togithub.com/perlun), [@quaff](https://togithub.com/quaff), [@reda-alaoui](https://togithub.com/reda-alaoui), [@shin-mallang](https://togithub.com/shin-mallang), and [@tylerbertrand](https://togithub.com/tylerbertrand)
### [`v6.1.1`](https://togithub.com/spring-projects/spring-framework/releases/tag/v6.1.1)
[Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.1.0...v6.1.1)
#### :star: New Features
- Skip buffer allocation in `StreamUtils.copy(String)` [#31621](https://togithub.com/spring-projects/spring-framework/pull/31621)
- Caching and Event Listening support do not reuse internal delegates for their evaluation contexts [#31617](https://togithub.com/spring-projects/spring-framework/issues/31617)
- Java 17: resource.isReadable() with concurrency leaks large amounts of non-heap memory [#30955](https://togithub.com/spring-projects/spring-framework/issues/30955)
#### :lady_beetle: Bug Fixes
- Spring MVC: Unexpected bytes added to the HTTP response for kotlin.Unit return type in controller methods [#31648](https://togithub.com/spring-projects/spring-framework/issues/31648)
- Spring Data Redis Cache implementation is not compatible with `Cache.retrieve(key)` semantics [#31637](https://togithub.com/spring-projects/spring-framework/issues/31637)
- GeneratedFiles#addSourceFile should not allow to add a source in the default package [#31628](https://togithub.com/spring-projects/spring-framework/issues/31628)
- `` no longer works with a `business-interface` attribute [#31627](https://togithub.com/spring-projects/spring-framework/issues/31627)
- Non-blocking `@Cacheable` method does not support condition with `#result` [#31626](https://togithub.com/spring-projects/spring-framework/issues/31626)
- `PathResourceResolver.getResource()` does not log warning if `Resource#getURL()` throws exception [#31623](https://togithub.com/spring-projects/spring-framework/issues/31623)
- Jackson encoder releases resources in wrong order [#30493](https://togithub.com/spring-projects/spring-framework/issues/30493)
- WebSocketMessageBrokerStats has null stats for stompSubProtocolHandler since 5.3.2 [#26536](https://togithub.com/spring-projects/spring-framework/issues/26536)
#### :notebook_with_decorative_cover: Documentation
- Fix links related to Spring WebFlux [#31632](https://togithub.com/spring-projects/spring-framework/pull/31632)
- Extract recurring asciidoc links to attributes [#31619](https://togithub.com/spring-projects/spring-framework/pull/31619)
- Improve STOMP WebSocket documentation for input message buffer size [#31616](https://togithub.com/spring-projects/spring-framework/issues/31616)
- Document support for AppCDS [#31497](https://togithub.com/spring-projects/spring-framework/issues/31497)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@7fantasy7](https://togithub.com/7fantasy7), [@Star-ho](https://togithub.com/Star-ho), and [@quaff](https://togithub.com/quaff)
### [`v6.1.0`](https://togithub.com/spring-projects/spring-framework/releases/tag/v6.1.0)
[Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.0.18...v6.1.0)
#### :star: New Features
- When using Oracle, `JdbcClient.update(KeyHolder)` does not work without explicit key column names [#31607](https://togithub.com/spring-projects/spring-framework/issues/31607)
- Introduce way to convert ClientHttpResponse to desired type [#31597](https://togithub.com/spring-projects/spring-framework/issues/31597)
- Property-driven onRefresh exit for AppCDS purpose [#31595](https://togithub.com/spring-projects/spring-framework/issues/31595)
- No Micrometer traceId in JMS listener container errorHandler [#31559](https://togithub.com/spring-projects/spring-framework/issues/31559)
- Register Hibernate `@EmbeddableInstantiators` registered on JPA embeddables for reflection [#31534](https://togithub.com/spring-projects/spring-framework/issues/31534)
- Improve method validation support for errors on elements within a container [#31530](https://togithub.com/spring-projects/spring-framework/pull/31530)
- Support pattern matching for method names in `ControlFlowPointcut` [#31435](https://togithub.com/spring-projects/spring-framework/issues/31435)
- Review reachability metadata contributions after GraalVM changes [#31213](https://togithub.com/spring-projects/spring-framework/issues/31213)
- handleEmptyBody of RequestBodyAdvice should apply also when content-type is not set [#30522](https://togithub.com/spring-projects/spring-framework/issues/30522)
#### :lady_beetle: Bug Fixes
- Regression with `@EnableJpaAuditing` using Spring Boot 3.2-RC2 in native image [#31575](https://togithub.com/spring-projects/spring-framework/issues/31575)
- Retrieving the response body as a List of POJOs fails with `RestClient` but passes with `WebTestClient` [#31574](https://togithub.com/spring-projects/spring-framework/issues/31574)
- `ExecutorLifecycleDelegate` should call `ExecutorService.isTerminated()` in `?.isRunning()` [#31549](https://togithub.com/spring-projects/spring-framework/issues/31549)
- `RestTemplate` POST to endpoint using Digest Auth no longer works in 6.1 [#31516](https://togithub.com/spring-projects/spring-framework/issues/31516)
- Code generation for constructor arguments must cast `null` indexed argument value [#31508](https://togithub.com/spring-projects/spring-framework/issues/31508)
- \n in form model when using Jetty 12 client and multipart/form-data [#31361](https://togithub.com/spring-projects/spring-framework/issues/31361)
- Add status handler to recognize unknown status codes outside of 4xx/5? [#31202](https://togithub.com/spring-projects/spring-framework/pull/31202)
#### :notebook_with_decorative_cover: Documentation
- Document how to log `@Sql` scripts and statements [#31589](https://togithub.com/spring-projects/spring-framework/issues/31589)
- Link to KDoc API documentation from Javadoc overview [#31587](https://togithub.com/spring-projects/spring-framework/pull/31587)
- Fix link in Javadoc of ConfigurableMockMvcBuilder [#31542](https://togithub.com/spring-projects/spring-framework/pull/31542)
- Add note about `@[Enabled|Disabled]InNativeImage` in reference manual [#31438](https://togithub.com/spring-projects/spring-framework/issues/31438)
- Document `@DisabledInAotMode` in the reference manual [#31437](https://togithub.com/spring-projects/spring-framework/issues/31437)
- Document `@Sql` class-level execution phase support in the reference manual [#31377](https://togithub.com/spring-projects/spring-framework/issues/31377)
- Document that Micrometer's "error" tag should be preferred vs. legacy "exception" tag [#31514](https://togithub.com/spring-projects/spring-framework/issues/31514)
#### :hammer: Dependency Upgrades
- Upgrade to Context Propagation 1.1.0 [#31599](https://togithub.com/spring-projects/spring-framework/issues/31599)
- Upgrade to Kotlin 1.9.20 [#31539](https://togithub.com/spring-projects/spring-framework/issues/31539)
- Upgrade to Micrometer 1.12.0 [#31556](https://togithub.com/spring-projects/spring-framework/issues/31556)
- Upgrade to Reactor 2023.0.0 [#31557](https://togithub.com/spring-projects/spring-framework/issues/31557)
#### :heart: Contributors
Thank you to all the contributors who worked on this release:
[@Young-Zen](https://togithub.com/Young-Zen), [@duesenklipper](https://togithub.com/duesenklipper), [@izeye](https://togithub.com/izeye), [@k-seth](https://togithub.com/k-seth), and [@wakingrufus](https://togithub.com/wakingrufus)
### [`v6.0.18`](https://togithub.com/spring-projects/spring-framework/compare/v6.0.17...v6.0.18)
[Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.0.17...v6.0.18)
### [`v6.0.17`](https://togithub.com/spring-projects/spring
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
6.0.13
->6.1.5
6.0.13
->6.1.5
Release Notes
spring-projects/spring-framework (org.springframework:spring-beans)
### [`v6.1.5`](https://togithub.com/spring-projects/spring-framework/compare/v6.1.4...v6.1.5) [Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.1.4...v6.1.5) ### [`v6.1.4`](https://togithub.com/spring-projects/spring-framework/releases/tag/v6.1.4) [Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.1.3...v6.1.4) #### :star: New Features - Add missing RequestPredicate variants in coRouter [#32256](https://togithub.com/spring-projects/spring-framework/issues/32256) - Adapt ConcurrencyThrottleSupport to use ReentrantLock for better virtual thread support [#32251](https://togithub.com/spring-projects/spring-framework/issues/32251) - Create optimized versions of request predicates [#32244](https://togithub.com/spring-projects/spring-framework/issues/32244) - Include function name in `SpelMessage.INCORRECT\_NUMBER\_OF\_ARGUMENTS\_TO\_FUNCTION` [#32239](https://togithub.com/spring-projects/spring-framework/issues/32239) - Add Coroutines support to `NonReactiveHandlerMethodPredicate` [#32227](https://togithub.com/spring-projects/spring-framework/issues/32227) - RouterFunctionMapping does not implement MatchableHandlerMapping [#32221](https://togithub.com/spring-projects/spring-framework/issues/32221) - Initialize (another) Map with correct size in RequestPredicates [#32215](https://togithub.com/spring-projects/spring-framework/pull/32215) - Make SmartLifecycle `phase` value configurable in STOMP message handling components [#32205](https://togithub.com/spring-projects/spring-framework/issues/32205) - Initialize Map with correct size in RequestPredicates [#32201](https://togithub.com/spring-projects/spring-framework/pull/32201) - Let `BeanPropertyRowMapper` subclasses customize mapped names [#32199](https://togithub.com/spring-projects/spring-framework/issues/32199) - Improve client and server handling of STOMP heartbeat failures [#32195](https://togithub.com/spring-projects/spring-framework/issues/32195) - Optimize Map methods in ServletAttributesMap [#32189](https://togithub.com/spring-projects/spring-framework/pull/32189) - Support binary streams with `JdbcClient` [#32161](https://togithub.com/spring-projects/spring-framework/issues/32161) - Annotate core functional SPIs in SpEL with `@FunctionalInterface` [#32135](https://togithub.com/spring-projects/spring-framework/issues/32135) - Cannot use `SimpleJdbcInsert` with catalog name [#32124](https://togithub.com/spring-projects/spring-framework/issues/32124) - Refactor ReloadableResourceBundleMessageSource [#32118](https://togithub.com/spring-projects/spring-framework/pull/32118) - Reuse `MapPropertySource` for `DynamicValuesPropertySource` implementation (as a template for custom variants) [#32110](https://togithub.com/spring-projects/spring-framework/issues/32110) - Improve Spring AOP performance for methods without specific advice [#32104](https://togithub.com/spring-projects/spring-framework/issues/32104) - Make it possible to configure any TaskExecutor through ChannelRegistration [#32081](https://togithub.com/spring-projects/spring-framework/issues/32081) - Add support for JSON streams to Kotlin Serialization [#32074](https://togithub.com/spring-projects/spring-framework/pull/32074) - Avoid reflecting to obtain `validationGroups` every time the call is made [#32068](https://togithub.com/spring-projects/spring-framework/issues/32068) - Reject `@RequestMapping` and `@HttpExchange` declarations on the same element [#32065](https://togithub.com/spring-projects/spring-framework/issues/32065) - Missing toString for ExponentialBackOff [#32061](https://togithub.com/spring-projects/spring-framework/issues/32061) - Reject multiple `@HttpExchange` declarations on the same element [#32049](https://togithub.com/spring-projects/spring-framework/issues/32049) - ClientAbortException from StreamingResponseBody can cause infinite loop of dispatches [#32042](https://togithub.com/spring-projects/spring-framework/issues/32042) - Log warning if multiple `@PostMapping`, `@GetMapping`, etc. annotations are declared [#31962](https://togithub.com/spring-projects/spring-framework/issues/31962) - Using types in `@SessionAttributes` is sometimes not reflected in the model [#30463](https://togithub.com/spring-projects/spring-framework/issues/30463) - Improve read publisher cancel handling to avoid connections in CLOSE_WAIT state with WebSocket on Tomcat [#30393](https://togithub.com/spring-projects/spring-framework/issues/30393) - Provide more control over JPA entities scanning [#27892](https://togithub.com/spring-projects/spring-framework/issues/27892) - Provide and document a way to handle single-page application redirects [#27257](https://togithub.com/spring-projects/spring-framework/issues/27257) - MockMvcClientHttpRequestFactory swallows ServletResponse.errorMessage [#26720](https://togithub.com/spring-projects/spring-framework/issues/26720) #### :lady_beetle: Bug Fixes - Cannot send Server-Sent Events without data using WebMvc.fn SseBuilder [#32270](https://togithub.com/spring-projects/spring-framework/issues/32270) - Fix `pathExtension` null-safety in Kotlin DSLs [#32254](https://togithub.com/spring-projects/spring-framework/issues/32254) - `SimpleEvaluationContext.Builder` is not `final` and has a `public` constructor [#32253](https://togithub.com/spring-projects/spring-framework/issues/32253) - `@JsonDeserialize(builder = ...)` does not work in GraalVM native image [#32238](https://togithub.com/spring-projects/spring-framework/issues/32238) - RestClientAdapter claims it supports request attributes when it does not [#32232](https://togithub.com/spring-projects/spring-framework/pull/32232) - ThreadPoolTaskExecutor rejecting tasks as soon as the context has been closed can lead to exceptions during web app shutdown [#32226](https://togithub.com/spring-projects/spring-framework/issues/32226) - Consistent parsing of user information in UriComponentsBuilder [#32211](https://togithub.com/spring-projects/spring-framework/issues/32211) - "IllegalStateException: Cannot call sendError() after the response has been committed" when IOException is thrown during resolving method argument values on Tomcat >= 10.1.16 [#32206](https://togithub.com/spring-projects/spring-framework/issues/32206) - No longer able to override the `toString()` in `HandlerMethod` from `6.1.3` [#32184](https://togithub.com/spring-projects/spring-framework/issues/32184) - 6.1.3 regression: aspect not called with multiple inheritance [#32181](https://togithub.com/spring-projects/spring-framework/issues/32181) - Unable to use baseUrl on builders created from RestTemplate [#32180](https://togithub.com/spring-projects/spring-framework/issues/32180) - MessageDeliveryException on shutdown with open WebSocket connections [#32171](https://togithub.com/spring-projects/spring-framework/issues/32171) - With XML configuration, setter selection can be random in case of overloaded setter methods (e.g. on SimpleClientHttpRequestFactory in 6.1.3 from convertForProperty method) [#32159](https://togithub.com/spring-projects/spring-framework/issues/32159) - Cannot process AOT when spring-orm is on the classpath without JPA [#32155](https://togithub.com/spring-projects/spring-framework/issues/32155) - SpEL's `Indexer.setArrayElement()` incorrectly requests conversion to wrapper instead of primitive [#32147](https://togithub.com/spring-projects/spring-framework/issues/32147) - SpEL increment and decrement operators do not generate prefix AST representation [#32144](https://togithub.com/spring-projects/spring-framework/issues/32144) - Validation of `PartEventHttpMessageReader#maxParts` is off by one [#32122](https://togithub.com/spring-projects/spring-framework/issues/32122) - QualifierAnnotationAutowireCandidateResolver.checkQualifier does identity checks when comparing arrays used as qualifier fields [#32106](https://togithub.com/spring-projects/spring-framework/issues/32106) - Guard against multiple body subscriptions in Jetty and JDK reactive responses [#32100](https://togithub.com/spring-projects/spring-framework/issues/32100) - Parameter based cache keys on repository methods can't resolve after 6.1.2->6.1.3 [#32087](https://togithub.com/spring-projects/spring-framework/issues/32087) - Exceptions thrown by custom error handlers are not recorded in RestTemplate observations [#32060](https://togithub.com/spring-projects/spring-framework/issues/32060) - Static resources caching issues with ShallowEtagHeaderFilter and Jetty caching directives [#32039](https://togithub.com/spring-projects/spring-framework/issues/32039) - `RestClient` calls interceptors from `RestTemplate` twice [#32038](https://togithub.com/spring-projects/spring-framework/issues/32038) - `DefaultRestClientBuilder.defaultRequest(...)` doesn't do anything [#32028](https://togithub.com/spring-projects/spring-framework/issues/32028) - Alias resolution error message in `SimpleAliasRegistry` is misleading [#32025](https://togithub.com/spring-projects/spring-framework/issues/32025) - Destroy method not found in Native image for `ExecutorService` Bean type [#32006](https://togithub.com/spring-projects/spring-framework/issues/32006) - `RequestPredicate` fails with WebFlux 6.1.2 [#31955](https://togithub.com/spring-projects/spring-framework/issues/31955) - ChannelSendOperator.WriteBarrier race condition in request(long) method leads to response being dropped [#31865](https://togithub.com/spring-projects/spring-framework/issues/31865) #### :notebook_with_decorative_cover: Documentation - Fix Kotlin syntax errors in RestClient builder example in rest-clients.adoc [#32265](https://togithub.com/spring-projects/spring-framework/pull/32265) - Use double dot in "META-INF/aop.xml" documentation [#32264](https://togithub.com/spring-projects/spring-framework/issues/32264) - Document that functions are variables in SpEL EvaluationContexts [#32258](https://togithub.com/spring-projects/spring-framework/issues/32258) - Add section on AOT best practices about registering beans programmatically [#32241](https://togithub.com/spring-projects/spring-framework/issues/32241) - Add section on AOT best practices about registering singletons [#32240](https://togithub.com/spring-projects/spring-framework/issues/32240) - Fixes syntax error in JdbcClient examples [#32236](https://togithub.com/spring-projects/spring-framework/pull/32236) - Document `@RequestAttribute` in HTTP clients [#32231](https://togithub.com/spring-projects/spring-framework/pull/32231) - Fix typo in beanvalidation.adoc [#32218](https://togithub.com/spring-projects/spring-framework/pull/32218) - Variables definition fixed [#32216](https://togithub.com/spring-projects/spring-framework/pull/32216) - Document safe navigation support for collection selection/projection in SpEL [#32208](https://togithub.com/spring-projects/spring-framework/issues/32208) - Document usage of SpEL's power operator in the reference manual [#32187](https://togithub.com/spring-projects/spring-framework/issues/32187) - Document support for overloading operators in SpEL [#32182](https://togithub.com/spring-projects/spring-framework/issues/32182) - Update basics.adoc [#32145](https://togithub.com/spring-projects/spring-framework/pull/32145) - Document `between` operator in SpEL [#32140](https://togithub.com/spring-projects/spring-framework/issues/32140) - Update documentation for supported letters in variable names in SpEL [#32138](https://togithub.com/spring-projects/spring-framework/issues/32138) - Document repeat and characer subtraction `String` operators in SpEL [#32137](https://togithub.com/spring-projects/spring-framework/issues/32137) - Document increment and decrement operators in SpEL [#32136](https://togithub.com/spring-projects/spring-framework/issues/32136) - Document cron-vs-quartz parsing convention for dayOfWeek part in CronExpression [#32128](https://togithub.com/spring-projects/spring-framework/issues/32128) - Fix typo [#32111](https://togithub.com/spring-projects/spring-framework/pull/32111) - Graceful shutdown does not cancel `@Scheduled` tasks [#32109](https://togithub.com/spring-projects/spring-framework/issues/32109) - Fixes atlas-extension order [#32083](https://togithub.com/spring-projects/spring-framework/pull/32083) - Spring MVC and WebFlux docs need to say method validation applies if any method parameter has constraint annotations [#32082](https://togithub.com/spring-projects/spring-framework/issues/32082) - Add `@see PathPattern` to function router methods with a pattern parameter [#32045](https://togithub.com/spring-projects/spring-framework/issues/32045) - Rename `class-data-sharing.html` to `cds.html` [#32044](https://togithub.com/spring-projects/spring-framework/issues/32044) - Enable table striping by default in the reference manual [#32022](https://togithub.com/spring-projects/spring-framework/issues/32022) - Document that Conditions can be ordered [#32019](https://togithub.com/spring-projects/spring-framework/issues/32019) - Document how `@JvmName` could mitigate Kotlin `internal` modifier impact [#32010](https://togithub.com/spring-projects/spring-framework/pull/32010) - Update docs on server side use of `@HttpExchange` to make it more clear when it is a good fit [#32008](https://togithub.com/spring-projects/spring-framework/pull/32008) - Document safe navigation semantics within compound expressions in SpEL [#21827](https://togithub.com/spring-projects/spring-framework/issues/21827) - Document limitation of SpEL regarding minimum values for numeric literals [#20779](https://togithub.com/spring-projects/spring-framework/issues/20779) #### :hammer: Dependency Upgrades - Upgrade to Micrometer 1.12.3 and Context Propagation 1.1.1 [#32277](https://togithub.com/spring-projects/spring-framework/issues/32277) - Upgrade to Reactor 2023.0.3 [#32274](https://togithub.com/spring-projects/spring-framework/issues/32274) #### :heart: Contributors Thank you to all the contributors who worked on this release: [@1515biubiubiu](https://togithub.com/1515biubiubiu), [@Akaame](https://togithub.com/Akaame), [@OlgaMaciaszek](https://togithub.com/OlgaMaciaszek), [@andreibastun](https://togithub.com/andreibastun), [@cirusthenter](https://togithub.com/cirusthenter), [@erichaagdev](https://togithub.com/erichaagdev), [@jee14](https://togithub.com/jee14), [@jmondo](https://togithub.com/jmondo), [@kilink](https://togithub.com/kilink), [@kzander91](https://togithub.com/kzander91), [@mnhock](https://togithub.com/mnhock), [@quaff](https://togithub.com/quaff), [@rotilho](https://togithub.com/rotilho), [@rwinch](https://togithub.com/rwinch), [@senocak](https://togithub.com/senocak), [@spencergibb](https://togithub.com/spencergibb), and [@wfouche](https://togithub.com/wfouche) ### [`v6.1.3`](https://togithub.com/spring-projects/spring-framework/releases/tag/v6.1.3) [Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.1.2...v6.1.3) #### :star: New Features - Perform checks for bean validation constraints in HandlerMethod only when needed [#32007](https://togithub.com/spring-projects/spring-framework/issues/32007) - Exclude URI query from remaining WebClient checkpoints [#31992](https://togithub.com/spring-projects/spring-framework/pull/31992) - Avoid early getMostSpecificMethod resolution in CommonAnnotationBeanPostProcessor [#31967](https://togithub.com/spring-projects/spring-framework/issues/31967) - Introduce `processInjection()` in `CommonAnnotationBeanPostProcessor` [#31956](https://togithub.com/spring-projects/spring-framework/issues/31956) - Make maximum length of SpEL expressions in an `ApplicationContext` configurable [#31952](https://togithub.com/spring-projects/spring-framework/issues/31952) - `JdkClientHttpRequest` may block indefinitely [#31911](https://togithub.com/spring-projects/spring-framework/issues/31911) - Allow `Propagation.NOT\_SUPPORTED` with `@TransactionalEventListener` [#31907](https://togithub.com/spring-projects/spring-framework/issues/31907) - Review HibernateJpaVendorAdapter to align dialect to use for recent Hibernate versions [#31896](https://togithub.com/spring-projects/spring-framework/issues/31896) - Improve method validation support for containers with constraints on container elements [#31887](https://togithub.com/spring-projects/spring-framework/issues/31887) - Method validation is not triggered when constraints are applied to the elements of a List [#31870](https://togithub.com/spring-projects/spring-framework/issues/31870) - Use standard String comparison in ExtendedBeanInfo.PropertyDescriptorComparator [#31866](https://togithub.com/spring-projects/spring-framework/issues/31866) - Detect Jetty 12 "max length exceeded" message for `MaxUploadSizeExceededException` [#31850](https://togithub.com/spring-projects/spring-framework/issues/31850) - Ensure that Observation is stopped and Scope is closed in doReceiveAndExecute() [#31798](https://togithub.com/spring-projects/spring-framework/pull/31798) - Support the use of `@Resource` in test classes in AOT mode [#31733](https://togithub.com/spring-projects/spring-framework/issues/31733) - Add support for configuring sslContext in StandardWebSocketClient [#30680](https://togithub.com/spring-projects/spring-framework/issues/30680) - Refine allocations for improved memory profile when creating a large amount of proxy instances [#30499](https://togithub.com/spring-projects/spring-framework/issues/30499) - Check ResponseStatusException reason as MessageSource code for ProblemDetail [#30300](https://togithub.com/spring-projects/spring-framework/pull/30300) - `SpringValidatorAdapter` fails in `getRejectedValue` if `ValueExtractor` used in property path to unwrap a container type [#29043](https://togithub.com/spring-projects/spring-framework/issues/29043) - Add CORS support for Private Network Access [#28546](https://togithub.com/spring-projects/spring-framework/issues/28546) - Introduce NoOpTaskScheduler for disabling `@Scheduled` tasks in test setups [#28073](https://togithub.com/spring-projects/spring-framework/issues/28073) - MvcUriComponentsBuilder should resolve property placeholders in request mapping paths [#26795](https://togithub.com/spring-projects/spring-framework/issues/26795) - Allow SockJsUrlInfo to be overridden in SockJsClient [#25888](https://togithub.com/spring-projects/spring-framework/issues/25888) - Extending abstract class does not expose parameter annotations [#25788](https://togithub.com/spring-projects/spring-framework/issues/25788) - DatabasePopulatorConfigUtils should only set a populator if matching scripts are defined [#23405](https://togithub.com/spring-projects/spring-framework/issues/23405) - `@annotation` pointcut is not matched with complex hierarchy and generics against classes compiled by Eclipse \[SPR-17310] [#21843](https://togithub.com/spring-projects/spring-framework/issues/21843) - Allow registration of application event listeners in a functional way \[SPR-16872] [#21411](https://togithub.com/spring-projects/spring-framework/issues/21411) - Allow CronTrigger to resume from specified timestamp \[SPR-14909] [#19475](https://togithub.com/spring-projects/spring-framework/issues/19475) #### :lady_beetle: Bug Fixes - Using a URI variable for port in `WebClient` causes an `IllegalStateException` [#32003](https://togithub.com/spring-projects/spring-framework/issues/32003) - \[spring-tx] Unable to override prepareSynchronization of AbstractPlatformTransactionManager from v6.1.0 [#32000](https://togithub.com/spring-projects/spring-framework/issues/32000) - `RestClientResponseException` handles `responseHeaders` case-sensitive [#31978](https://togithub.com/spring-projects/spring-framework/issues/31978) - CronTrigger hard-codes default ZoneId instead of participating in scheduler-wide Clock setup [#31948](https://togithub.com/spring-projects/spring-framework/issues/31948) - HandlerMappingIntrospector is throwing PatternSyntaxException for wildcards in the request URL [#31937](https://togithub.com/spring-projects/spring-framework/issues/31937) - java.lang.NullPointerException with Scheduled tasks through DefaultScheduledTaskObservationConvention [#31918](https://togithub.com/spring-projects/spring-framework/issues/31918) - HibernateJpaVendorAdapter refers to org.hibernate.dialect.Oracle12cDialect that does not exist in recent Hibernate versions [#31892](https://togithub.com/spring-projects/spring-framework/issues/31892) - ClassNotFoundException: org.hibernate.dialect.MySQL57Dialect with Hibernate 6.4 [#31889](https://togithub.com/spring-projects/spring-framework/issues/31889) - Inconsistent inclusion of base URL in `WebClient` URI template attribute since Spring WebFlux 6.1.2 [#31882](https://togithub.com/spring-projects/spring-framework/issues/31882) - `@Async` does not support `Unit?` return type [#31881](https://togithub.com/spring-projects/spring-framework/issues/31881) - Web handlers don't support Kotlin extensions [#31876](https://togithub.com/spring-projects/spring-framework/issues/31876) - DefaultDataBuffer fails to transform its content to a string [#31873](https://togithub.com/spring-projects/spring-framework/issues/31873) - With XML configuration, setter selection can be random in case of overloaded setter methods (e.g. on SimpleClientHttpRequestFactory in 6.1) [#31872](https://togithub.com/spring-projects/spring-framework/issues/31872) - Complete frame callback when opcode is not PONG [#31869](https://togithub.com/spring-projects/spring-framework/pull/31869) - `@Cacheable` does not respect cache hit when empty Mono/Flux response is returned [#31868](https://togithub.com/spring-projects/spring-framework/issues/31868) - Unable to use sync cache with reactivestreams [#31861](https://togithub.com/spring-projects/spring-framework/issues/31861) - Spring Websocket - JettyWebsocketHandlerAdapter copyByteBuffer fills Buffer with zeros [#31857](https://togithub.com/spring-projects/spring-framework/issues/31857) - `NullPointerException` with `@RequestMapping` on Kotlin property accessors [#31856](https://togithub.com/spring-projects/spring-framework/issues/31856) - Non-deterministic native image JSON hints invalidate Gradle build cache [#31852](https://togithub.com/spring-projects/spring-framework/issues/31852) - DefaultServerRequestObservationConvention is silently used when multiple convention beans are defined [#31864](https://togithub.com/spring-projects/spring-framework/issues/31864) - Significant increase in memory consumption `StringDecoder` when splitting input by delimiters. [#31848](https://togithub.com/spring-projects/spring-framework/issues/31848) - Convert args to Kotlin value class in CoroutinesUtils [#31846](https://togithub.com/spring-projects/spring-framework/pull/31846) - ForwardedHeaderFilter should reject invalid requests [#31842](https://togithub.com/spring-projects/spring-framework/issues/31842) - NotReadablePropertyException due to mismatch between `ConstraintViolation` property path and `BindingResult` target in `MethodValidationAdapter` [#31746](https://togithub.com/spring-projects/spring-framework/issues/31746) - Built-in method validation validates `@RequestBody` parameter twice [#31711](https://togithub.com/spring-projects/spring-framework/issues/31711) - Double error response handling on suspended methods [#31541](https://togithub.com/spring-projects/spring-framework/issues/31541) - Spring AOP does not propagate arguments for dynamic prototype-scoped advice [#28407](https://togithub.com/spring-projects/spring-framework/issues/28407) - Only log status in ServletRequestHandledEvent [#27595](https://togithub.com/spring-projects/spring-framework/issues/27595) - MergedAnnotation swallows IllegalAccessException for attribute method [#27182](https://togithub.com/spring-projects/spring-framework/issues/27182) - AOP pointcut erroneously matching `ProceedingJoinPoint.proceed` when called from within another advised bean [#26068](https://togithub.com/spring-projects/spring-framework/issues/26068) #### :notebook_with_decorative_cover: Documentation - Document exception handling for HTTP Interface client with `RestClient` and `RestTemplate` [#31991](https://togithub.com/spring-projects/spring-framework/pull/31991) - Update `ContentRequestMatchers#multipartData` Javadoc [#31988](https://togithub.com/spring-projects/spring-framework/issues/31988) - Update Spring Properties section of reference manual [#31987](https://togithub.com/spring-projects/spring-framework/issues/31987) - Document Kotlin `internal` modifier impact on `@Bean` [#31985](https://togithub.com/spring-projects/spring-framework/issues/31985) - Add missing preposition in reference guide [#31977](https://togithub.com/spring-projects/spring-framework/pull/31977) - Adapt `Jackson2ObjectMapperBuilder` documentation to mention `ParameterNamesModule` registration [#31959](https://togithub.com/spring-projects/spring-framework/issues/31959) - Fix typo in kotlin.adoc [#31958](https://togithub.com/spring-projects/spring-framework/pull/31958) - Fix references to "application/\*+xml" in Javadoc [#31951](https://togithub.com/spring-projects/spring-framework/pull/31951) - Update outdated elements in Kotlin reference documentation [#31943](https://togithub.com/spring-projects/spring-framework/issues/31943) - Update `autowired-qualifiers.adoc` to refer the `-parameters` Java compiler flag [#31939](https://togithub.com/spring-projects/spring-framework/pull/31939) - Fix Kotlin example for simpler SELECT variant using IN [#31932](https://togithub.com/spring-projects/spring-framework/pull/31932) - Fix usage of WebClientAdapter in reference documentation [#31917](https://togithub.com/spring-projects/spring-framework/pull/31917) - With virtual threads enabled, separate fixed-delay tasks cannot run concurrently [#31900](https://togithub.com/spring-projects/spring-framework/issues/31900) - Fix formatting in scheduling.adoc [#31899](https://togithub.com/spring-projects/spring-framework/pull/31899) - Specify use of regexp Path Pattern in javadoc [#31886](https://togithub.com/spring-projects/spring-framework/pull/31886) - Improve the documentation and discoverability of `CoWebFilter` [#31877](https://togithub.com/spring-projects/spring-framework/issues/31877) - Add Javadoc for MockHttpServletResponse getContentLength method [#31833](https://togithub.com/spring-projects/spring-framework/issues/31833) - Revisit JdbcClient/JdbcTemplate javadoc for operations that take a KeyHolder [#31486](https://togithub.com/spring-projects/spring-framework/issues/31486) - Document that CGLIB cannot proxy package private methods declared in a superclass is in a different package [#28973](https://togithub.com/spring-projects/spring-framework/issues/28973) - Doc: ConfigurationClassParser's property source composition requires distinct (Resource)PropertySources names [#28886](https://togithub.com/spring-projects/spring-framework/issues/28886) - Provide guidelines in AspectJ documentation to avoid dumps [#27650](https://togithub.com/spring-projects/spring-framework/issues/27650) - Document autowiring of ServletRequest and other scoped proxy beans provided by WebApplicationContext [#26201](https://togithub.com/spring-projects/spring-framework/issues/26201) - Clarify assisted constructor injection through getBean call with provided arguments [#24955](https://togithub.com/spring-projects/spring-framework/issues/24955) - Document behaviour of `@Transactional` in reactive environments with non-reactive signatures [#23277](https://togithub.com/spring-projects/spring-framework/issues/23277) - Thread-safety and visibility issues not documented \[SPR-4307] [#8986](https://togithub.com/spring-projects/spring-framework/issues/8986) #### :hammer: Dependency Upgrades - Early support for Java 23 [#31929](https://togithub.com/spring-projects/spring-framework/issues/31929) - Upgrade to Kotlin 1.9.22 [#31971](https://togithub.com/spring-projects/spring-framework/pull/31971) - Upgrade to Micrometer 1.12.2 [#31996](https://togithub.com/spring-projects/spring-framework/issues/31996) - Upgrade to Reactor 2023.0.2 [#31995](https://togithub.com/spring-projects/spring-framework/issues/31995) #### :heart: Contributors Thank you to all the contributors who worked on this release: [@0x1306e6d](https://togithub.com/0x1306e6d), [@Drezir](https://togithub.com/Drezir), [@FBibonne](https://togithub.com/FBibonne), [@JuHyun419](https://togithub.com/JuHyun419), [@OlgaMaciaszek](https://togithub.com/OlgaMaciaszek), [@SuhasBk](https://togithub.com/SuhasBk), [@T45K](https://togithub.com/T45K), [@Yaklede](https://togithub.com/Yaklede), [@aaronrosser](https://togithub.com/aaronrosser), [@achhibi](https://togithub.com/achhibi), [@bohub12](https://togithub.com/bohub12), [@dodie](https://togithub.com/dodie), [@dogglezz](https://togithub.com/dogglezz), [@izeye](https://togithub.com/izeye), [@janjouketjalsma](https://togithub.com/janjouketjalsma), [@kzander91](https://togithub.com/kzander91), [@leonchen83](https://togithub.com/leonchen83), [@pri88yank](https://togithub.com/pri88yank), [@quaff](https://togithub.com/quaff), [@scordio](https://togithub.com/scordio), [@slovenlyimp](https://togithub.com/slovenlyimp), and [@wfouche](https://togithub.com/wfouche) ### [`v6.1.2`](https://togithub.com/spring-projects/spring-framework/releases/tag/v6.1.2) [Compare Source](https://togithub.com/spring-projects/spring-framework/compare/v6.1.1...v6.1.2) ##### :star: New Features - Optimize ContentCachingRequestWrapper allocation for known request size [#31834](https://togithub.com/spring-projects/spring-framework/issues/31834) - Inherit parent context in `coRouter` DSL [#31831](https://togithub.com/spring-projects/spring-framework/issues/31831) - Declare `isStatic` and `releaseTarget` as default methods on `TargetSource` [#31820](https://togithub.com/spring-projects/spring-framework/issues/31820) - Delegation support for JDBC 4.3 ConnectionBuilder and ShardingKeyBuilder [#31795](https://togithub.com/spring-projects/spring-framework/issues/31795) - Support for a read-only DataSource in LazyConnectionDataSourceProxy [#31785](https://togithub.com/spring-projects/spring-framework/issues/31785) - Add `MySQLIdentityColumnMaxValueIncrementer` [#31784](https://togithub.com/spring-projects/spring-framework/pull/31784) - Introduce overloaded `MockPart` constructor that accepts the `Content-Type` [#31757](https://togithub.com/spring-projects/spring-framework/pull/31757) - Introduce `toString(Charset)` in `FastByteArrayOutputStream` [#31737](https://togithub.com/spring-projects/spring-framework/pull/31737) - Avoid byte array copy in getContentAsString [#31731](https://togithub.com/spring-projects/spring-framework/pull/31731) - Improve "active" metrics handling in WebClient observations [#31702](https://togithub.com/spring-projects/spring-framework/issues/31702) - Make ResourceArrayPropertyEditor supports comma delimited location patterns [#31700](https://togithub.com/spring-projects/spring-framework/pull/31700) - Consistently log exceptions from `TestExecutionListener`s at `WARN` level [#31688](https://togithub.com/spring-projects/spring-framework/issues/31688) - Document need for `-parameters` flag in exception messages [#31675](https://togithub.com/spring-projects/spring-framework/issues/31675) - Improve `@RegisterReflectionForBinding` for enums [#31570](https://togithub.com/spring-projects/spring-framework/issues/31570) - Support direct shard database operation routing in Spring JDBC [#31506](https://togithub.com/spring-projects/spring-framework/pull/31506) - Log test aborted/skipped exceptions at INFO level in the TestContext framework [#31479](https://togithub.com/spring-projects/spring-framework/issues/31479) - Avoid double proxying for `@Resource` `@Lazy` fallback autowiring [#31447](https://togithub.com/spring-projects/spring-framework/issues/31447) - Add support for tuning the code generation for bean property values [#31427](https://togithub.com/spring-projects/spring-framework/issues/31427) - Avoid race condition in ConcurrentReferenceHashMap [#31008](https://togithub.com/spring-projects/spring-framework/issues/31008) - Allow functional bean registration to set bean order (equivalent to `@Order`) [#30849](https://togithub.com/spring-projects/spring-framework/issues/30849) - Allow AOT generated classes to be excluded from code analyzer tools [#30824](https://togithub.com/spring-projects/spring-framework/issues/30824) - Error page does not utilize forwarded prefix [#30828](https://togithub.com/spring-projects/spring-framework/issues/30828) - Fix `SimpleJdbcCall` named parameter binding for Sybase ASE [#30231](https://togithub.com/spring-projects/spring-framework/pull/30231) - DefaultWebClient ignores baseUrl when setting URI_TEMPLATE_ATTRIBUTE [#30027](https://togithub.com/spring-projects/spring-framework/issues/30027) - Avoid eager checkDefaultConnectionProperties call in LazyConnectionDataSourceProxy [#29931](https://togithub.com/spring-projects/spring-framework/issues/29931) - Allow TransactionAwareDataSourceProxy to eagerly fetch the connection [#29423](https://togithub.com/spring-projects/spring-framework/pull/29423) - Extract common value generator out of BeanDefinitionPropertyValueCodeGenerator [#28999](https://togithub.com/spring-projects/spring-framework/issues/28999) - PostgresCallMetaDataProvider should detect current schema as indicated by the JDBC Connection [#28723](https://togithub.com/spring-projects/spring-framework/issues/28723) - Implement setMaxTextMessageSize and setMaxBinaryMessageSize in JettyWebSocketSession [#28325](https://togithub.com/spring-projects/spring-framework/issues/28325) - Optimize cache used in AutowiredAnnotationBeanPostProcessor [#28293](https://togithub.com/spring-projects/spring-framework/issues/28293) - `@Async` aspect should clear cached executors when different BeanFactory set [#28201](https://togithub.com/spring-projects/spring-framework/pull/28201) - Component scanning should be able to ignore encrypted classes with invalid class version [#27691](https://togithub.com/spring-projects/spring-framework/issues/27691) - Property to control URL decoding in `ServletCookieValueMethodArgumentResolver` [#26989](https://togithub.com/spring-projects/spring-framework/issues/26989) - Support `Predicate`- based mappedHandler config in `AbstractHandlerExceptionResolver` [#26772](https://togithub.com/spring-projects/spring-framework/issues/26772) - `SimpleJdbcCall` with `namedBinding=true` for MS SQL Server [#26072](https://togithub.com/spring-projects/spring-framework/issues/26072) - Improve default `setNull` performance on PostgreSQL and MS SQL Server (e.g. for `NamedParameterJdbcTemplate` batch updates) [#25679](https://togithub.com/spring-projects/spring-framework/issues/25679) ##### :lady_beetle: Bug Fixes - `Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.