⭐ New Features
- CorsConfiguration checkHeaders wildcard ALL should allow matching empty strings header [SPR-14617] #19184
- AsyncRestTemplate changes in SPR-13413 made its harder to detect Client/Server errors [SPR-14353] #18925
- Allow method inlining of ObjectUtils.nullSafeEquals() [SPR-14349] #18921
- SpringHandlerInstantiator should support all HandlerInstantiator-provided factory methods [SPR-14347] #18919
- Caching annotation on interface are ignored when cglib proxies are used [SPR-14343] #18915
- FormHttpMessageConverter should use configured charset (by default UTF-8) for "text-plain" MIME part conversion as well [SPR-14338] #18910
- Jackson2ObjectMapperBuilder/FactoryBean should accept deserializers by handled type as well [SPR-14337] #18909
- Support for Hibernate ORM 5.2 [SPR-14327] #18899
- Consistent Error handling in MessageChannel implementations [SPR-14323] #18895
- Allow constructor injection at CompositeDatabasePopulator [SPR-14313] #18885
- AcceptHeaderLocaleResolver should allow to define a default Locale [SPR-14312] #18884
- Spring Web should process requests with empty/invalid mime type [SPR-14309] #18881
- MockRestServiceServerBuilder cannot be cached [SPR-14306] #18878
- negating specific media type in RequestMapping causes requests with no Accept header to fail [SPR-14299] #18871
- All SockJS fallback options fail if request.getRemotePort() is not forwarded by proxy [SPR-14295] #18867
@ExceptionHandler
should match cause as well (e.g. for exception thrown from argument formatter) [SPR-14291] #18863- Poor comparison for ContentRequestMatchers#bytes [SPR-14281] #18853
- SimpleBrokerMessageHandler makes an assertion about the type of the MessageHeaderAccessor, but doesn't seem to care [SPR-14279] #18851
- Apply
@SafeVarargs
at MockRestRequestMatchers#header [SPR-14278] #18850 - ForwardedHeaderFilter could support X-Forwarded-Prefix as well [SPR-14270] #18842
- JettyWebSocketSession.send*Message() can throw Jetty-specific WebSocketException instead of IOException [SPR-14267] #18839
- MockMvcWebConnection should update cookie manager with MockHttpServletResponse cookies [SPR-14265] #18837
- Add database product name for SAP HANA [SPR-14261] #18833
- DefaultPersistenceUnitManager.determineDefaultPersistenceUnitRootUrl fails when run from a shaded jar [SPR-14246] #18819
- Add option to log headers to AbstractRequestLoggingFilter [SPR-14245] #18818
- BeanPropertyRowMapper should use ConversionService for date-time support [SPR-13888] #18461
- SpEl does not support conjunction (&&) and disjunction (||) logic [SPR-7652] #12308
🪲 Bug Fixes
- Different error codes on same formatter registered in different ways [SPR-14345] #18917
- AllEncompassingFormHttpMessageConverter ignores JAXB XML when Jackson used for JSON [SPR-14336] #18908
- Race condition in handling of
@Lookup
annotation [SPR-14333] #18905 - EventListenerMethodProcessor resolves classes (by MethodIntrospector) of lazy beans causing NoClassDefFoundError [SPR-14330] #18902
- After-completion callback not triggered for custom Throwable subclass [SPR-14329] #18901
- Headers were lost when returning a null StreamingResponseBody within a ResponseEntity [SPR-14315] #18887
- ConcurrentMapCacheManager's storeByValue does not pick up ClassLoader [SPR-14314] #18886
- Cannot put tiles:definition inside tiles:putAttribute [SPR-14311] #18883
- SettableListenableFuture.setException(Throwable) doesn't work for Error [SPR-14298] #18870
@MatrixVariable
Map<String, String> params [SPR-14294] #18866- StringIndexOutOfBoundsException when calling BeanWrapperImpl.setPropertyValue("[']", "foobar") [SPR-14293] #18865
@Bean
not detected in extended interface [SPR-14288] #18860- Scheduled tasks aren't cancelled on ScheduledTaskRegistrar destruction anymore [SPR-14286] #18858
- markBeanAsCreated does not clear merged bean definition in a thread-safe fashion [SPR-14269] #18841
- Memory leak on STOMP broker connections that fail before heartbeats start [SPR-14266] #18838
- Meta-
@Conditional
lookup does not work consistently with ASM [SPR-14257] #18829
📔 Documentation
- Doc: Constructor injection of arrays and collections [SPR-14332] #18904
- Improve reference documentation for Task Execution and Scheduling about bean scopes [SPR-14167] #18739
- Reference Documentation: Why does not exist an XML configuration version for
@Async
? [SPR-14164] #18736 - Document composed annotations for
@RequestMapping
in the reference manual [SPR-13995] #18568 - Document composed annotations for web scopes in the reference manual [SPR-13994] #18567
- Doc:
@RestController
works only with RequestMappingHandlerAdapter [SPR-13945] #18517 - Document TestContext bootstrap strategy in the reference manual [SPR-11683] #16306
- MultipartFilter documentation [SPR-11373] #16000