Skip to content

Releases: spring-projects/spring-framework

5.1.1 Release

17 Jan 14:13

Choose a tag to compare

⭐ New Features

  • Set BEST_MATCHING_HANDLER_ATTRIBUTE in WebFlux.fn [SPR-17367] #21900
  • How does DeferredResult get the value after the timeout [SPR-17364] #21897
  • Replace context by provider() in Kotlin bean DSL [SPR-17352] #21886
  • ServerWebInputException is throw each time Http request with mandatory request parameters is handled. [SPR-17338] #21872
  • MonoToListenableFutureAdapter.cancel problems [SPR-17336] #21870
  • ClassUtils could use long form of Class.forName [SPR-17333] #21867
  • HeaderResultMatchers susceptible to slight variations in the date format [SPR-17330] #21864
  • BasicAuthorizationInterceptor should add its header conditionally [SPR-17326] #21860
  • Quartz job bean can't have constructor with injected parameters [SPR-17323] #21857
  • Sanity checks for HTTP range requests [SPR-17318] #21851
  • Unnecessary sort in AbstractApplicationEventMulticaster [SPR-17307] #21840
  • Support for removeHeader in MockHttpServletRequest [SPR-17295] #21828
  • Improve WebFlux performance for header management [SPR-17250] #21783
  • WebTestClient.bindToRouterFunction(...) with exception handler not working [SPR-17239] #21772
  • Add autowiring support to SpringBeanJobFactory [SPR-14471] #19040
  • Convenient programmatic bean retrieval with qualifiers [SPR-8891] #13532

🪲 Bug Fixes

  • MethodValidationPostProcessor validates FactoryBean methods for which validation is not applicable [SPR-17374] #21907
  • MockHttpServletRequest doesn't reset InputStream/Reader on setContent [SPR-17373] #21906
  • "This feature requires ASM7" on JDK11 on nested classes [SPR-17371] #21904
  • WebTestClient throws IllegalArgumentException for invalid Parameters [SPR-17363] #21896
  • Comparators.nullsLow creates wrong kind of NullSafeComparator [SPR-17357] #21891
  • BeanFactory.getBeanProvider stream does not include beans from parent context [SPR-17356] #21890
  • MockAsyncContext not found. Did request wrapper not delegate startAsync? [SPR-17353] #21887
  • Nested DeferredImportSelector are not detected properly anymore [SPR-17351] #21885
  • AnnotationMetadata.getAnnotationAttributes inconsistency for empty array in ASM implementation [SPR-17347] #21881
  • Integer overflow while uploading big files (> 2.1 GB) using webflux [SPR-17345] #21879
  • SpringBeanContainer should use returned instance from BeanFactory after initializing [SPR-17332] #21866
  • ApplicationListener is missing from Collection returned by getApplicationListeners() if it was added after the multicaster was initialised [SPR-17324] #21858
  • MockCookie parsing fails if cookie does not include attributes [SPR-17321] #21854
  • HTTP 404 for static resources with last modified = 0L (breaks Docker images build with Jib) [SPR-17320] #21853
  • Required attribute 'RouterFunctions.request' is missing [SPR-17304] #21837
  • java.lang.AbstractMethodError: org.apache.commons.logging.LogFactory.setAttribute(..) [SPR-17302] #21835
  • MockHttpServletResponse doesn't propagate Content-Language response header [SPR-17284] #21817
  • Cyclic bean methods cause IllegalArgumentException instead of BeanCurrentlyInCreationException [SPR-17358] #19778

📔 Documentation

  • Misleading description in Autowired javadoc [SPR-17299] #21832

5.0.10 Release

17 Jan 14:17

Choose a tag to compare

⭐ New Features

  • DataBufferUtils does not release DataBuffer on error cases [SPR-16782] #21322
  • Support for removeHeader in MockHttpServletRequest [SPR-17295] #21828
  • Unnecessary sort in AbstractApplicationEventMulticaster [SPR-17307] #21840
  • Sanity checks for HTTP range requests [SPR-17318] #21851
  • HeaderResultMatchers susceptible to slight variations in the date format [SPR-17330] #21864
  • ServerWebInputException is throw each time Http request with mandatory request parameters is handled. [SPR-17338] #21872

🪲 Bug Fixes

  • UriComponentsBuilder.uriComponents doesn't properly clone unmodifiable queryParams [SPR-17256] #21789
  • MockHttpServletResponse doesn't propagate Content-Language response header [SPR-17284] #21817
  • Concurrency Exception during bean configuration related to not thread safe getBeanPostProcessor access [SPR-17286] #21819
  • HTTP 404 for static resources with last modified = 0L (breaks Docker images build with Jib) [SPR-17320] #21853
  • ApplicationListener is missing from Collection returned by getApplicationListeners() if it was added after the multicaster was initialised [SPR-17324] #21858
  • Integer overflow while uploading big files (> 2.1 GB) using webflux [SPR-17345] #21879
  • AnnotationMetadata.getAnnotationAttributes inconsistency for empty array in ASM implementation [SPR-17347] #21881
  • MockAsyncContext not found. Did request wrapper not delegate startAsync? [SPR-17353] #21887
  • Comparators.nullsLow creates wrong kind of NullSafeComparator [SPR-17357] #21891
  • MethodValidationPostProcessor validates FactoryBean methods for which validation is not applicable [SPR-17374] #21907
  • DataBufferUtils#join could leak buffers in case of error from the source [SPR-17025] #21563

📔 Documentation

  • Typo on ServletUriComponentsBuilder javadoc comments [SPR-17255] #21788
  • Javadoc for BufferingClientHttpRequestFactory is missing the end of a sentence [SPR-17261] #21794
  • Misleading description in Autowired javadoc [SPR-17299] #21832

4.3.20 Release

17 Jan 14:20

Choose a tag to compare

⭐ New Features

  • Support for removeHeader in MockHttpServletRequest [SPR-17295] #21828
  • Sanity checks for HTTP range requests [SPR-17318] #21851

🪲 Bug Fixes

  • HTTP 404 for static resources with last modified = 0L (breaks Docker images build with Jib) [SPR-17320] #21853
  • MockAsyncContext not found. Did request wrapper not delegate startAsync? [SPR-17353] #21887
  • MethodValidationPostProcessor validates FactoryBean methods for which validation is not applicable [SPR-17374] #21907

📔 Documentation

  • Typo on ServletUriComponentsBuilder javadoc comments [SPR-17255] #21788
  • Javadoc for BufferingClientHttpRequestFactory is missing the end of a sentence [SPR-17261] #21794
  • Misleading description in Autowired javadoc [SPR-17299] #21832

5.1 GA Release

17 Jan 14:14

Choose a tag to compare

⭐ New Features

  • GenericApplicationContext.registerBean should support non-default constructors [SPR-17292] #21825
  • Expose more AbstractBeanDefinition methods in BeanDefinition [SPR-17275] #21808
  • Add a BeanFactory#getBeanProvider Kotlin extension [SPR-17274] #21807
  • BeanValidationPostProcessor(afterInitialization=true) fails for cglib proxied bean [SPR-17273] #21806
  • Ordered list access for BeanFactory.getBeanProvider(), superseding ObjectProvider [SPR-17272] #21805
  • Truncate large response bodies when logging in RequestResponseBodyMethodProcessor [SPR-17254] #21787
  • Use doOnDiscard to free internally queued data buffers [SPR-17246] #21779
  • Bean definition DSL does not generate unique bean names [SPR-17242] #21775
  • Autowiring inconsistency: @Qualifier works with HashMap but not with Map [SPR-17197] #21731
  • Expose the remote IP in ServerHttpRequest and WebSocketSession [SPR-17192] #21727
  • Provide matched pattern information in WebFlux fn [SPR-17098] #21635
  • Initial GraalVM native images (Substrate VM) support [SPR-16991] #21529
  • SchedulerFactoryBean should not override explicit "org.quartz.scheduler.instanceName" setting with bean name [SPR-16884] #21423
  • DataBufferUtils does not release DataBuffer on error cases [SPR-16782] #21322
  • Allow configuration for DEFAULT_FRAME_MAX_SIZE of WebSocketSession on WebFlux with Netty [SPR-16228] #20776

🪲 Bug Fixes

  • Concurrency Exception during bean configuration related to not thread safe getBeanPostProcessor access [SPR-17286] #21819
  • getBean(Class) lookup performance degredation [SPR-17282] #21815
  • Proper way to dispose of Response [SPR-17268] #21801
  • UriComponentsBuilder.uriComponents doesn't properly clone unmodifiable queryParams [SPR-17256] #21789
  • PathPatternPredicate still changes variables after failed AndPredicate [SPR-17210] #21743
  • JUnit Jupiter @Nested class cannot share enclosing class's ApplicationContext if nested class is deemed to be a configuration candidate [SPR-16595] #21136

📔 Documentation

  • Javadoc for BufferingClientHttpRequestFactory is missing the end of a sentence [SPR-17261] #21794
  • Typo on ServletUriComponentsBuilder javadoc comments [SPR-17255] #21788
  • Add example of WebClient timeout settings [SPR-17241] #21774

5.1 RC3 Release

17 Jan 14:14

Choose a tag to compare

⭐ New Features

  • Add support for empty router in RouterFunctionDsl [SPR-17247] #21780
  • Externally managed mode for ReactorResourceFactory [SPR-17243] #21776
  • Polish capitalisation of units on DataSize and javadoc of DataUnit [SPR-17240] #21773
  • HibernateTransactionManager should lazily acquire JDBC Connection (like HibernateJpaDialect) [SPR-17216] #21749
  • Prevent instantiation of NamedParameterBatchUpdateUtils [SPR-17215] #21748
  • Optimize for Flux to/from Mono conversions by Reactor [SPR-17203] #21736
  • Be more defensive in UrlResource about cleaning the path [SPR-17198] #21732
  • Test instances should not be proxied in the TestContext framework [SPR-9478] #14113

🪲 Bug Fixes

  • Kotlin DSL (RouterFunctionDsl) doesn't support RenderingResponse in router function [SPR-17244] #21777
  • ReactorHttpResources should clear HttpResources in global mode [SPR-17199] #21733
  • Java 10: "Illegal method name" when test functions in Kotlin contain spaces in name [SPR-17137] #21674
  • Spring internal configuration classes can no longer use @EventListener [SPR-17160] #19660

📔 Documentation

  • Document default EmbeddedValueResolver support for property placeholders [SPR-17212] #21745
  • Fix grammar in JavaDoc for fully qualified links [SPR-17208] #21741

5.0.9 Release

17 Jan 14:17

Choose a tag to compare

⭐ New Features

  • Usage of ClassLoader.loadClass() in ConfigurationClassParser [SPR-17253] #21786
  • Spring WebSocket Stomp tomcat cluster with user destinations sends message to wrong subscriber. [SPR-17228] #21761
  • Support both filters and views in AbstractJackson2HttpMessageConverter [SPR-17209] #21742
  • WebFlux JSON request body garbled under heavy load [SPR-17193] #21728
  • Consistent warn logging for handled exceptions [SPR-17178] #21714
  • ClassUtils optimization for less expensive static initialization [SPR-17169] #21705
  • BindingAwareConcurrentModel should properly react to null value [SPR-17141] #21678
  • DataBufferUtils#takeUntilByteCount checks one extra buffer but does not release it [SPR-17118] #21655
  • Initialize pre-filled HashMaps with large enough capacity (e.g. in HttpMethod) [SPR-17105] #21642
  • Avoid unnecessary synthesizable annotation processing [SPR-16933] #21472

🪲 Bug Fixes

  • 'ListBasedXMLEventReader.getElementText()' doesn't work [SPR-17233] #21766
  • EL1072 when evaluating compiled expression using method SpelExpression.getValue(Object rootObject, Class expectedResultType) [SPR-17229] #21762
  • Kotlin inner class nested configuration causes IndexOutOfBoundsException [SPR-17222] #21755
  • WebClient does not write Mono.empty() request body [SPR-17220] #21753
  • Compiled elvis operator does not work correctly when default value is a complex expression [SPR-17214] #21747
  • HeaderAssertions.lastModified/expires takes an int value but it should be long [SPR-17194] #21729
  • SimpleAliasRegistry.hasAlias does not properly resolve multiple chained aliases [SPR-17191] #21726
  • UriComponentsBuilder does not encode "$" properly [SPR-17168] #21704
  • @Scheduled task runs twice on bean with target-class scoped proxy (when injected) [SPR-17166] #21702
  • CheckboxTag incorrectly processing hidden field through RequestDataValueProcessor [SPR-17147] #21684
  • Annotations on generic superclass methods not found by AnnotationUtils [SPR-17146] #21683
  • ContextPathCompositeHandler returns 200 when no path found [SPR-17144] #21681
  • SchedulerAccessor needs to catch primary key violation on reschedule (due to Quartz race condition) [SPR-17114] #21651
  • WebTestClient ignores WebSessionManager bean [SPR-17094] #21631
  • Classification of ClassCastExceptions doesn't work in JDK 11 (OpenJDK) [SPR-17093] #21630
  • Inconsistent handling of dependent lifecycle beans in DefaultLifecycleProcessor [SPR-16901] #21440

📔 Documentation

  • Removed Jackson view property "renderedAttributes" still mentioned in Spring Framework docs [SPR-17182] #21718
  • Rewrite 1.10.8. PDF, Excel paragraph in Spring Framework Documentation [SPR-17180] #21716
  • Fix broken links and address warnings for JavaDoc [SPR-17174] #21710
  • Generate "Use" pages in aggregated Spring API documentation (Javadoc) [SPR-17173] #21709
  • Incorrect CORS code fragment in Spring Framework Documentation [SPR-17167] #21703
  • Preserve-publish-order is mentioned in documentation of 5.0.x [SPR-17106] #21643
  • Incorrect query param code fragment in Spring Framework Documentation [SPR-17104] #21641
  • Revise BeanFactory vs ApplicationContext section in reference docs [SPR-17095] #21632

4.3.19 Release

17 Jan 14:21

Choose a tag to compare

⭐ New Features

  • Consistent warn logging for handled exceptions [SPR-17178] #21714
  • Support both filters and views in AbstractJackson2HttpMessageConverter [SPR-17209] #21742

🪲 Bug Fixes

  • AbstractJackson2HttpMessageConverter incorrectly logs at WARN level after upgrading to Jackson 2.9 [SPR-16947] #21486
  • ConcurrentReferenceHashMap does not enforce visibility of cached EntrySet [SPR-16994] #21532
  • Map injection fails to find bean produced with @Bean when additional method with same name exists [SPR-16999] #21537
  • AOP and use of redirect view can lead to unbounded caching in AbstractAutoProxyCreator [SPR-17045] #21583
  • Classification of ClassCastExceptions doesn't work in JDK 11 (OpenJDK) [SPR-17093] #21630
  • SchedulerAccessor needs to catch primary key violation on reschedule (due to Quartz race condition) [SPR-17114] #21651
  • CheckboxTag incorrectly processing hidden field through RequestDataValueProcessor [SPR-17147] #21684
  • @Scheduled task runs twice on bean with target-class scoped proxy (when injected) [SPR-17166] #21702
  • SimpleAliasRegistry.hasAlias does not properly resolve multiple chained aliases [SPR-17191] #21726
  • Compiled elvis operator does not work correctly when default value is a complex expression [SPR-17214] #21747
  • EL1072 when evaluating compiled expression using method SpelExpression.getValue(Object rootObject, Class expectedResultType) [SPR-17229] #21762

📔 Documentation

  • Doc: AsyncConfigurer causes dependencies to be created early [SPR-16945] #21484
  • Update documentation references to Number/Currency/PercentStyleFormatter [SPR-17022] #21560
  • Incorrect Class reference in documentation [SPR-17042] #21580
  • Revise BeanFactory vs ApplicationContext section in reference docs [SPR-17095] #21632
  • Removed Jackson view property "renderedAttributes" still mentioned in Spring Framework docs [SPR-17182] #21718

5.1 RC2 Release

17 Jan 14:14

Choose a tag to compare

⭐ New Features

  • SmartLifecycle should provide default methods [SPR-17188] #21723
  • SimpleClientHttpResponse.close() does not call close() on URLConnection.getInputStream() if SimpleClientHttpResponse.getBody() was not called before [SPR-17181] #21717
  • Add JettyResourceFactory [SPR-17179] #21715
  • Avoid argument resolution overhead for no-arg factory methods [SPR-17171] #21707
  • Use default methods on Smart/GenericApplicationListener [SPR-17163] #21699
  • Introduce DataSize type [SPR-17154] #21691
  • BeanFactoryUtils.transformedBeanName() creates a lot of GC pressure [SPR-17151] #21688
  • Exception hierarchy under WebClientResponseException for the WebClient [SPR-17145] #21682
  • More easily set the order on DefaultSimpUserRegistry [SPR-17142] #21679
  • limitExceeded is never reset in ConcurrentWebSocketSessionDecorator [SPR-17140] #21677
  • Detect GraalVM with system property in SerializableTypeWrapper [SPR-17136] #21673
  • BeanDefinition-aware BeanPostProcessors should clear cache in case of bean definition reset [SPR-17126] #21663
  • ScriptUtils.containsSqlScriptDelimiters does not take into account escaped quotes [SPR-17120] #21657
  • SharedEntityManagerCreator should support deferred access to StoredProcedureQuery output parameters [SPR-17115] #21652
  • Add support for adding cookies as headers in MockHttpServletResponse [SPR-17110] #21647
  • MockHttpSession doesn't publish session binding event for replaced attributes [SPR-17109] #21646
  • Override JsonPathAssertions "equals" method to fail always [SPR-17091] #21628
  • Improve/unify debug logging at BeanDefinitionReader and BeanFactory level [SPR-17090] #21627
  • Minor performance improvements for 5.1 [SPR-17074] #21612
  • CookieWebSessionIdResolver doesn't recognise https scheme when used with ForwardedHeaderFilter [SPR-17072] #21610
  • Support a custom CorsConfigurationSource [SPR-17067] #21605
  • Relax explicit TestContextBootstrapper resolution [SPR-17006] #21544
  • Add ExchangeFilterFunction that enforces limit on the response size [SPR-16989] #21527
  • Make it easier to tidy up the resources used by a WebClient [SPR-16963] #21501
  • Make it possible to disable Scheduled job via cron expression [SPR-16858] #21397
  • Check scheme in WebUtils#isSameOrigin [SPR-16362] #20909
  • Exception hierarchy under HttpClientException and HttpServerException for the RestTemplate [SPR-15404] #19967
  • ResponseEntity factory method inferring FOUND / NOT_FOUND from Optional [SPR-13281] #17871

🪲 Bug Fixes

  • LocalVariableTableParameterNameDiscoverer runs into UnsupportedOperationException in ClassVisitor.visitNestMemberExperimental() [SPR-17103] #21640
  • Classpath scanning on inner classes fails against JDK 11 bytecode level [SPR-17096] #21633

📔 Documentation

  • Mention asynchronous JPA bootstrapping in the reference documentation [SPR-17189] #21724
  • Update docs on RestTemplate to indicate it's superceded by WebClient [SPR-16993] #21531

5.1 RC1 Release

17 Jan 14:14

Choose a tag to compare

⭐ New Features

  • Introduce ResolvableType.toClass() shortcut [SPR-17086] #21623
  • Programmatic ObjectProvider retrieval through BeanFactory API [SPR-17075] #21613
  • Avoid repeated factory class introspection in AbstractAutowireCapableBeanFactory [SPR-17071] #21609
  • Revise ResolvableType.as for introspection performance (limiting serializability) [SPR-17070] #21608
  • Support running Kotlin Spring apps without kotlin-reflect.jar [SPR-17069] #21607
  • Use available type information in functional bean definitions for resolving FactoryBean type [SPR-17063] #21601
  • Support for null bean in functional bean registration [SPR-17057] #21595
  • WebSession/WebSessionStore API are silent on saving a session that may have been invalidated [SPR-17051] #21589
  • Hibernate 5: restore ability to inject "cacheRegionFactory" of LocalSessionFactoryBean [SPR-17043] #21581
  • Support stricter encoding of URI variables in UriComponents [SPR-17039] #21577
  • Consistent non-exposure of null beans in the BeanFactory API [SPR-17034] #21572
  • Publicly expose ResolvableType in RootBeanDefinition [SPR-17028] #21566
  • Evaluate @Cacheable(condition) once per method invocation only [SPR-17024] #21562
  • Revise ClassUtils.isPresent for exposing resolution exceptions in jlinked modules [SPR-17018] #21556
  • Add ServerResponse extensions for json, xml and html [SPR-17017] #21555
  • HibernateJpaDialect cannot translate JDBCException to custom DataAccessException [SPR-17015] #21553
  • Avoid ServerResponse static imports in WebFlux router DSL [SPR-17009] #21547
  • RestTemplate (and probably server side as well) should be able to bootstrap itself if com.sun.org.apache.xalan.* is not available [SPR-17007] #21545
  • DefaultParameterNameDiscoverer should automatically adapt to Graal constraints [SPR-17005] #21543
  • LocalSessionFactoryBean and HibernateTransactionManager for JPA EntityManagerFactory setup [SPR-17002] #21540
  • Perform explicit class checks in ReactiveAdapterRegistry [SPR-17000] #21538
  • Create HttpHeaders.setBearerAuth(String) [SPR-16997] #21535
  • Support platforms where Class is not Serializable in SerializableTypeWrapper [SPR-16992] #21530
  • Add MockClientHttpRequest.getBodyAsString [SPR-16988] #21526
  • AspectJ aspect for @javax.transaction.Transactional is not initialised by default [SPR-16987] #21525
  • Throw a specific exception when an attempt to override a bean definition is rejected [SPR-16982] #21520
  • Provide more control for setting the secure flag on the session cookie [SPR-16980] #21518
  • Spring context indexer is not designed for the Java 9 module path [SPR-16979] #21517
  • CachedIntrospectionResults should build complete descriptor for setter/getter across interface hierarchy [SPR-16978] #21516
  • StandardServletMultipartResolver should support also HTTP PUT method [SPR-16975] #21513
  • Resolved ApplicationListener event type should get cached [SPR-16970] #21508
  • SpringClassRule does not support the Arquillian MethodRuleChain [SPR-16967] #21505
  • Propagate read-only status to Hibernate Session through setDefaultReadOnly [SPR-16956] #21494
  • Create DSL for RouterFunction and RouterFunctions [SPR-16953] #21491
  • Improve logging for development (DEBUG vs TRACE) [SPR-16946] #21485
  • LinkedCaseInsensitiveMap should explicitly implement putIfAbsent and computeIfAbsent [SPR-16926] #21465
  • FilePart.transferTo should accept java.nio.file.Path [SPR-16925] #21464
  • Provide getter to expose the DispatcherServlet instance used in MockMvc [SPR-16924] #21463
  • Optimize AbstractAutowireCapableBeanFactory.populateBean(String, RootBeanDefinition, BeanWrapper) to avoid redundant Java Bean introspection [SPR-16918] #21457
  • Create HttpHeaders.setBasicAuth(String username, String password) [SPR-16913] #21452
  • Improve generic warnings when implementing BodyExtractor [SPR-16909] #21448
  • Introduce Stream support in PropertySources and PropertyValues [SPR-16894] #21433
  • Enable use of both @SendTo and @SendToUser on the same method [SPR-16891] #21430
  • MethodParameter needs to apply tighter assertions [SPR-16889] #21428
  • Revisit PropertyResolver Kotlin extensions [SPR-16883] #21422
  • Subclass-resolved generic return type declarations for handler methods [SPR-16877] #21416
  • Support for form parameters with HTTP DELETE [SPR-16874] #21413
  • WebClient.Builder option to customize every request [SPR-16873] #21412
  • Process X-Forwarded-Ssl headers properly [SPR-16863] #21402
  • Make FormHttpMessageWriter easier to extend [SPR-16855] #21395
  • No type-based error code used by immutable form class when type conversion error occurs [SPR-16854] #21394
  • Java 9: Avoid illegal reflective access warning for SpEL method reference [SPR-16845] #21385
  • Validation failure not exposed next to binding failure for immutable form class [SPR-16841] #21381
  • @DateTimeFormat annotations are necessary both on field and constructor parameter in the immutable form class [SPR-16840] #21380
  • A lite configuration class's member classes are processed when it's imported but not when it's registered directly [SPR-16839] #21379
  • PathMatchingResourcePatternResolver should enforce OS-independent sorting of directory content [SPR-16838] #21378
  • Extending ScheduledTaskRegistrar functionality [SPR-16834] #21374
  • java.nio.file.Path support in FileSystemResource (with regular createRelative behavior, superseding PathResource) [SPR-16833] #21373
  • ClassPathResource.isReadable() returns true for directory in runnable jar result in download empty file [SPR-16832] #21372
  • Apply Hibernate Integrator through LocalSessionFactoryBean [SPR-16828] #21368
  • Improve handling of unknown status codes by WebClient [SPR-16819] #21359
  • Support use of MultipartFile as input to RestTemplate or WebClient [SPR-16808] #21348
  • Improve UnsupportedMediaTypeEx...
Read more

5.0.8 Release

17 Jan 14:17

Choose a tag to compare

⭐ 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 throws java.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

📔 Documentation

  • Incorrect Class reference in documentation [SPR-17042] #21580
  • Update documentation references to Number/Currency/PercentStyleFormatter [SPR-17022] #21560
  • Doc: AsyncConfigurer causes dependencies to be created early [SPR-16945] #21484