Spring Framework - v5.3.22

:star: New Features

  • Improve regex "." matching for URL paths #28815
  • Spring JDBC does not recognize LocalDate and LocalDateTime in javaType to sqlType Mapping #28778
  • ResolvableType.forInstance should return NONE for null instance #28776
  • Correctly identify MaxUploadSizeExceededException through keywords in message from Jetty 9.4.x #28759
  • Introduce StringUtils.trimAllWhitespace(CharSequence) #28757
  • Trim string input in Converters where whitespace is irrelevant #28756
  • Trim string input in PropertyEditors where whitespace is irrelevant #28755
  • Improve diagnostics for CGLIB ClassLoader issues on Java 9+ #28747
  • Create well-known non-interface types in CollectionFactory without using reflection #28718
  • Revise internals of LoggingCacheErrorHandler #28672
  • Simplify creation of LoggingCacheErrorHandler with logged stacktrace #28670
  • Fix DataSourceUtils inconsistent exception handling #28669
  • Introduce lenient parsing in DataSize regarding whitespace #28643
  • Support adding rather than replacing modules in Jackson2ObjectMapperBuilder #28633
  • Add MockMvcRequestBuilders.multipart(HttpMethod, String, Object...) #28631
  • Avoid parsing request body in DispatcherServlet for "parameters={masked}" log message #28587
  • Avoid synchronization in AbstractAspectJAdvice#calculateArgumentBindings #26377

:lady_beetle: Bug Fixes

  • WebFlux multipart temporary file not deleted when the client disconnects early #28740
  • Ensure channelExecutors and taskScheduler in STOMP WebSocket config are qualified #28736
  • MockHttpServletResponse addHeader does not allow Comment part with Set-Cookie header #28730
  • Meta-annotations are unnecessarily synthesized in MergedAnotations #28704
  • GenericApplicationContext does not honor ProtocolResolver when a resource loader is set via setResourceLoader() #28703
  • R2DBC: @Transactional(readOnly) is applied to the connection before the transaction has begun #28610

:notebook_with_decorative_cover: Documentation

  • Fix Kotlin code snippets language #28810
  • Fix typos in reference docs and project documentation #28805
  • Fix and improve Javadoc in spring-beans and spring-aop #28803
  • Fix and improve Javadoc in spring-core and spring-context #28802
  • Fix and improve Javadoc in spring-messaging, spring-jms and spring-expression #28800
  • Fix and improve Javadoc in spring-r2dbc, spring-oxm, spring-orm and spring-jdbc #28796
  • Fix and improve Javadoc in spring-test #28795
  • Fix and improve Javadoc in spring-tx #28794
  • Fix and improve Javadoc in spring-web #28791
  • Fix and improve Javadoc in spring-webflux #28790
  • Fix and improve Javadoc in spring-webmvc #28789
  • Fix and improve Javadoc in spring-websocket #28788
  • Fix Kotlin example for defines a custom @Production #28680
  • Fix a typo in ResponseEntity documentation #28647
  • Document that Kotlin inline classes are not supported yet #28642
  • Refine @Required Kotlin documentation to use annotation use site targets #28630
  • Fix Kotlin example for @ComponentScan basePackages attribute #28628
  • Kotlin examples for setter injection incorrectly use field injection #28596
  • Fix expectations in MockMvc Kotlin documentation #28301

:hammer: Dependency Upgrades

  • Update to Bouncycastle 1.71 #28636
  • Upgrade to Reactor 2020.0.21 #28765

:heart: Contributors

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


July 14, 2022, 9:26 a.m.
Register or login to:
  • 🔍View and search all Spring Framework releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google