v5.3.10
⭐ New Features
- Invalid JavaBean property 'logoutHandlers' being accessed (warning in the logs for Spring Security's ConcurrentSessionFilter) #27372
- Convenient configuration of type permissions for XStream 1.4.18 #27343
- Add SmallRye Mutiny support to ReactiveAdapterRegistry #27331
- Introduce
ExceptionCollector
testing utility #27316 - Support
TimeUnit
in the@Scheduled
annotation #27309 - Make it possible to determine if circular references are prohibited or if the cycle just couldn't be broken #27289
- Support Charset for character encoding in MockMvc #27231
- Support default character encoding for response in MockMvc #27230
- Introduce
setDefaultCharacterEncoding()
inMockHttpServletResponse
#27214 - Use MessageSource for
@ExceptionHandler
methods #27203 - ResponseStatusException.initCause always throws IllegalStateException #27196
- Introduce soft assertions for WebTestClient #26969
- Introduce soft assertions for MockMvc #26917
- Blockhound flags a blocking call when WebFlux serves a static resource #26631
- Optimize memory allocations in StringUtils#cleanPath #26316
- InvocableHandlerMethod calls makeAccessible(getBridgedMethod()) on every call [SPR-15230] #19795
🐞 Bug Fixes
- Support char, float, and double primitive default values in BeanUtils.instantiateClass() #27390
- Fix memory leak on AOP Proxy class definition cache #27375
- Fix response body missing 1st byte inside UnknownContentTypeException #27374
- CommonsMultipartResolver and DEBUG logging lead to empty fileMap in MultipartHttpServletRequest #27350
- Fix UrlPathHelper#shouldRemoveSemicolonContent() #27303
- CompositeUriComponentsContributor#hasContributors: method name is not compliant with its intention #27271
- Error with formatMapping method in AbstractMethodMessageHandler.java #27247
- Apply default
ResultHandler
s before defaultResultMatcher
s inMockMvc
#27225 MockHttpServletResponse.characterEncoding
should not be@Nullable
#27219- WebSocketMessageBrokerStats.getExecutorStatsInfo() throws exception if Executor is not a ThreadPoolExecutor #27209
HtmlUnitRequestBuilder
ignores file uploaded viaHtmlFileInput.setData()
#27199
📔 Documentation
- Fix wording in Javadoc of ClientResponse.mutate() #27389
- Fix some typos and mistakes in docs #27388
- Fix misplaced comma in AOP doc #27387
- Fix Kotlin example for filtering handler functions #27337
- Document when
prepareTestInstance()
is invoked when using theSpringMethodRule
#27305 - Fix duplicated "the" occurrences in Javadoc and XSD #27291
- Fix typo in DefaultPartHttpMessageReader #27260
- Fix reference to Optional.isPresent() in ObjectUtils.isEmpty() #27223
- Clarify that ClientRequest.from(..) also copies body #27220
@Cacheable
caches empty Optionals but documentation states otherwise #27184- Reference docs missing left-hand side navigation #27177
🔨 Dependency Upgrades
- Compatibility with Jackson 2.13 #27206
- Upgrade to JUnit 5.8 #27392
- Upgrade to Kotlin 1.5.30 #27371
- Upgrade to Reactor 2020.0.11 #27399
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
- @leeseojune53
- @AlexejTimonin
- @joshua-qa
- @marschall
- @hantsy
- @juchanei
- @izeye
- @takeaction21
- @yokotaso
- @gushev
- @Yin-Jui
- @evpaassen
- @matvs
- @crlikcngroup
- @ydh6226
- @knittl
- @Inmord
- @benelog
- @Axzial
- @quaff
- @di72nn
- @aoudiamoncef
- @lyxell
- @mustafau
- @xak2000
- @manish-in-java
- @wyhasany
- @GrantFleming
- @w3-3w
- @Syuziko