Skip to content

@snicoll snicoll released this Mar 24, 2020 · 69 commits to master since this release

⭐️ New Features

  • Do not cache multipart mime types in MimeTypeUtils LRU cache #24767
  • Declare proxyBeanMethods=false in JmsBootstrapConfiguration #24752
  • Usage of java 14 record throws java.lang.UnsupportedOperationException: This feature requires ASM8_EXPERIMENTAL #24722
  • Non-public Kotlin beans can't be instantiated #24712
  • Avoid ClassCastException for CoyoteInputStream in TomcatHttpHandlerAdapter #24707
  • Avoid unnecessary sorting in AbstractHandlerMethodMapping #24704
  • Improve performance of StringUtils#cleanPath #24674
  • Optimize global advisor registration in ProxyFactoryBean #24669
  • Short circuit check in SynthesizedMergedAnnotationInvocationHandler.isVisible() #24664
  • Ignore empty domain string in ResponseCookie #24663
  • Remove UTF-8 charset parameter from Content-Type in SseEmitter #24632
  • Jaxb2XmlDecoder Does Not Throw Codec Exception For Invalid XML #24622
  • TransactionInterceptor constructors should accept a generic TransactionManager #24612
  • Relax GraalVM checks in DefaultParameterNameDiscoverer #24600
  • Multipart/related support in Spring Webclient #24582
  • Consider supporting PreFlight requests and CORS in Servlet Functional Endpoints #24564
  • Support for byte-range requests in Servlet Functional endpoints #24562
  • Provide a mechanism to configure integration tests with a dynamic property source #24540
  • Improve ConcurrentLruCache performance #24469
  • Reduce Class[] garbage when creating proxies #24221
  • implements checkNotModified for ServerRequest #24173
  • AbstractSockJsSession exception when handling message with closed session #23828

🐞 Bug Fixes

  • Missing nullability declarations for package web.socket.server.jetty #24745
  • MediaTypeNotSupportedStatusException seems unused #24743
  • MessagingRSocket incorrectly tries to release entire input stream on channel interaction #24741
  • MimeTypeUtils performance degradation #24671
  • RSocket MetadataEncoder expands the routes incorrect #24656
  • Spring generates huge callstack for async requests #24652
  • CodecException (from JSON conversion) in RestController is not mapped to 400 but 500 (SB 2.2.5 & Kotlin) #24646
  • addCandidateComponentsFromIndex should create ScannedGenericBeanDefinitions #24638
  • ShallowETagHeaderFilter (still) overwrites ETag and Content-Length #24635
  • Invalid JSON in requests now causes 500 instead of 400 #24630
  • Invalid request results in 500 INTERNAL ERROR instead of 400 BAD REQUEST (with Lombok and Kotlin) #24610
  • Distributions no longer deployed #24605
  • UnknownHttpStatusCodeException is missing the response body #24595
  • Implementing interface in abstract class does not expose parameter annotations #24127

📔 Documentation

  • Clarify name generation responsibility for PropertySourceFactory implementations #24757
  • Improve Javadoc in @Configuration #24753
  • Improve Javadoc in AnnotatedElementUtils #24740
  • Clarify behavior for WebClient statusHandlers #24736
  • Enhance Spring Core documentation, section 1.9.2. Using @Autowired #24711
  • Do not mention credentials as enabled by default in CorsRegistry #24691
  • Improve Javadoc in AutoProxyRegistrar #24688
  • Improve javadoc in RollbackRuleAttribute regarding nested classes #24682
  • Fix typo in testing.adoc #24627
  • Polish ReactorResourceFactory #24620
  • Fix typo in reference manual #24597
  • Add more lambda expressions in data-access code examples #24398

🔨 Dependency Upgrades

  • Upgrade to JUnit 5.6.1 #24762
  • Upgrade to Reactor Dysprosium SR6 #24725
  • Upgrade to Groovy 2.5.10 (for JDK 14 compatibility) #24719

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Assets 2
You can’t perform that action at this time.