Skip to content

Releases: spring-projects/spring-framework

v7.0.0-M1

23 Jan 14:23
Compare
Choose a tag to compare
v7.0.0-M1 Pre-release
Pre-release

⭐ New Features

  • Remove binary array name handling in ClassUtils.forName() #34291
  • Refine KotlinDetector usages and implementation #34275
  • Introduce a dedicated nullness API #34261
  • Consistent formatting of IPv6 host in forwarded header handling #34253
  • Update runtime hints predicates after GraalVM changes #34239
  • Allow multiple executions of ClientHttpRequestInterceptors #34169
  • Refine null-safety in the spring-webmvc module #34164
  • Refine null-safety in the spring-webflux module #34163
  • Refine null-safety in the spring-web module #34162
  • Refine null-safety in the spring-test module #34161
  • Refine null-safety in the spring-r2dbc module #34160
  • Refine null-safety in the spring-orm module #34159
  • Refine null-safety in the spring-messaging module #34158
  • Refine null-safety in the spring-jms module #34157
  • Refine null-safety in the spring-expression module #34156
  • Refine null-safety in the spring-aop module #34154
  • Refine null-safety in the spring-beans module #34152
  • Refine null-safety in the spring-context module #34151
  • Refine null-safety in the spring-core module #34150
  • Refine null-safety in the spring-jdbc module #34147
  • Specify generic type nullness #34140
  • Deprecate PathExtensionPredicate in functional web frameworks #34103
  • Deprecate mvc XML configuration namespace #34063
  • Remove path mapping options marked as deprecated for removal #34036
  • Deprecate HandlerMappingIntrospector #34019
  • Deprecate use of PathMatcher in web modules #34018
  • Upgrade to Tomcat 11.0 #33916
  • Revisit HttpHeaders implementing the MultiValueMap API #33913
  • Adopt new GraalVM reachability metadata format #33847
  • Built-in support for buffering in RestClient and RestTemplate #33785
  • Replace spring-jcl with regular Apache Commons Logging 1.3 #32459
  • Prepare AOT resource hints for GraalVM changes #31340
  • Deprecate use of several bean factory methods for the same bean in a configuration class #31073
  • Migrate to JSpecify annotations for nullability constraints #28797

πŸ“” Documentation

  • Fix depth for NullAway subsections in reference docs #34267
  • Provide guidelines for NullAway #34202
  • MediaType.ALL docstring display issue #34047
  • Remove documentation for Kotlin Script Templates #34029

πŸ”¨ Dependency Upgrades

  • General upgrade to Jakarta EE 11 APIs #34011
  • Raise JSONassert baseline to 2.0 #33799
  • Upgrade Servlet mock classes to Servlet 6.1 #33749
  • Upgrade ServletHttpHandlerAdapter to rely on Servlet 6.1 ByteBuffer support #33748
  • Upgrade to Hibernate ORM 7.0 (on JPA 3.2) #33750
  • Upgrade to Jetty 12.1.0.alpha1 for EE11 compatibility #34237
  • Upgrade to Kotlin 2.x and set a new related baseline #33629

❀️ Contributors

Thank you to all the contributors who worked on this release:

@izeye and @remeio

v6.2.2

16 Jan 08:51
Compare
Choose a tag to compare

⭐ New Features

  • Track only qualifier annotations in BeanOverrideHandler #34260
  • Remove @FunctionalInterface declaration from BeanOverrideProcessor #34259
  • Refine default filtered headers for web data binding #34182
  • Improve query params in uri KeyValue with HTTP interface client #34176
  • Refine location checks for PathResource #34167
  • Avoid virtual thread pinning in procedure calling #34133
  • Type-level constraint violation should result in ParameterErrors #34105
  • Avoid logger serialization behind shared EntityManager proxy #34084
  • Improve PathMatcher to PathPatternParser migration in mvc XML configuration #34064
  • Support @MockitoBean at the type level on test classes #33925

🐞 Bug Fixes

  • HttpHeadersAssert#doesNotContainsHeaders has a typo #34263
  • Deadlock with background EntityManager bootstrap due to locking in getSingletonFactoryBeanForTypeCheck #34247
  • ApplicationListener no longer invoked for double generic ApplicationEvent with 6.2.1 #34234
  • Nested transaction savepoints are broken in SQL Server #34233
  • Error handling override in DefaultResponseErrorHandler ignored after upgrade to 6.2.0 #34231
  • FileNotFoundException is thrown when using ConfigurationPropertiesScan with Spring Context 6.2.1 #34216
  • BindException declared but not handled by ExceptionHandler #34214
  • @TestBean factory method resolution is incorrect within class hierarchy #34204
  • Bean Override in superclass takes precedence over Bean Override in subclass #34194
  • Ensure AsyncListener#onError does not return until dispatch completes #34192
  • BeanNotOfRequiredTypeException during transaction qualifier resolution in 6.2.1 #34187
  • BeanCurrentlyInCreationException is thrown when multiple threads simultaneously try to create bean #34186
  • DataBinder throws IndexOutOfBoundsException when indexed parameter uses nonconsecutive indices #34145
  • NullPointerException is thrown if WebClient is used with Apache Httpclient and cookies are disabled #34132
  • Wrong parentId tracking in FlightRecorderApplicationStartup #34128
  • PathMatchingResourcePatternResolver is not able to resolve file in SpringBoot Packaged JAR #34126
  • Placeholder resolution no longer considers exact match before resolving the placeholder key #34124
  • DataBinder throws StringIndexOutOfBoundsException for indexed property without nested property path #34121
  • Dependency injection matches wildcards too leniently with 6.2.1 #34119
  • PathMatchingResourcePatternResolver throws FileNotFoundException caused by wrong cache path #34111
  • SpEL fails to invoke MethodHandle function reference accepting only varargs #34109
  • Generic with a base type is no longer resolved to its base if the generic is unresolved #34086
  • DataBinder throws StringIndexOutOfBoundsException for map property without nested property path #34043
  • Fix implicit variable resolution in JSP EvalTag #33945

πŸ“” Documentation

  • Fix inaccuracy in RequestHeaderArgumentResolver Javadoc #34230
  • Document that http.client.requests measure the entire HTTP exchange #34201
  • Misuse of em dash in "Basic Concept" section #34165
  • Fix typo in link #34149
  • Broken syntax in xml sample of "Reference to Other Beans" section #34148
  • Fix minor typo in reference documentation for Kotlin annotations #34134
  • Clarify documentation for the default uri client request observation metric #34116
  • Fix broken links in the web reference documentation #34115
  • Bean creation lazily ignores annotations like @EventListener #34057

πŸ”¨ Dependency Upgrades

  • Upgrade to Micrometer 1.14.3 #34251
  • Upgrade to Reactor 2024.0.2 #34252

❀️ Contributors

Thank you to all the contributors who worked on this release:

@Mattias-Sehlstedt, @Spanching, @brendenehlers, @izeye, @luozongle01, @micopiira, @ngocnhan-tran1996, @quaff, @rPraml, @remeio, and @scordio

v6.2.1

12 Dec 09:50
Compare
Choose a tag to compare

⭐ New Features

  • Implement toString() in TestBeanOverrideHandler #34072
  • Log alias removal in DefaultListableBeanFactory #34070
  • Log warning when one Bean Override overrides another Bean Override #34056
  • Introduce "unsafeAllocated" flag in TypeHint #34055
  • Cannot assert status reason phrase with MockMvcTester #34016
  • Improve toString for reactive ScheduledTask #34010
  • Optimize sending requests without a body in RestClient and WebClient with Reactor Netty #34003
  • Add missing @Contract annotation to ObjectUtils#isEmpty #33984
  • OptionalValidatorFactoryBean suppresses Hibernate Validator configuration failures too much #33979
  • Support Flux<ServerSentEvent<Fragment>> in WebFlux #33975
  • Update in FragmentsRendering to names of static methods #33974
  • Honor @Fallback semantics for Test Bean Overrides #33924
  • AdvisedSupport.MethodCacheKey should check for logical equality as well as identity #33915
  • Fail with full description for XML diff in XmlExpectationsHelper #33827
  • MapMethodProcessor should only resolve arguments of type Map or the ModelMap hierarchy #33160

🐞 Bug Fixes

  • Support binding from request headers via constructor args #34073
  • Unable to configure custom scheduler for @Scheduled annotation #34058
  • Identical Bean Overrides are silently allowed #34054
  • OOM due to NoTransactionInContextException in reactive pipeline #34048
  • Priority header causes binding exception after upgrade to Spring Framework 6.2.0 #34039
  • @MockitoBean incorrectly injects supertype into subtype field #34025
  • NestedPlaceholder are not recursively resolved if the fallback is a placeholder #34020
  • AOT no longer generates BeanInstanceSupplier signature for a CGLIB proxy with its public type #33998
  • Nested transaction support via savepoints is broken in Oracle database #33987
  • Proxy created with IntroductionInterceptor but without target always throws an exception #33985
  • ApplicationListener no longer invoked for generic ApplicationEvent with 6.2.0 #33982
  • Error handling override in DefaultResponseErrorHandler ignored after upgrade to 6.2.0 #33980
  • BeanCurrentlyInCreationException is thrown when multiple threads simultaneously try to create a FactoryBean #33972
  • HandshakeWebSocketService assumes jakarta websocket is present #33970
  • @Value cases SpringCGLIB$$0 required a bean of type java.lang.String that could not be found in Native compile when migrating to SB 3.4 #33960
  • PathMatchingResourcePatternResolver should not log directory-skip messages at info level #33956
  • Avoid infinite recursion in BeanValidationBeanRegistrationAotProcessor with recursive generics #33950
  • Skip runtime hint registration for validation constraint with missing dependencies #33949
  • Move Kotlin value class unboxing to InvocableHandlerMethod #33943
  • MockReset strategy is no longer honored for @MockitoBean and @MockitoSpyBean #33941
  • TypeDescriptor with recursive generics triggers infinite recursion in ResolvableType.equals/hashCode #33932
  • RestClient does not expose full URI template as attribute #33928
  • Bean Overrides like @MockitoBean and @TestBean should not be allowed on static fields #33922
  • Regression in duplicate beans with different method names #33920

πŸ“” Documentation

  • Fix link to MockMvcBuilders in reference documentation #34031
  • Fix a typo in the filters documentation #33959
  • Document visibility requirements for Bean Overrides #33923
  • Fix typos and link in Observability documentation #33910
  • SpEL documentation contains syntax errors #33907
  • Improve explanation of AOP advice classes that should implement MethodInterceptor #33901
  • Reflect well-known HttpHeaders intent in Javadoc #33886
  • Reflect well-known MediaTypes intent in Javadoc #33754
  • Document support for varargs invocations in SpEL #33332

πŸ”¨ Dependency Upgrades

  • Upgrade to Micrometer 1.14.2 #34050
  • Upgrade to Reactor 2024.0.1 #34051

❀️ Contributors

Thank you to all the contributors who worked on this release:

@Boiarshinov, @CHOICORE, @KNU-K, @izeye, @ngocnhan-tran1996, @scordio, @sonallux, and @youabledev

v6.1.16

12 Dec 08:53
Compare
Choose a tag to compare

⭐ New Features

  • Log alias removal in DefaultListableBeanFactory #34071
  • OptionalValidatorFactoryBean suppresses Hibernate Validator configuration failures too much #34041
  • Update UndertowHttpHandlerAdapter to dispatch #33969

🐞 Bug Fixes

  • HandshakeWebSocketService assumes jakarta websocket is present #34023

πŸ“” Documentation

  • Fix a typo in the filters documentation #33971
  • SpEL documentation contains syntax errors #33908

πŸ”¨ Dependency Upgrades

  • Upgrade to Reactor 2023.0.13 #34049
  • Upgrade to Undertow 2.3.18.Final #33976

v6.2.0

14 Nov 16:46
Compare
Choose a tag to compare

⭐ New Features

  • Update UndertowHttpHandlerAdapter to dispatch #33885
  • Refine @Contract Javadoc to mention this and new return values #33849
  • AOT processing for bean validation does not consider cascaded and container element constraints #33842
  • Avoid repeated resolving of singleton beans through @Lazy proxy #33841
  • Regiser runtime hints for @TestBean fully-qualified method names #33836
  • Introduce support for custom reason in @DisabledInAotMode #33833
  • Use optimistic locking where possible in ResponseBodyEmitter #33831
  • Revise cookies support with Apache HTTP Components in WebClient and WebTestClient #33822
  • Remove the pure attribute from @Contract #33820
  • Introduce @CheckReturnValue annotation #33818
  • ResourceHttpRequestHandler throwing IllegalArgumentException if resource doesn't end with slash breaks some third-party libraris #33815
  • Provide first-class virtual thread option on ThreadPoolTaskExecutor/ThreadPoolTaskScheduler #33807
  • HttpServiceProxyFactory should omit optional @RequestParam if converted from null to empty string #33794
  • Reactor Netty response should not buffer the full response #33781
  • Relax the visibility of MockMVC DSL constructors #33778
  • Support Publisher to InputStream conversion #31677

🐞 Bug Fixes

  • MockReset should be honored without @Mockito[Spy]Bean fields #33829
  • Test Bean Overrides do not honor @Primary semantics #33819
  • Bean Overrides cannot reliably override beans created by a FactoryBean with generics #33811
  • Bean Overrides for certain FactoryBean use cases no longer work #33800
  • @MockitoBean, @MockitoSpyBean, & @TestBean do not work with @DirtiesContext "before method" modes #33783
  • Deprecate exchangeTimeout and refactor readTimeout in ReactorClientHttpRequestFactory #33782

πŸ“” Documentation

  • Revise documentation for SpEL PropertyAccessor and IndexAccessor APIs regarding ordering #33862
  • Document UrlHandler Servlet and reactive filters #33784
  • Improve documentation for SpelCompilerMode #33223

πŸ”¨ Dependency Upgrades

  • Upgrade to ASM 9.7.1 (for early Java 24 support) #33821
  • Upgrade to Micrometer 1.14.0 #33876
  • Upgrade to Reactor 2024.0.0 #33878

❀️ Contributors

Thank you to all the contributors who worked on this release:

@Hejow, @OlegDokuka, and @lucky8987

v6.1.15

14 Nov 14:26
Compare
Choose a tag to compare

⭐ New Features

  • Use UriUtils to process static resource paths #33859
  • Prefer modified resources over the originals in TestCompiler #33850
  • Improve iteration methods in native headers to MultiValueMap adapters #33823
  • Deregister empty Cache from CacheManager #33813
  • Rename aopAvailable constants in TransactionSynchronizationUtils for better GraalVM native image support #33796
  • Load-time weaving support for WildFly 24+ #33728

🐞 Bug Fixes

  • DefaultClientRequestObservationConvention generates wrong uri tag when missing path #33867
  • HttpComponentsClientHttpRequestFactory setReadTimeout not working with httpclient 5.4 #33806
  • HttpHeaders.writeableHttpHeaders(new HttpHeaders(readOnlyHttpHeaders)) is not writeable #33789
  • RestClient exchange methods are not nullable #33779
  • Throw SpelParseException for unsupported character in SpelExpressionParser #33767
  • DefaultMessageListenerContainer reports incorrect jms.process.message count #33758
  • Autowiring fails if multiple non-highest @Priority beans exist with same priority #33733
  • Jackson2Decoder leaks on WebClient timeout #33731
  • DefaultServerRequestObservationConvention throws when response status is zero #33725
  • Aspect executed twice - @AfterThrowing #33704
  • parts w/o filename in Content-Disposition header are not cleaned from temp folder (skipped by StandardServletMultipartResolver) #33511

πŸ“” Documentation

  • Resources link points to wrong section of reference guide #33882
  • Remove mentions of Joda-Time support #33881
  • SimpleAsyncTaskExecutor blocks calling thread when concurrencyLimit set #33873
  • Fix formatting issue in validation section of reference guide #33871
  • Fix typo in reference documentation #33865
  • Fix XML bean reference example in reference manual #33855
  • Fix a typo in documentation #33846
  • Numerous warnings when injecting dependencies into configuration that implements CachingConfigurer #33834
  • @Async documentation should not suggest deprecated classes #33805
  • Document that circular dependencies should be avoided in AOT mode #33786
  • Inconsistent Lifecycle Management with Virtual Threads in Spring Boot Async Configuration #33780
  • Fix incorrect regex rendering in MVC controller documentation #33766
  • Improve documentation for allowEagerInit parameter in getBeanNamesForType() #33740
  • Fix Javadoc in ReactorNetty2ResourceFactory #33735
  • Document options for handling Date/Time parsing and formatting issues with JDK 20+ #33151

πŸ”¨ Dependency Upgrades

  • Upgrade to Micrometer 1.12.12 #33877
  • Upgrade to Reactor 2023.0.12 #33879

❀️ Contributors

Thank you to all the contributors who worked on this release:

@Torres-09, @ZLATAN628, @hosamaly, @izeye, @kunaljani1100, @ngocnhan-tran1996, and @wilkinsona

v6.2.0-RC3

24 Oct 09:22
Compare
Choose a tag to compare
v6.2.0-RC3 Pre-release
Pre-release

⭐ New Features

  • Update retrieve() in RestClient to execute and extract in single scope #33777
  • Remove proxyTargetAware attribute from @MockitoSpyBean #33775
  • PathMatchingResourcePatternResolver sorting of JAR resources #33771
  • Add default handling for disconnected client errors to Spring MVC #33763
  • Remove ServerResponse.AsyncBuilder interface #33736
  • Fix PathMatchingResourcePatternResolver manifest classpath discovery #33705
  • Add cookie support to RestClient #33697

🐞 Bug Fixes

  • @MockitoSpyBean does not support transparent verification #33774
  • Bean with defaultCandidate = false and qualifier does not work with constructor injection #33762
  • Update HttpHeaders.setHost() to actually remove the Host header #33716

πŸ“” Documentation

  • Rework links to Spring Boot docs in reference documentation #33776
  • Add Kotlin examples in aot.adoc #33761
  • Improve the discoverability of Java and Kotlin APIs documentation from the refdoc #32835

❀️ Contributors

Thank you to all the contributors who worked on this release:

@Nicklas2751, @bivo, @philwebb, and @roll-w

v6.2.0-RC2

17 Oct 11:34
Compare
Choose a tag to compare
v6.2.0-RC2 Pre-release
Pre-release

⭐ New Features

  • Verify static resource location ends on slash #33712
  • Support record canonical constructor in BeanUtils #33707
  • Rename OverrideMetadata for Bean Overrides #33702
  • Rename BeanOverrideStrategy enum constants #33701
  • Polish ServletWebRequest #33698
  • Remove support for relative paths in static resource handling #33687
  • Add value attribute alias to @MockitoBean and @MockitoSpyBean #33680
  • Reject bean names with factory prefix for Bean Overrides #33674
  • Revise handling of URI variable syntax in WhatWG URL parser #33673
  • Introspect pre-registered singletons in preDetermineBeanTypes as well #33668
  • Remove unnecessary array length check #33655
  • Polish CorsConfiguration #33650
  • Add URL Parser for RFC 3986 #33639
  • Handle X-Forwarded-Prefix parsed by Reactor-Netty in ReactorServerHttpRequest #33638
  • RestClient should auto-detect ReactorClientHttpRequestFactory #33635
  • Improve random source in SockJS support #33632
  • Stop replacing existing Bean Override definitions with pseudo-definitions #33627
  • Introduce enforceOverride flag in @TestBean and @MockitoBean #33613
  • Refactor unwrapOptional method to improve readability and performance #33612
  • ServerSentEvent should implement equals() and hashCode() #33606
  • Reduce the GC pressure due to NoTransactionInContextException instances #33601
  • Make DynamicPropertyRegistrarBeanInitializer public #33593
  • Improve toString() for AbstractBeanDefinition and BeanMetadataAttribute #33579
  • Add utility methods for resource handler checks #33574
  • UrlHandlerFilter should not strip the trailing slash from the contextPath URL #33565
  • AbstractGenericHttpMessageConverter has no constructor taking a Charset #33563
  • JdbcClient ResultQuerySpec - Provide a optionalValue() method #33560
  • Add read timeout setter on HttpComponentsClientHttpRequestFactory #33556
  • Fix virtual thread pinning caused by synchronized blocks in EclipseLinkJpaDialect #33546
  • Add RestClient.Builder#messageConverters(List) #33536
  • Refine null-safety for additional Assert methods #33530
  • Throw runtime error for @TransactionalEventListener when @Transactional propagation level is not REQUIRES_NEW or NOT_SUPPORTED #33470
  • With virtual threads enabled, long-running fixedDelay tasks block fixedRate tasks #33408
  • Provide a public mechanism for detecting if AOT processing is in progress #33388
  • Use only one request timeout mechanism in JdkClientHttpRequest #33090
  • Support bean override features with AOT and native image #32933
  • Limit reflective operations in BeanInstanceSupplier with Spring AOT #32834
  • Mixin created with IntroductionInterceptor results in dynamic proxy instead of CGLIB proxy #31304
  • Lenient URI parsing in ServletServerHttpRequest #30489
  • Exclude authorization messages from ERROR logging in StompSubProtocolHandler #28252
  • Propagate fully capable ServletContext in AbstractContextLoaderInitializer (for SessionCookieConfig access) #22319

🐞 Bug Fixes

  • PropertySourcesPropertyResolver no longer converts to non CharSequence types #33727
  • Lower-casing of scheme in UriComponentsBuilder breaks use of URI variables #33699
  • Remove @MockitoBeanSettings and support for MockitoSession management #33692
  • @MockitoBeanSettings is not inherited in @Nested test class #33685
  • AOT fails when generating code for a component declared as an inner-class #33683
  • @MockitoBean reset and MockitoSession management do not work with @Nested tests #33676
  • DurationFormatterUtils should not attempt to parse an empty duration #33669
  • DefaultServerHttpRequestBuilder can create case-sensitive Headers instances #33666
  • Context cache is broken if two Bean Override fields declare annotations in different order #33633
  • Test bean override support should only override singletons #33602
  • Kotlin checked exception thrown from proxy service causes UndeclaredThrowableException #33585
  • Autowiring of generic beans with array types is broken since 6.2.0-M1 #33535
  • AnnotatedBeanDefinitionReader should respect @Fallback qualifier analogous to @Primary #33533

πŸ“” Documentation

  • Add Javadoc since for headers() in Delete/Patch/Post/PutExchange #33723
  • Document XML parser usage against security false positives #33713
  • Update scheduling.adoc #33709
  • Document TestExecutionListener implementations introduced in 6.2 #33661
  • Replace RFC 7807 with RFC 9457 in documentation #33594
  • Document that TestContextAnnotationUtils is required for proper @Nested test class support #33586
  • Replace e.g. with for example #33515
  • Document non-default candidate beans and Java-based configuration of non-autowire candidate beans #33392

πŸ”¨ Dependency Upgrades

  • Upgrade to Jackson 2.18 #33615
  • Upgrade to Micrometer 1.14.0-RC1 #33648
  • Upgrade to Reactor 2024.0.0-RC1 #33636

❀️ Contributors

Thank you to all the contributors who worked on this release:

@EugeneNik, @J-unStiN, @Jaeyoung22, @Seungpang, @SungbinYang, @TAKETODAY, @boulce, @cfredri4, @chemicL, @chschu, @cmagnuson, @izeye, @khyojun, @kimjuke, @ngocnhan-tran1996, @quaff, @smartandhandsome, and @zinzoddari

v6.1.14

17 Oct 08:23
Compare
Choose a tag to compare

⭐ New Features

  • Use Locale.ROOT for locale neutral, case insensitive comparisons #33708
  • Improve checks for relative paths in static resource handling #33689
  • CorsUtils.isCorsRequest throws unhandled IllegalArgumentException and returns 500 Internal Server Error on malfomed Origin header #33682
  • Skip processing of Java annotations in QualifierAnnotationAutowireCandidateResolver #33580
  • Include argument name in MethodArgumentTypeMismatchException error message #33573
  • Preserve coroutine context in WebClientExtensions #33548
  • Blocking call detected in ConcurrentReferenceHashMap by BlockHound #33450
  • Warning message about bean post-processing and eager injection may suggest the wrong cause #33184

🐞 Bug Fixes

  • DelegatingFilterProxy Causes Pinned Virtual Threads #33656
  • Potential NPE from MethodParameter.getMethod() check in KotlinDelegate.hasDefaultValue() #33609
  • Missing native image hints for JDK proxies created by JMS connection factories #33590
  • AotTestExecutionListener should not be invoked for a @DisabledInAotMode test class #33589
  • Use encoded resource path instead of input path validation in spring-webflux #33568
  • org.springframework.util.ResourceUtils#toRelativeURL drops custom URLStreamHandler #33561
  • Current observation not in scope during WebClient ExchangeFilterFunction execution #33559
  • ZoneIdEditor throws wrong exception type for TypeConverterSupport #33545
  • MimeMessageHelper addInline with ByteArrayResource fail with null filename #33527
  • @Cacheable throws NullPointerException when RuntimeException is thrown inside annotated code #33492
  • Path variable values missing in RedirectView when PathPattern are used #33422
  • Reactive HttpComponentsClientHttpResponse ignores Expires cookie attribute #33157

πŸ“” Documentation

  • Update fallback.adoc #33721
  • Update scheduling.adoc #33703
  • Fix link in testing/support-jdbc.adoc #33686
  • Adapt Javadoc note about log level of BeanPostProcessorChecker #33617
  • Reference the spring-framework-petclinic repository wich uses AspectJ #33539

πŸ”¨ Dependency Upgrades

  • Upgrade to Apache HttpClient 5.4 #33587
  • Upgrade to Apache HttpCore Reactive 5.3 #33588
  • Upgrade to Awaitility 4.2.2 #33604
  • Upgrade to Micrometer 1.12.11 #33647
  • Upgrade to Reactor 2023.0.11 #33637

❀️ Contributors

Thank you to all the contributors who worked on this release:

@arey, @asibross, @boulce, @drdpov, @hosamaly, @ilya40umov, @izeye, and @junhyeongkim2

v6.2.0-RC1

12 Sep 12:38
Compare
Choose a tag to compare
v6.2.0-RC1 Pre-release
Pre-release

⭐ New Features

  • Update mime.types and remove commented entries #33512
  • Provide access to the unexpanded URI template when using MockMvc #33509
  • Avoid empty array allocations in AnnotationTypeMapping #33507
  • Introduce DynamicPropertyRegistrar as a replacement for DynamicPropertyRegistry bean support #33501
  • Avoid storing duplicate empty array in MethodParameter field #33496
  • Avoid empty array allocations in ResolvableType #33473
  • Update Content-Length when body changed by Interceptor #33459
  • UrlHandlerFilter should not strip the trailing slash from root URLs #33444
  • Unwrap CGLIB proxy when invoking non-proxied methods in ReflectionTestUtils #33429
  • Refactor eTag formatting logic into a static utility method #33412
  • Encapsulate ETag comparison logic #33385
  • Harmonize Reactor client class names within the http.client package #33382
  • Allow multiple listeners on ResponseBodyEmitter #33356
  • Invoke init/destroy/SpEL methods via public declaring type whenever possible #33216
  • Create WebFlux equivalent filter to handle URLs with trailing slashes #32830
  • Provide more ways to stream through ServerResponse for WebMvc functional endpoints #32710
  • Avoid buffering all elements before sending JSON when using Flux/Flow + Kotlinx Serialization Encoder #33428

🐞 Bug Fixes

  • BeanCurrentlyInCreationException is thrown when multiple threads get a bean from StaticApplicationContext's Bean Factory #33463

πŸ“” Documentation

  • Revise reference documentation for Spring JMX annotations #33466
  • Add Javadoc since for ReflectionHints.registerForInterfaces() #33458
  • Revise AOP proxying section of the reference manual #33455
  • Consolidate self injection documentation in the reference manual #33454
  • Expand acronyms FQN and FQCN #33452
  • Document that WebFlux does not support forward redirects #33441
  • Document TaskDecorator usage with TaskExecutors #33438

πŸ”¨ Dependency Upgrades

  • Upgrade to JUnit 5.11 #33395
  • Upgrade to Micrometer 1.14.0-M3 #33520
  • Upgrade to Reactor 2024.0.0-M6 #33521

❀️ Contributors

Thank you to all the contributors who worked on this release:

@hyunmin0317, @imzhoukunqiang, @izeye, @kilink, @quaff, and @tafjwr