Spring v5.1.10.RELEASE Release Notes

Release Date: 2019-09-28 // over 4 years ago
  • 🍱 ⭐️ New Features

    • 📦 Backport PR #22485 (Exclude jdk package in ShadowingClassLoader) to 5.1 branch #23641
    • 🔀 SimpleCacheManager should not synchronize on AbstractCacheManager#cacheMap #23635
    • 🤡 MockClientHttpResponse loses original HttpStatus code #23599
    • BeanUtils.isSimpleValueType() should not consider void or Void as a simple value type #23573
    • ClassUtils.isPrimitiveOrWrapper(…) and friends should consider Void.class a primitive wrapper for void.class #23572
    • 0️⃣ Custom DefaultResourceLoader subclass should be able to consume context-provided ProtocolResolvers #23564
    • sendBufferSizeLimit exceeded should be logged at warn level #23534
    • Provide a method to get the original bean name from a scoped target's bean name #23514
    • Raise 400 instead of 500 on failure to find index of lookupPath within requestUri in ResourceUrlEncodingFilter #23508
    • IncompatibleClassChangeError on Jetty WebSocket ExtensionFactory #23500
    • Respect already set content-length header for HEAD request. #23484
    • 👍 Static resource support does not handle requests for a file with % character in its name #23463
    • Errors.NativeIoException from WebClient on WebFlux server does not set the response status #23319

    🍱 🐞 Bug Fixes

    • SameSite cookie attribute missing when using WebFlux #23693
    • Ensure ClassFilter and MethodMatcher implementations are cacheable #23659
    • 🔗 LinkedCaseInsensitiveMap does not track removals via keySet, entrySet, or values #23644
    • Wait for complete disposal of Reactor Netty resources in ReactorResourceFactory #23631
    • Spring fails to determine that XML is DTD-based if DTD declaration is followed by a comment #23605
    • ClassCastException when use ServerHttpResponseDecorator to modify response of websocket #23598
    • Infinite loop due to doFilterNestedErrorDispatch() method in OncePerRequestFilter #23596
    • Bean definition override leads to NPE due to inconsistent equality check #23593
    • 🛠 Fix DefaultListableBeanFactory#copyConfigurationFrom #23569
    • Response with an invalid content type hangs when using WebFlux with Jetty #23553
    • Entry set of read-only HttpHeaders loses original headers' ordering #23551
    • 0️⃣ DefaultListableBeanFactory throws a NullPointerException when resetBeanDefinition() is invoked concurrently #23542
    • 🤡 No way to replace Set-Cookie header via MockHttpServletResponse #23512
    • 🤡 ConcurrentModificationException in MockHttpServletResponse #23460
    • 🔀 Synchronized blocks in MethodOverrides are hurting concurrency #23448
    • AnnotationAttributes#assertNotException should check for instance of Throwable #23424
    • ⬆️ Reactive JettyRequestUpgradeStrategy returns 'No WebSocketServerFactory available' on startup with simultaneous handshakes #23313
    • ⏱ WebFlux with Tomcat, intermittent timeout when creating response #23096

    📔 Documentation

    • 👌 Improve docs for AnnotatedBeanDefinitionReader, @Configuration, and @ContextConfiguration regarding "annotated classes" #23638

    ⬆️ 🔨 Dependency Upgrades

    • ⬆️ Upgrade to Reactor Californium-SR12 #23694

    🍱 ❤️ Contributors

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