⭐ New Features
- Support for HtmlUnit 2.19 [SPR-13686] #18261
- Implement containsKey for HttpHeaders returned from ServletServerHttpResponse [SPR-13668] #18243
- Revisit BeansException warn logging after startup failure [SPR-13663] #18238
- AbstractAutoProxyCreator.getCacheKey generate lots of String garbage [SPR-13655] #18231
- Consistent method selection for listeners and endpoint mappings [SPR-13654] #18230
@EventListener
does not work if put it at method in class that implements interface [SPR-13650] #18226- Content-Disposition with fixed file name "f.txt" causes confusion [SPR-13643] #18220
- JCache CacheResultInterceptor does not allow null values to be cached [SPR-13641] #18218
- JmsListenerEndpointRegistry - expose
@JmsListener
ids [SPR-13633] #18211 - Avoid NPE for anonymous SqlParameter in CallMetaDataContext [SPR-13628] #18206
- UriTemplate should support regex matching with n times {n} pattern [SPR-13627] #18205
- Improve and/or provide control over ETag/If-None-Match logic in HttpEntityMethodProcessor [SPR-13626] #18204
- Performance regression on startup (in particular in AnnotationUtils) [SPR-13621] #18199
- Offer public API to add default collection converters [SPR-13618] #18196
- Support Spring-WS's MessageDispatcherServlet in AbstractDispatcherServletInitializer [SPR-13616] #18194
- MockMvc: afterCompletion is never called on CallableProcessingInterceptor and DeferredResultProcessingInterceptor [SPR-13615] #18193
- Consistent warn logging without stacktrace in Portlet HandlerExceptionResolver [SPR-13611] #18189
- Add selection of compare mode for Json assertion [SPR-13607] #18185
- Inappropriate warn logging in AbstractHandlerExceptionResolver (e.g. for 404 status) [SPR-13596] #18174
- SseEmitter cannot use "send(SseEventBuilder builder)" method with custom SseEventBuilder implementation [SPR-13591] #18169
- Skip Content-Disposition header when status != 2xx [SPR-13588] #18165
- Spring JDBC not correctly processing Postgresql ?-contained operator [SPR-13582] #18159
- Incorrect
@JmsListener
parameter matching when the listener is a JDK proxy [SPR-13576] #18153 - Make CharacterEncodingFilter more friendly for use in Servlet 3.0+ environments [SPR-13572] #18148
- Compatibility with WebLogic 12.2.1 / Tyrus 1.11 [SPR-13234] #17825
- Unable to use Configuration classes in signed jar due to CGLIB [SPR-12833] #17430
🪲 Bug Fixes
@EventListener
doesn't work when@PreAuthorize
is present on any interface method implemented by the same class [SPR-13866] #18439- EventListener in a Request scoped bean fails context initialization [SPR-13681] #18256
- ScheduledTaskRegistrar's task list getters fail with NPE when no tasks set [SPR-13680] #18255
- CorsConfiguration#combine() should handle correctly * in "other" parameter [SPR-13674] #18249
- ShallowEtagHeaderFilter.setContentLength causes an error when rendering a jsp which performs an include: [SPR-13671] #18246
- SimpleJdbcCall does not throw an Exception for a missing stored procedure if the name does not contain "." [SPR-13669] #18244
- AbstractApplicationContext.isRunning throws IllegalStateException when called too early [SPR-13667] #18242
- CommonsMultipartFile.getOriginalFilename() does not strip file path properly [SPR-13662] #18237
- SerializableTypeWrapper.MethodInvokeTypeProvider can be exploited for unsafe deserialization [SPR-13656] #18232
- CommonsMultipartResolver.setMaxUploadSizePerFile() does not work if encoding does not match the default encoding [SPR-13653] #18229
- Setting StandaloneMockMvcBuilder.useSuffixPatternMatch = false does not work [SPR-13637] #18214
- IllegalArgumentException when using AnnotationUtils.findAnnotation [SPR-13634] #18212
- Content-Disposition added for
@ResponseBody
methods explicitly mapped to ".html" or other extensions [SPR-13629] #18207 - webjars resource handling may run into NPE in JarURLInputStream [SPR-13620] #18198
- UndertowRequestUpgradeStrategy not compatible with WildFly anymore [SPR-13619] #18197
- AbstractJdbcCall's compiled variable should be declared as volatile [SPR-13617] #18195
- Autowiring throws NullPointerException [SPR-13599] #18177
- Content-Disposition header causes download in browser for Spring Boot Actuator endpoints [SPR-13587] #18164
- mvc:view-resolvers does not reliably find declared ContentNegotiationManager [SPR-13559] #18135
- Unable to intercept methods with mixed enum types as varargs [SPR-13328] #17913
📔 Documentation
- Error in RequestEntity's javadoc [SPR-13666] #18241
- Clarify javadoc for ContentNegotiationConfigurer's ignoreAcceptHeader [SPR-13642] #18219
- Explain when to use MediaType constants [SPR-13531] #18108
- Explain when and why use Jaxb2RootElementHttpMessageConverter vs MarshallingHttpMessageConverter [SPR-13530] #18107
- Update reference documentation for spring JSP Tag Library [SPR-13520] #18097
- Improve documentation about CookieLocaleResolver vs SessionLocaleResolver [SPR-13505] #18083
- Revisit remaining XmlBeanFactory usage in reference documentation [SPR-13485] #18064
- Fix cron trigger example in reference documentation [SPR-10474] #15107
- Documentation example miss
@EnableScheduling
[SPR-10448] #15081 - Provide better documentation for support of JSR-330 (
@Inject
) [SPR-7858] #12515