Releases: spring-projects/spring-framework
Releases Β· spring-projects/spring-framework
v6.0.22
β New Features
- AnnotationUtils performance degrades with deep stacks #32922
π Bug Fixes
- Observation in ServerHttpObservationFilter is never stopped for asynchronous requests #32986
- AspectJ CTW aspects executed twice #32973
- SpEL compilation fails when indexing into a
Map
with a primitive #32912 - SpEL compilation fails when indexing into an array or list with an
Integer
#32910 - Application not starting with
@EnableTransactionManagement
(mode = AdviceMode.ASPECTJ) #32883
π Documentation
- Remove outdated copyright from index.adoc #32984
π¨ Dependency Upgrades
- Upgrade to Reactor 2022.0.20 #33008
v5.3.37
β New Features
- AnnotationUtils performance degrades with deep stacks #32923
π Bug Fixes
- AspectJ CTW aspects executed twice #32974
- SpEL compilation fails when indexing into a
Map
with a primitive #32911 - SpEL compilation fails when indexing into an array or list with an
Integer
#32909 - Application not starting with
@EnableTransactionManagement
(mode = AdviceMode.ASPECTJ) #32885
π¨ Dependency Upgrades
- Upgrade to Reactor 2020.0.45 #33010
v6.2.0-M3
β New Features
- Lazily register
DynamicValuesPropertySource
in the TestContext framework #32871 - Introduce getRequest and getResponse on MvcTestResult #32846
- Add support for qualifiers in test bean overriding and consider improving by-type matching #32822
- Support Content Negotiation and view rendering in ResponseEntityExceptionHandler #31936
π Bug Fixes
- Change default phase for STOMP message handling components to be ahead of Boot's WebServerStartStopLifecycle default phase #27519
v6.1.8
β New Features
- Avoid creation of SAXParserFactory for every read operation in Jaxb2Marshaller and co #32851
- Suppress deprecation warning for AOT-generated code that refers to a deprecated bean type #32850
π Bug Fixes
- Overridden aspect method runs twice #32865
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE\_TIME)
cannot convert UTC without milliseconds tojava.util.Date
#32856- Spring AOP fails against registered
@Configurable
aspect #32838 - MockHttpServletRequest should not use a shared reader when no content is available #32820
π Documentation
- Modernize Antora Build #32864
- Modernize Antora Build #32863
- Refine CDS documentation #32843
- Revisit validation documentation to better explain when method validation is invoked #32807
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
v6.0.21
β New Features
- Avoid creation of SAXParserFactory for every read operation in Jaxb2Marshaller and co #32855
π Bug Fixes
- Overridden aspect method runs twice #32867
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE\_TIME)
cannot convert UTC without milliseconds tojava.util.Date
#32859- MockHttpServletRequest should not use a shared reader when no content is available #32848
- Spring AOP fails against registered
@Configurable
aspect #32839
v5.3.36
v6.2.0-M2
β New Features
- Make it easier to register reflection hints on interface hierarchies #32824
- Support varargs invocations in SpEL for varargs array subtype in compiled expressions #32804
- Align StandaloneMockMvcBuilder with trailing slash defaults #32796
- Use lambda expressions consistently #32765
- Bean overriding in tests should use by-type semantic if no name is specified #32761
- Add
ServerRequest.pathVariableOrNull
Kotlin extension #32738 - Throw an exception for suspending factory methods #32719
- Introduce
ReflectiveIndexAccessor
convenience class in SpEL #32714 - Add
BodyInserters.fromValue(T, ParameterizedTypeReference<T>)
and related APIs #32713 - Rename AssertableMockMvc to MvcTester and review assertions structure #32712
- Introduce
generateCodeForArgument()
inCodeFlow
#32708 - Make
SpelNode
compilation aware #32707 - Add a
requiredBody()
extension toRestClient.ResponseSpec
#32703 - Add
IndexAccessor
support to SpEL'sSimpleEvaluationContext
#32702 - Support compilation of array and list indexing with
Integer
in SpEL #32694 - Avoid unnecessary compilation attempts in SpEL's
Indexer
#32677 - Adds support for qualifying columns with table. #32653
- Omit empty resource description in
DeprecatedBeanWarner
's log message #32647 - Introduce
getName()
in SpEL'sBeanReference
#32640 - Validate that
private
JUnit Jupiter lifecycle methods are not annotated with@Autowired
#32627 - Ensure removal of
Content-Type
header if bodyPublisher
is empty #32622 - Introduce
CompilableIndexAccessor
SPI in SpEL #32613 - AbstractJackson2Decoder doesn't support decoding NDJSON arrays into Flux #32579
- Handle DataBufferLimitException as HTTP 413 responses #32558
- Introduce URL parser based on algorithm provided in Living URL standard #32513
- JettyClientHttpRequestFactory should set request/response timeout #32330
- Remove Hibernate substitutions and deprecated properties usage #32314
- Register
DynamicPropertyRegistry
as a singleton bean in a test'sApplicationContext
#32271 - Allow for AbstractUrlHandlerMapping to add/remove handlers at runtime #32064
- Make it possible for Spring Security to align with Spring MVC without HandlerMappingIntrospector #31823
- Create Filter to handle URLs with trailing slashes #31366
- Add testing support for WebMvc.fn #30477
- Use URL and HTTP method in DefaultResponseErrorHandler #28958
- CacheAspectSupport initialization failure should throw dedicated exceptions, rather than IllegalStateException #22442
- Clear AspectJExpressionPointcut cache when it is no longer used #12334
π Bug Fixes
MediaTypeAssert
risk false negative withisNotEqual
assertion #32756IndexAccessor
cannot support customCollection
target type #32736- Custom
IndexAccessor
cannot supportString
index type #32706 - HttpHeaders should reject negative ContentLength values #32660
π Documentation
- Improve wording in Spring Framework Overview documentation #32829
- Clarify supported targets for annotations in the TestContext framework #32772
- Modernize the lazy-initialized beans refdoc section #32767
- Document SpEL
IndexAccessor
support in the reference manual #32735 - Use lowercase package name in code snippets #32734
- Fix class name typo in reference documentation #32664
- Introduce configuration code includes and tabs in the Integration section #32600
- Document bean override support in the TestContext framework in the reference manual #32490
π¨ Dependency Upgrades
- Upgrade to HtmlUnit 4.1.0 #32740
- Upgrade to Micrometer 1.13.0 #32811
- Upgrade to Reactor 2024.0.0-M2 #32785
- Upgrade to webjars-locator-lite 1.0.0 #32564
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Donghh0221, @GeorgePap-719, @LeMikaelF, @MichaelKunze, @NadChel, @SharadK10, @attermann, @awmeinema, @dukbong, @earlgrey02, @evan-mc, @jerzykrlk, @laterlaugh, @mysend12, @onjik, and @quaff
v6.1.7
β New Features
- ResponseEntity is not reliably closed with InputStreamResource #32802
- Accept ajc-compiled
@Aspect
classes for Spring AOP proxy usage #32793 - Failure to process a bean definition ahead-of-time with an instance supplier should provide more contextual information #32775
- Provide methods to unambiguously send form data with MockMvc #32757
- Introduce NoOp implementation for ResponseErrorHandler #32750
- Support varargs invocations in SpEL for varargs array subtype #32704
- StreamUtils.copyRange overreads source stream in some cases #32695
- Modify error message when timeout is less than TIMEOUT_DEFAULT #32635
- Jetty HttpConnections not closed with SSE on Jetty 12.0.7+ when clients close the connection #32629
- Prevent duplicate subscription ID's in destinationCache of DefaultSubscriptionRegistry #32625
- When retrieval of a LoadTimeWeaverAware bean fails the resulting exception message may not indicate why it was being created #32470
π Bug Fixes
- Do not send Cookie header in reactive JdkClientHttpRequest if no cookies added #32799
- Inconsistent use of cleaned URLs in PathMatchingResourcePatternResolver #32828
- DeferredQueryInvocationHandler fails to unwrap QuerySqmImpl class outside of transaction #32766
- BindingReflectionHintsRegistrar#registerReflectionHints can be invoked with a null type #32753
AnnotationConfigWebApplicationContext
should propagateApplicationStartup
toBeanFactory
#32747- Ignore non-String keys in
PropertiesPropertySource.getPropertyNames()
#32742 MergedAnnotations
search does not find container for repeatable annotation #32731- "multiple subscribers not supported" when using WebClient exchange #32727
- ConfigurationClassEnhancer should consistently trigger FastClass creation at build-time #32682
- HttpComponentsClientHttpRequestFactory does not set Content-Length: 0 #32678
- Wrong proxy generation order during AOT for classes with
ScopedProxyMode.TARGET\_CLASS
and advisors #32669 - Unhandled JMS listener exceptions are not propagated #32666
- beanFactory#getBean with arguments ignore them if an Instance supplier is defined #32657
- Incorrect AsyncRequestTimeoutException handling in ResponseEntityExceptionHandler #32644
- Include actual cause's message in various parsing exception messages #32636
- Configuration class with Bean factory method on an interface generates wrong target with AOT #32609
- RestClient observations are stopped before ResponseSpec calls #32575
- MvcUriComponentsBuilder.fromMethodName does not pick the annotated method transparently #32553
- Deadlock/Stall in ConcurrentWebSocketSessionDecorator with Undertow 2.3.10 #32445
- RSocket setup payload can cause Netty ByteBuf leak #32424
- WebFlux temporary file not always deleted with parallel uploads. #31217
π Documentation
- Replace RFC 7807 by RFC 9457 in documentation #32806
- Links to Framework and Servlet Javadoc from Framework's Kotlin API documentation are broken #32797
- Fix incorrect class reference syntax in Kotlin code sample #32733
- Improve documentation advising against use of HandlerInterceptor for security #32729
- Inconsistent behaviour on transactional async method #32709
- Document that getBean with arguments is not recommended with AOT #32690
- Provide an example of custom request URL with RestClient in the reference guide #32685
- Correct documentation on streaming with MockMvcWebTestClient #32687
- Document limitations of CGLIB proxy class generation in JPMS module setups #32671
- Update links to HttpOnly documentation at OWASP in
ResponseCookie
#32663 - Document that RestTemplate may not return a body for certain exceptions #32641
- Document that DataIntegrityViolationException can also be thrown on read-only queries #32631
- Update documentation to explain streaming vs collecting and error handling with
Flux<T>
return values #32630 - Revise "The IoC Container" section to be more relevant for modern Spring applications #32429
- XML bean definition with
factory-method
does not always determine correct target type #32091 - Document
@Order
behavior on types, bean methods, and config classes #30177 - Clarify recommendation on self-injection for legitimate use cases (e.g.
@Transactional
re-entrant calls) #28299
π¨ Dependency Upgrades
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@LeMikaelF, @Seungpang, @izeye, @m4tt30c91, @remeio, and @yhao3
v6.0.20
β New Features
- Accept ajc-compiled
@Aspect
classes for Spring AOP proxy usage #32817
π Bug Fixes
- Do not send Cookie header in reactive JdkClientHttpRequest if no cookies added #32831
- Incorrect AsyncRequestTimeoutException handling in ResponseEntityExceptionHandler #32808
- DeferredQueryInvocationHandler fails to unwrap QuerySqmImpl class outside of transaction #32769
MergedAnnotations
search does not find container for repeatable annotation #32752AnnotationConfigWebApplicationContext
should propagateApplicationStartup
toBeanFactory
#32748- Ignore non-String keys in
PropertiesPropertySource.getPropertyNames()
#32743 - "multiple subscribers not supported" when using WebClient exchange #32732
- Wrong proxy generation order during AOT for classes with
ScopedProxyMode.TARGET\_CLASS
and advisors #32701 - Deadlock/Stall in ConcurrentWebSocketSessionDecorator with Undertow 2.3.10 #32697
- ConfigurationClassEnhancer should consistently trigger FastClass creation at build-time #32683
- WebFlux temporary file not always deleted with parallel uploads. #32638
π Documentation
- Improve documentation advising against use of HandlerInterceptor for security #32809
- Links to Framework's Java API documentation from its Kotlin API documentation are broken #32801
- Correct documentation on streaming with MockMvcWebTestClient #32722
- Document that DataIntegrityViolationException can also be thrown on read-only queries #32686
- Update links to HttpOnly documentation at OWASP in
ResponseCookie
#32667
π¨ Dependency Upgrades
- Upgrade to Reactor 2022.0.19 #32787
v5.3.35
β New Features
- Accept ajc-compiled
@Aspect
classes for Spring AOP proxy usage #32818
π Bug Fixes
- DeferredQueryInvocationHandler fails to unwrap QuerySqmImpl class outside of transaction #32770
MergedAnnotations
search does not find container for repeatable annotation #32751AnnotationConfigWebApplicationContext
should propagateApplicationStartup
toBeanFactory
#32749- Ignore non-String keys in
PropertiesPropertySource.getPropertyNames()
#32744 - "multiple subscribers not supported" when using WebClient exchange #32728
- Deadlock/Stall in ConcurrentWebSocketSessionDecorator with Undertow 2.3.10 #32698
π Documentation
- Correct documentation on streaming with MockMvcWebTestClient #32723
- Update links to HttpOnly documentation at OWASP in
ResponseCookie
#32668
π¨ Dependency Upgrades
- Upgrade to Reactor 2020.0.44 #32788