Spring Framework - v6.0.14

:star: New Features

  • Provide caching for HandlerMappingIntrospector lookups #31588
  • Log4jLog needs to re-resolve ExtendedLogger on deserialization (for compatibility with Log4J 2.21) #31582
  • Optimize StandardTypeLocator for hotspot when the same classes are resolved #31579
  • Add duplicate key exception error code for SAP HANA database #31554
  • Do not delegate TRACE to HttpServlet on ERROR dispatch #31457
  • Add properties setter to ProblemDetail #31430

:lady_beetle: Bug Fixes

  • GeneratedFiles#addSource does not provide proper context if the specified class name is invalid #31612
  • MessageBuilder#createMessage should not define the payload as @Nullable #31610
  • Default Mixin added by Jackson2ObjectMapperBuilder are missing required runtime hints #31606
  • NettyDataBuffer#toByteBuffer fails if readPosition > 0 #31605
  • Avoid duplicate JAR resources in PathMatchingResourcePatternResolver on MS Windows #31598
  • NamedParameterUtils broken parsing related to square brackets #31596
  • Multipart cleanup is done too eagerly #31567
  • Jakarta validation field constraints in superclass are ignored in native image #31552
  • Function column out doesn't resolve to SqlOutParameter #31550
  • Restore support for recursive annotations in Kotlin #31518
  • Resolve to empty MultiValueMap when no matrix variables are provided #31483
  • ProxyFactoryBean declaration may lead to unexpected non-fatal "FactoryBean threw exception from getObjectType" stacktrace output #31473
  • Use of @Value in compact constructor of a record should not register method injection #31433
  • Prevent duplicate HTTP server observations for cancelled exchanges #31417
  • Spring MVC raises MissingPathVariableException resulting in 500 instead of 400 error when path segment is u001F or u00D and cannot be converted to target type UUID #31382
  • Ensure consistent value count in ConcurrentReferenceHashMap#Segment #31373
  • HeaderContentNegotiationStrategy.resolveMediaTypes throws unexpected IllegalArgumentException #31254
  • Session Cookie in Reactive WebSession is not deleted if maxAge is set through cookie initializer (e.g. via Boot application property) #31214
  • DefaultWebClient logs URI without the port number #30519
  • CGLIB BeanCopier falls back to ClassLoader.defineClass for public target #28699
  • BeanUtils.copyProperties() consumes large amount of memory #27246

:notebook_with_decorative_cover: Documentation

  • RestTemplate initialization documentation in 6.0.x mentions Netty, yet no ClientHttpRequestFactory is present in the package. #31526
  • Correct typo in annotations.adoc #31519
  • Document X-Forwarded-* Headers #31491
  • Improve support and documentation for the "default" bean definition profile name #29071
  • Document that pertypewithin is supported by Spring AOP #25887
  • Document alternatives of using multiple PropertyPlaceholderConfigurers [SPR-9989] #14623

:hammer: Dependency Upgrades

  • Upgrade to Micrometer 1.10.13 #31586
  • Upgrade to Reactor 2022.0.13 #31585

:heart: Contributors

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

@CrotchBurnt, @GVictorG7, @PiotrFLEURY, @baratrax, @bernie-schelberg-invicara, @huyachigege, @izeye, @lorenzsimon, @martin-lukas, and @rwinch


Nov. 16, 2023, 2:30 p.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