Release Notes - Spring Framework - Version 5.0 RC4 - HTML format

Bug

  • [SPR-14603] - Invalid WARN when returning a BeanDefinitionRegistryPostProcessor from within a @Configuration class
  • [SPR-15584] - High percent of failures (timeout) under load from server-side WebClient requests
  • [SPR-15790] - WebClient.post() not sending complete Flux on Windows
  • [SPR-15802] - Logs fill with broken pipe when using SockJS
  • [SPR-15810] - TemplateAwareExpressionParser.parseExpression does not accept null ParserContext anymore
  • [SPR-15816] - AbstractCodecConfigurer creates Jackson Encoders/Decoders each time when getters are called
  • [SPR-15820] - [Kotlin] Warning message about private final methods.
  • [SPR-15822] - Setting user header on CONNECT message stopped working
  • [SPR-15823] - AnnotationAwareOrderComparator doesn't handle null values anymore
  • [SPR-15828] - Parameter values are null when making a PUT request
  • [SPR-15834] - Regression after URI template support added to MockMvcResultMatchers
  • [SPR-15838] - SimpleApplicationEventMulticaster does not deal with lambda-defined listeners when ErrorHandler is set
  • [SPR-15839] - SpringValidatorAdapter fails to retrieve value for Bean Validation 2.0's "<list element>" literal
  • [SPR-15845] - FileSystemUtils.copyRecursively no longer replaces existing files
  • [SPR-15846] - FileSystemUtils.deleteRecursively always returns false
  • [SPR-15851] - Kotlin bean instantiation regression with default declared constructor
  • [SPR-15860] - Reactive GET request query-params are not decoded correctly. + sign must be space.
  • [SPR-15866] - Jackson2JsonEncoder and Jackson2JsonDecoder should use provided mime types
  • [SPR-15867] - Should call getNativeResponse() instead of getNativeRequest() in FrameworkServlet
  • [SPR-15869] - Fix overridden methods nullability
  • [SPR-15875] - DefaultWebSessionManager requires DefaultWebSession
  • [SPR-15890] - no dependencyManagement in spring-framework-bom
  • [SPR-15895] - SimpleAsyncTaskExecutor not respect ConcurrencyThrottleSupport.NO_CONCURRENCY limit
  • [SPR-15900] - StringIndexOutOfBoundsException from RestTemplate.doExecute IOException handler when query string is empty
  • [SPR-15907] - ExceptionHandlerMethodResolver loses all handler methods
  • [SPR-15910] - WebFlux incorrectly falls back to application/json for method that produces application/octet-stream and returns ResponseEntity<Object>
  • [SPR-15916] - Error on type argument constraint validation failure
  • [SPR-15932] - spring-framework-bom lists unpublished spring-build-src module
  • [SPR-15937] - StompDecoder Logs Null Session IDs for Heartbeats

Improvement

  • [SPR-15532] - Consistent overriding for all variants of init/destroy method inheritance
  • [SPR-15541] - Leveraging kotlin-reflect to determine interface method parameters
  • [SPR-15542] - BindingResult support for constructor argument mismatch on immutable data object
  • [SPR-15764] - ExchangeFilterFunctions Explicit Model For Basic Authentication Credentials
  • [SPR-15795] - Media type fails to match types with multiple '+' characters
  • [SPR-15815] - Avoid requiring it lambda parameter in Kotlin bean DSL
  • [SPR-15817] - Add ParameterizedTypeReference method variants to ServerRequest/ServerResponse
  • [SPR-15818] - Use ParameterizedTypeReference instead of Class in Kotlin extensions
  • [SPR-15819] - URI variables with MockRestRequestMatchers's requestTo
  • [SPR-15824] - WebClientException should allow access to status code of the response
  • [SPR-15825] - Consistent logging in Environment and PropertySource implementations
  • [SPR-15829] - Autowire contract is not honored in cases where FactoryBean or @Bean return null
  • [SPR-15831] - MockMvc doesn't honor params in RequestMapping when no equal sign
  • [SPR-15841] - BeanDefinitionBuilder method arguments not annotated with @Nullable
  • [SPR-15847] - Add support for Kotlin autowired constructor with optional parameters
  • [SPR-15852] - WebAsyncManager should cancel task thread on timeout
  • [SPR-15858] - @Lazy collection of optional elements should not crash when no candidates are found
  • [SPR-15871] - Immutable object constructor arguments not considering WebDataBinder's FIELD_MARKER_PREFIX
  • [SPR-15876] - Provide hook in DefaultWebSessionManager to support creating custom WebSession implementation
  • [SPR-15887] - WebFlux @MVC Controllers do not support @SessionAttributes. (plus SessionStatus)
  • [SPR-15908] - Enable by default HTTP compression support in Reactor WebClient
  • [SPR-15914] - WebClient - add option to disable chunked transfer
  • [SPR-15917] - Introduce header-based WebSessionIdResolver
  • [SPR-15920] - Ensure that WebClient disposes the HTTP client connection once the client response is consumed
  • [SPR-15923] - Provide hierarchy traversal support for getBeanNamesForAnnotation

New Feature

  • [SPR-15789] - Support range requests for Spring MVC request mapped methods that return a Resource

Refactoring

  • [SPR-15826] - Remove BodyInserters.fromServerSentEvent variants
  • [SPR-15880] - Merge EhCache 3 tests into spring-context-support
  • [SPR-15924] - Consider moving ServerHttpResponse encodeUrl / registerUrlEncoder to ServerWebExchange?

Task

  • [SPR-15548] - Upgrade to Jackson 2.9 GA
  • [SPR-15549] - Upgrade to Reactor 3.1 RC1 (including Reactive Streams 1.0.1)
  • [SPR-15659] - Add documentation for Kotlin support
  • [SPR-15667] - Upgrade to Gradle 4.1 for clean JDK 9 build compatibility
  • [SPR-15737] - Upgrade to JUnit 5.0 GA
  • [SPR-15798] - Make DataBufferUtilsTests#writeAsynchronousFileChannel reliable
  • [SPR-15808] - Compatibility with Hibernate Validator 6.0 GA
  • [SPR-15814] - Upgrade to Kotlin 1.1.4
  • [SPR-15837] - Upgrade to JUnit Jupiter 5.0 RC2
  • [SPR-15848] - Upgrade to JUnit Jupiter 5.0 RC3
  • [SPR-15862] - Fix Eclipse support in Gradle build
  • [SPR-15863] - Token-based WebSocket Authentication Documentation Inaccuracy
  • [SPR-15870] - Compatibility with EclipseLink 2.7
  • [SPR-15872] - Typo in matrix variable example
  • [SPR-15879] - Upgrade to Servlet API 4.0 for MVC (PushBuilder and Servlet mocks)
  • [SPR-15885] - Reorganize Gradle build
  • [SPR-15888] - Build failing with Sonar
  • [SPR-15906] - CONTRIBUTING-DOCUMENTATION.adoc still refers to the reference gradle task
  • [SPR-15912] - Is "bodyToEntity" reference incorrect in the org.springframework.web.reactive.function.client.WebClient.RequestHeadersSpec<S> Javadoc?
  • [SPR-15930] - Ensure spring-jcl is used in the generated Eclipse classpath instead of commons-logging

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.