⭐ New Features
- Spring-context optimization: LinkedMultiValueMap and ArrayList should be initialized with specified capacity for preventing collections from resizing [SPR-17079] #21616
- Cache order result per Class in OrderUtils (for AnnotationAwareOrderComparator) [SPR-17064] #21602
- Add setter for order for DefaultSimpUserRegistry [SPR-17023] #21561
- InMemoryWebSessionStore could leak memory if sessions created but never used [SPR-17020] #21558
- Reduce the impact on startup time of adding Reactor to the classpath [SPR-16981] #21519
- Lazily initialize SecureRandom in MimeTypeUtils [SPR-16974] #21512
- StringUtils.cleanPath should not strip off the entire path for
file:./
[SPR-16908] #21447 - InMemoryWebSessionStore method to access map of sessions [SPR-16713] #21254
- Revise StringUtils.parseLocale(String) for proper handling of corner cases [SPR-16651] #21192
- Warn about use of SimpleAsyncTaskExecutor for async requests [SPR-16203] #20751
- Annotations on generic interface methods not found by AnnotationUtils [SPR-16060] #20609
- Content-Length should be set in the request when using reactive WebClient [SPR-16949] #19562
- StringUtils#parseLocaleString(String) with Variant when no Country [SPR-7598] #12254
🪲 Bug Fixes
- ResponseEntityResultHandler does not overwrite existing response headers [SPR-17082] #21619
- MVC not rendering response headers for ResponseEntity<Flux> [SPR-17076] #21614
- spring-webflux ModelAttributeMethodArgumentResolver validateIfApplicable [SPR-17073] #21611
@RequestParam
throwsjava.lang.NullPointerException: The mapper returned a null value.
[SPR-17050] #21588- AnnotationMetadataReadingVisitor.getMetaAnnotationTypes(String) may return null but it is not marked
@Nullable
[SPR-17046] #21584 - AOP and use of redirect view can lead to unbounded caching in AbstractAutoProxyCreator [SPR-17045] #21583
- Boundary info in Content-Type multipart request header not parsed correctly because of charset [SPR-17030] #21568
- HtmlUnitRequestBuilder decodes plus sign in query parameter [SPR-17027] #21565
- Spring 5.x DataSource proxying does not work with Oracle UCP on JDK 9+ [SPR-17003] #21541
- Map injection fails to find bean produced with
@Bean
when additional method with same name exists [SPR-16999] #21537 - ConcurrentReferenceHashMap does not enforce visibility of cached EntrySet [SPR-16994] #21532
- The WebHttpHandlerBuilder copy constructor does not copy the applicationcontext [SPR-16972] #21510
- Share ByteBufferPool between UndertowWebSocketClient connections (avoiding risk of memory leaks) [SPR-16957] #21495
- spring.ftl does not support turning off escaping for some macros on Spring 5 [SPR-16951] #21489
- AbstractJackson2HttpMessageConverter incorrectly logs at WARN level after upgrading to Jackson 2.9 [SPR-16947] #21486
- ResponseCookie prints incorrect max-age and expires values [SPR-16940] #21479
- Problem with passing null parameter to MapSqlParameterSource [SPR-16843] #21383