Skip to content

Releases: spring-projects/spring-framework

v6.0.22

13 Jun 09:49
Compare
Choose a tag to compare

⭐ 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

13 Jun 09:06
Compare
Choose a tag to compare

⭐ 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

22 May 18:28
Compare
Choose a tag to compare
v6.2.0-M3 Pre-release
Pre-release

⭐ 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

22 May 17:15
Compare
Choose a tag to compare

⭐ 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 to java.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:

@rwinch

v6.0.21

22 May 16:27
Compare
Choose a tag to compare

⭐ 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 to java.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

22 May 15:49
Compare
Choose a tag to compare

🐞 Bug Fixes

  • Overridden aspect method runs twice #32868
  • @DateTimeFormat(iso = DateTimeFormat.ISO.DATE\_TIME) cannot convert UTC without milliseconds to java.util.Date #32860
  • Spring AOP fails against registered @Configurable aspect #32840

v6.2.0-M2

16 May 10:16
Compare
Choose a tag to compare
v6.2.0-M2 Pre-release
Pre-release

⭐ 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() in CodeFlow #32708
  • Make SpelNode compilation aware #32707
  • Add a requiredBody() extension to RestClient.ResponseSpec #32703
  • Add IndexAccessor support to SpEL's SimpleEvaluationContext #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's BeanReference #32640
  • Validate that private JUnit Jupiter lifecycle methods are not annotated with @Autowired #32627
  • Ensure removal of Content-Type header if body Publisher 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's ApplicationContext #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 with isNotEqual assertion #32756
  • IndexAccessor cannot support custom Collection target type #32736
  • Custom IndexAccessor cannot support String 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

16 May 09:31
Compare
Choose a tag to compare

⭐ 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 propagate ApplicationStartup to BeanFactory #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

  • Upgrade to Micrometer 1.12.6 #32810
  • Upgrade to Reactor 2023.0.6 #32786

❀️ Contributors

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

@LeMikaelF, @Seungpang, @izeye, @m4tt30c91, @remeio, and @yhao3

v6.0.20

16 May 08:47
Compare
Choose a tag to compare

⭐ 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 #32752
  • AnnotationConfigWebApplicationContext should propagate ApplicationStartup to BeanFactory #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

16 May 07:39
Compare
Choose a tag to compare

⭐ 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 #32751
  • AnnotationConfigWebApplicationContext should propagate ApplicationStartup to BeanFactory #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