Spring v5.3.2 Release Notes
Release Date: 2020-12-09 // almost 4 years ago-
π± β New Features
- π§ Refine ConfigurationClassPostProcessor behavior in native images #26236
- π² Ability to correlate ByteBuf leak records to log messages for a specific request #26230
- π§ Avoid CGLIB proxies in websocket/messaging configuration #26227
- ContentCachingResponseWrapper should not add βContent-Lengthβ when βTransfer-Encodingβ is present #26182
- π Allow customization of file extension to media type map for WebFlux static resources #26170
- π§ Register bean definition dependencies when used via configuration class injected fields #26167
- π Print helpful information in RSocket MetadataExtractor #26130
- β Add ResponseSpec#toEntityFlux overload that accepts BodyExtractor #26114
- Wildcard is a valid Access-Control-Expose-Headers value #26113
- β¬οΈ Reduce overhead of char[] creation #26101
- EntityManagerFactory startup failure in deferred mode is only available on first use #26093
- β
@DynamicPropertySource
is not supported via@NestedTestConfiguration
semantics #26091 - Introduce and() methods in MethodFilter and FieldFilter for composite filters #26063
- Kotlin extensions for WebClient.ResponseSpec #26030
- β
Validate that JUnit Jupiter test methods and lifecycle methods are not annotated with
@Autowired
#25966 - β Add support for SSE to WebMvc.fn #25920
- Template URI Variables with newline %0A or %0D are not matched #23252
π± π Bug Fixes
- AsyncServerResponse interoperability issue with path variables #26239
- β Remove duplicate "property" in PropertyCacheKey.toString() #26237
- DataBuffer Leak in Server Response #26232
- Wrong HttpServletMapping used on INCLUDE in UrlPathHelper.skipServletPathDetermination #26216
- π€‘ MockMvc ignores MultipartFile registrations when both files and parts are registered #26166
- cannot resolve
ServerRequest::pathVariable
in nestedRequestPredicate
#26163 - ConcurrentModificationException in NativeMessageHeaderAccessor#copyHeaders #26155
- AbstractServerHttpRequest constructor breaks binary compatibility between 5.2.x and 5.3.x #26151
- π Refine kotlinx.serialization support #26147
- MimeType is no longer actually serializable #26127
- β Resttemplate throws NPE with spring-boot-starter-log4j2 within tests #26120
- β‘οΈ Update default for favorPathExtension to match Javadoc and as intended for 5.3 #26119
- β¬οΈ Spring Boot 2.4 upgrade breaks injection of Principal #26117
- NoSuchMethodError in UrlPathHelper.skipServletPathDetermination #26112
- π Support allowedOriginPatterns in SockJS config #26108
- PathMatchingResourcePatternResolver fails to resolve resources from JAR located in path with '#' on JDK 11+ #26104
@Transactional
causes casting error for suspending function on Spring MVC #26092- π UrlPathHelper#removeJsessionid doesn't remove the jsessionid from the URL #26079
- β‘οΈ NamedParameterJdbcTemplate.batchUpdate does not individually apply the SQL type from each SqlParameterSource argument #26071
- Missing error status handling for
toEntityFlux
methods inWebClient
#26069 - π DataBufferUtils#join may release a DataBuffer more than necessary #26060
- π» FlightRecorderApplicationStartup exception on processing Http Request #26057
- WebMvc.fn: ServerResponse.async does not handle exceptions as expected #25931
- Non-compliant Content-Type header for multipart media types #25885
- π ResponseEntity Exception Handling Issues #25490
π Documentation
- Clarify intended advice execution behavior in Spring version 5.2.7+ #26202
- 0οΈβ£ DateTimeFormat ISO.DATE_TIME javadoc contains misleading default note #26134
- Spring EntityManager proxy is incompatible with Hibernate Search <5.11.6 (FullTextEntityManager instantiation fails with ClassCastException) #26090
- Null passed in required
@RequestParam
now fails #26088 - π Mention security consideration in ForwardedHeaderFilter javadoc #26081
- β Add cron expression documentation #26067
- β‘οΈ Update javax.mail reference to jakarta.mail #25855
- Mechanism to access request bound objects in WebClient filter in servlet env #25710
- Document that
@Transactional
does not propagate to new threads #25439
β¬οΈ π¨ Dependency Upgrades
- β¬οΈ Upgrade to Kotlin Coroutines 1.4.2 #26226
- β¬οΈ Upgrade to Reactor 2020.0.2 #26176
- β¬οΈ Upgrade to Kotlin 1.4.21 #26132
π± β€οΈ Contributors
π We'd like to thank all the contributors who worked on this release!
Previous changes from v5.3.1
-
π± β New Features
- π¦ Expose a public method "isClosed" to indicate whether the connection has been closed in WebSocketSession (WebFlux) #26043
- WebFlux missing programmatic handling of MappingJacksonValue #26035
- β‘οΈ Optimize locking in AspectJProxyFactory for concurrent aspect instantiation #26034
- β‘οΈ Upgrade SpelCompiler bytecode level to 1.8 and optimize for concurrent access #26033
- π MergedAnnotationCollectors.toAnnotationSet() should not create intermediate ArrayList #26031
- SpEL doesn't work nicely with records #26029
- π StompSubProtocolHandler logs failed authentication with error stack trace #26026
- π¦ Expose toEntityFlux methods in WebClient.ResponseSpec #26023
- π Improve AdvisedSupport.getAdvisors() #26017
- π Improve URI/query strings sanitization #26012
- 0οΈβ£ DefaultSimpUserRegistry prevents event from being published if original SimpMessageHeaderAccessor cannot be found #26010
- 0οΈβ£ DefaultWebClientBuilder copies references #25992
- Inefficient request handling inside ServletRequestDataBinder #25986
- Avoid multiple volatile reads/writes in a row where only one is enough #25899
- π Allows Jackson2 encoders to log Throwable reason for not being able to serialize or deserialize #25892
- Mechanism to access request bound objects in WebClient filter in servlet env #25710
π± π Bug Fixes
- Cannot be cast to class Publisher error with non suspending
@Transactional
functions #26052 - π Fix wrong reference in UrlPathHelper.removeSemicolonContentInternal() #26050
- β± setTaskScheduler in StompBrokerRelayRegistration breaks chaining #26049
- β Add FullyQualifiedAnnotationBeanNameGenerator.INSTANCE #26025
- Autowiring does not work reliably in case of dynamically changing prototype bean class #26019
- β Order of profiles in tests is not preserved #26004
- βͺ
@Transactional
on suspending function returning a value always rollbacks #25998 - π SseEmitter: connection closed after first event #25987
@Nonnull
annotation breaks ServletRequestMethodArgumentResolver for Principal #25981- Spring MVC's locale resolver can no longer be customized in parent context #25290
π Documentation
- π Fix kotlin example code which does not compile #26016
- π Fix a broken Asciidoctor syntax in core-resources.adoc #25999
π± β€οΈ Contributors
π We'd like to thank all the contributors who worked on this release!