Releases: spring-projects/spring-framework
Releases Β· spring-projects/spring-framework
v6.1.13
β New Features
- Errors thrown from SmartLifeycle#stop results in (unnecessary) waiting for the shutdown timeout #33442
- Updates to resource handling for functional endpoints #33434
- Stop logging
result
inWebAsyncManager
#33406 - spring native not support method handler with kotlin default value #33384
π Bug Fixes
- BindingReflectionHintsRegistrar do not take into account the boxed type Boolean #33380
- Ensure use of specified status code on redirect with
Rendering
#33498 - Inconsistent handling of X-Forwarded-Prefix in servlet and reactive stack #33465
- ServerHttpObservationFilter does not register against new async operations #33451
- Revert removal of deprecated rawStatusCode methods #33440
- PathMatchingResourcePatternResolver no longer follows symlinks #33424
- Deadlock between SseEmitter and StandardServletAsyncWebRequest when clients disconnect #33421
- RestClient doesn't open a scope for the processing of the request #33397
- WebTestClient leaks when ParameterizedTypeReference is used #33389
π Documentation
- Document fixed rate scheduling with CRaC #33490
- Update information in SpEL Evaluation chapter in reference manual #33456
- Stop documenting use of
-debug
compiler flag in reference manual #33453 - Use discrete headings instead of titled blocks in reference manual #33447
- Fix example for
@ImportResource
in the reference manual #33446 - Fix a typo in the CDS documentation #33437
- Fix link to chapter introduction #33417
- Improve documentation on reading form data via Servlet request parameters vs
@RequestBody
#33409
π¨ Dependency Upgrades
- Upgrade to Kotlin 1.9.25 #33471
- Upgrade to Micrometer 1.12.10 #33518
- Upgrade to Objenesis 3.4 #33526
- Upgrade to Reactor 2023.0.10 #33519
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@dancer1325, @izeye, and @yfoel
v6.2.0-M7
β New Features
- Improve optional parameter checks for HTTP Interface argument #33339
- Two
@Bean
methods with the same bean name should consistently throw an exception #33330 - Support static headers for http interface clients #33309
- Add DatabaseClient bind variant for list of positioned parameters #33274
HandlerMethodValidator
should support simple Cross-Parameter constraints #33271- UserCredentialsConnectionFactoryAdapter should provide credentials to createContext #33270
- Support flexible multi-unit duration format in
@DurationFormat
#33262 - MockMvc should prepare a FilterRegistration when initializing filters #33252
- Add option to ignore bean registration with AOT #33243
- Support JAXBElement in Jaxb2RootElementHttpMessageConverter #33233
- MimeMessageHelper does not set filename on inline MimeBodyPart #33230
- Add handling for AsyncRequestNotUsableException to ResponseEntityExceptionHandler #33225
- Allow formatting of Collection values for
@RequestParam
with HTTP interface client #33220 - Support rendering stream of fragments #33194
- Allow resolving nested placeholders if value is not
String
butCharSequence
#32876 - Support multiple style of parsing/printing Durations #30396
- Restore support for Freemarker request parameters and taglibs now that it supports Jakarta #30186
- AOT/native support when registering beans with the Kotlin DSL #29555
- Offer a way for MockitoTestExecutionListener to enable strict stubbing #33318
- Provide access to all counters in case of BatchUpdateException with multiple batches #23867
- Low level cache failure for sync/reactive/future Cacheable get is not handled by CacheErrorHandler #21590
π Bug Fixes
- Programmatic NoUniqueBeanDefinitionException in CacheAspectSupport should match message structure #33305
- JdbcClient.MappedQuerySpec::single can return null #33300
- Registration of
DynamicPropertyRegistry
in a test context has broken native testing #33272 MapAccessor#canWrite
incorrectly returnstrue
for non-Map
target #33265- BeanDefinition processed by AOT does not keep fallback flag #33261
- ImportSelector#getExclusionFilter does not exclude matching candidates with import selector #27080
π Documentation
- Document that SpEL expressions using bean references are not compilable #33363
- Remove duplicated "the" in Javadoc #33308
- Update documentation for fragment rendering #33195
- Document ControllerAdviceBean as internal usage #32776
π¨ Dependency Upgrades
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@OlgaMaciaszek, @benelog, @deblockt, @doljae, @izeye, @quaff, and @zinzoddari
v6.1.12
β New Features
- Efficient handling of conditional HTTP requests #33372
- LocaleEditor cannot parse language tag with script like zh-Hans #33348
- Reinstate qualifier support for legacy JSR-330
@javax.inject.Named
annotation #33345 - SimpleAsyncTaskScheduler stops accepting new tasks when isShutdown #33336
π Bug Fixes
- Fix incorrect weak ETag validation #33374
- Avoid CacheAspectSupport#findInCaches falling through to the reactiveCachingHandler #33371
- ScheduledAnnotationReactiveSupport starts the observation before it is opened #33349
- RestClient observation flags error for UnknownContentTypeException twice #33347
- RestClient instrumentation unnecessarily calls stop on a closed observation #33346
SimpleEvaluationContext
does not enforce read-only semantics #33319- SpEL wraps primitive array in
Object[]
when invoking varargs method #33317 - SpEL no longer supports lists for varargs invocations #33315
- SpEL
Indexer
silently ignores failure to set property as index #33310 - AOT-generated code produces deprecation warnings when using a deprecated class for autowiring #33295
@Scheduled
method in test class not supported anymore #33286- AOT-generated code produces deprecation warnings when referencing a nested class of a deprecated class #33273
- Jaxb2XmlEncoder does not support JAXBElement subtypes #33258
- ShallowEtagHeaderFilter throws a NumberFormatException for responses bigger than 2Gb #33256
- RequestPredicates fail with UnsupportedOperationException with a custom servlet path #33251
- Missing observation for
@JmsListener
response messages #33221 ConversionService
cannot convert primitive array toObject[]
#33212- Spring coroutines AOP is not compatible with
@Cacheable
#33210 - PathMatchingResourcePatternResolver#convertClassLoaderURL drops URLStreamHandler in version 6.1.x #33199
- SpEL cannot invoke varargs
MethodHandle
function with a primitive array #33198 - Trim last allowed origin when parsing comma-delimited string #33181
- Multipart files not deleted after upload is finished with async request #33161
- JaxbContextContainer does not define the ClassLoader to use to retrieve the JAXBContext to use #33158
- Memory Leak in WebFlux application handling HTTP Multipart #33094
- Support invoking bridged suspending functions in
AopUtils
#33045
π Documentation
- Fix typo in the bean validation section of the reference manual #33354
- Fix syntax error in
RestClient
documentation #33350 - Add Kotlin example for expectAll() #33341
- Javadoc of ReactorResourceFactory#setConnectionProviderSupplier wrongly states it can be ignored #33338
- Improve EnableCaching & CachingConfigurer Javadoc #33288
- Code sample has wrong reference to configurePathMatching #33277
- Document that NoOpResponseErrorHandler is to be used with the RestTemplate #33276
- Stop referring to Oracle STRUCT and ARRAY as they are deprecated #33248
- Update links in reference manual #33245
π¨ Dependency Upgrades
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@GoncaloPT, @crusherd, @genuss, @kashike, @ngocnhan-tran1996, @olbinski, @pcvolkmer, @sheip9, @tafjwr, and @underbell
v6.0.23
β New Features
- Efficient handling of conditional HTTP requests #33379
π Bug Fixes
- Fix incorrect weak ETag validation #33376
SimpleEvaluationContext
does not enforce read-only semantics #33321ConversionService
cannot convert primitive array toObject[]
#33313- SpEL
Indexer
silently ignores failure to set property as index #33311 - Nested bean instance supplier invocation does not retain previous factory method #33185
- Mockito mock falsely initialized as CGLIB proxy with AspectJ aspect #33141
- "file:." cannot be resolved to
java.nio.file.Path
(and plain "." value resolves to classpath root) #33139 - Trace and Span IDs are no longer propagated RequestBodyAdvice beans #33128
- ConfigurationClassEnhancer does not use correct ClassLoader when called multiple times #33029
π Documentation
- Typo in Annotation-driven Listener Endpoints section of Spring Framework documentation #33054
- Container Extension Points section of Spring Framework documentation refers to the wrong property name #33038
- Incorrect constructor details in the javadoc for ApplicationContextEvent #33033
π¨ Dependency Upgrades
- Upgrade to Reactor 2022.0.22 #33324
v5.3.39
v5.3.38
β New Features
- Efficient handling of conditional HTTP requests #33378
π Bug Fixes
- Fix incorrect weak ETag validation #33377
SimpleEvaluationContext
does not enforce read-only semantics #33320ConversionService
cannot convert primitive array toObject[]
#33314- SpEL
Indexer
silently ignores failure to set property as index #33312 - Mockito mock falsely initialized as CGLIB proxy with AspectJ aspect #33142
- "file:." cannot be resolved to
java.nio.file.Path
(and plain "." value resolves to classpath root) #33140
π Documentation
- Typo in Annotation-driven Listener Endpoints section of Spring Framework documentation #33052
- Container Extension Points section of Spring Framework documentation refers to the wrong property name #33039
- Incorrect constructor details in the javadoc for ApplicationContextEvent #33034
π¨ Dependency Upgrades
- Upgrade to Reactor 2020.0.47 #33322
v6.2.0-M6
β New Features
- Initialize RequestPath on demand in AbstractServerHttpRequest #33227
- Add support for making MapAccessor read-only #33222
- DefaultPartHttpMessageReader should not instantiate Reactor Scheduler eagerly #33218
- Change MIME type mapping for JavaScript to
text/javascript
#33197 - Handle SimpleAsyncTaskExecutor in WebSocketMessageBrokerStats #33104
- Support way to extract
ConstraintViolation
fromHandlerMethodValidationException
#33025
π Bug Fixes
- AssertJ support for multipart does not set property content type on the request #33232
- MockMvc builders are not source and binary compatible with previous 6.x generations #33229
- __BeanFactoryRegistrations generated file can be too large with a BeanFactory with lots of bean definitions #33126
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
v6.2.0-M5
β New Features
- Harmonize handling of current factory method in SimpleInstantiationStrategy #33192
- Unwrap
InvocationTargetException
in SpEL'sFunctionReference
#33174 - Support rendering multiple fragments #33162
- Allow MessageHeaderAccessor to be created with existing headers #33153
- Generalize message conversion for HTTP message content in AssertJ support #33148
- Allow arbitrary packages to be scanned for Reflective usage #33132
- Support external methods referenced by fully-qualified name in
@TestBean
#33125 - Update
Content-Type
based onencoding
in MVCFreeMarkerView
#33119 - Introduce
SmartHttpMessageConverter
#33118 - Support property placeholders in
@Sql
script paths #33114 - Reject
ModelMap
argument types in WebFlux #33109 - Set
output_encoding
inFreeMarkerView
implementations #33106 - Allow encoding to be set with a
Charset
in FreeMarker support #33102 - Let custom
ObjectProvider
implementations declare a single method only #33070 - Add support for running assertions on resolved exception in MockMvcTester #33060
- Add dedicated support for printing the MvcResult in MockMvcTester #33059
- Provide a way to determine if a context is in the process of being closed #33058
- MockHttpServletRequestBuilder should merge URI from the parent if necessary #33057
- Fail fast if a
@Bean
method declares@Autowired
as well #33051 - Add dedicated async dispatch support for MockMvcTester #33040
- Add dedicated multipart support for MockMvcTester #33027
- spring-form JSP tags should escape HTML value based on response character encoding #33023
- SimpleClientHttpResponse throws IOException when response body is empty and status code is >= 400 #33020
MockHttpServletResponse
defaults to ISO-8859-1 for JSON while the rest of the framework defaults to UTF-8 #33019- Propagate context to message converters when streaming with Flux in Spring MVC #32813
- Resolve URI to baseUrl in RestClient #32679
- Constructor data binding support for List, Map and array arguments #32426
- Implement Eclipse Jetty core HTTP handler adapter #32097
- Add better control over generated files registration #31331
- Provide more declarative control over reflection hint registration #29194
- Replace
@Nonnull(when = When.MAYBE)
by@CheckForNull
in@Nullable
#27183 - Add JSON support to Protobuf codecs #25457
π Bug Fixes
- AntPathPatternMatcher hardcoded "/" separator in variables matching and comparator #33085
- AOT generates a raw type for a generic type with nested unresolved generics #33069
- Unwrap Kotlin inline value classes return values #33026
- Kotlin Serialization support does not take null-safety into account #33016
π Documentation
- Move Testing below other framework concerns in the reference documentation TOC #33083
- Move Servlet HTTP Message Conversion to its own section #33063
- Document AssertJ support for MockMvc #32454
π¨ Dependency Upgrades
- Upgrade to HtmlUnit 4.2.0 #33081
- Upgrade to Kotlin Coroutines 1.8.1 #33176
- Upgrade to Micrometer 1.14.0-M1 #33170
- Upgrade to Reactor 2024.0.0-M4 #33171
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
v6.1.11
β New Features
- Ensure varargs component type for
MethodHandle
is notnull
in SpEL'sReflectionHelper
#33193 - Confusing WebClient exception message in case of Reactor-Netty
PrematureCloseException
during response #33127 - Include the bean name in the exception when an invalid factoryBeanObjectType attribute is found #33117
- Use error handler for reactive cache aspect #33073
getTypeForFactoryMethod
should catchNoClassDefFoundError
#33075
π Bug Fixes
- SpEL cannot invoke varargs
MethodHandle
function with an array #33191 - SpEL cannot invoke varargs
MethodHandle
function with zero variable arguments #33190 - Nested bean instance supplier invocation does not retain previous factory method #33180
- DefaultErrorResponseBuilder does not implement headers(Consumer) #33156
- Fix adaptation of violations on Set method parameter #33150
- Web controller call with invalid body resulting in 500 instead of 400 when using kotlinx-serialization #33138
- "file:." cannot be resolved to
java.nio.file.Path
(and plain "." value resolves to classpath root) #33124 - Mockito mock falsely initialized as CGLIB proxy with AspectJ aspect #33113
- Fix ClassCastException from return value validation with proxy when adaptConstraintViolations=true #33105
- Spring coroutines AOP is not compatible with
@Transactional
#33095 - ReactorClientHttpConnector creates new HttpClient for every request #33093
- Trace and Span IDs are no longer propagated RequestBodyAdvice beans #33091
- Early
LocalContainerEntityManagerFactoryBean
initialization fails in case of null bean definition #33082 ReactorNettyClientRequest.convertException
should include original exception if cause isnull
#33080- SpEL incorrectly splits string arguments by comma for
Object...
varargs method #33013 - ProtobufMessageConverter fails to parse JSON payload if byte array is used #27408
π Documentation
- Harmonize phrasing in URI Encoding section #33166
- Document that
ModelMap
is not a supported argument type in WebFlux #33107 - Example in Method Injection section of Spring Framework documentation refers to wrong bean names #33096
- Resource writer doesn't consider subclasses of
InputStreamResource
for content length bypass #33089 - Improve documentation regarding encoding in FreeMarker support #33071
- Exception for validation failure in WebFlux does not match the documentation #33061
π¨ Dependency Upgrades
- Upgrade to Kotlin 1.9.24 #33177
- Upgrade to Kotlin Serialization 1.6.3 #33175
- Upgrade to Micrometer 1.12.8 #33168
- Upgrade to Reactor 2023.0.8 #33169
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@TAKETODAY, @hunhee98, @imvtsl, @snussbaumer, and @zizare
v6.1.10
β New Features
- Defensive
PersistenceExceptionTranslator
bean retrieval inPersistenceExceptionTranslationInterceptor
on shutdown #33067 - Support all "connection reset" exception phrases in
DisconnectedClientHelper
#33064
π Bug Fixes
- Duplicate observations recorded with RestClient #33068
- WebFlux validation requires Servlet API since Spring Framework 6.1.3 #33043
- No qualifying bean of type 'java.lang.String' in case of accidental
@Autowired
@Bean
method with@Value
parameter #33030 - ConfigurationClassEnhancer does not use correct ClassLoader when called multiple times #33024
π Documentation
- Typo in Annotation-driven Listener Endpoints section of Spring Framework documentation #33050
- Container Extension Points section of Spring Framework documentation refer to the wrong property name #33037
- Fix typo in comment #33036
- Incorrect constructor details in the javadoc for ApplicationContextEvent #33032
β€οΈ Contributors
Thank you to all the contributors who worked on this release: