⭐ New Features
- AsyncRestTemplate should wrap RuntimeExceptions in ExecutionException [SPR-13413] #17992
- DefaultDeserializer should use ConfigurableObjectInputStream [SPR-13409] #17988
- Support transitive implicit attribute aliases with
@AliasFor
[SPR-13405] #17985 - SimpleAliasRegistry should detect circles between non-canonical aliases as well [SPR-13390] #17971
- Method lookup doesn't allow for overriding definitions in parent bean [SPR-13388] #17969
- VersionResourceResolver should add ETag headers when resolving resources [SPR-13382] #17963
- Support CALL Statement for SAP HANA [SPR-13381] #17962
- Quote if necessary Etags set with ResponseEntity builder API [SPR-13378] #17960
- Introduce hook for creating a custom BeanPropertyBindingResult in DataBinder [SPR-13373] #17955
- Log connection URL for embedded databases [SPR-13370] #17954
- Add 'preparer-factory' attribute to mvc:tiles-configurer/ [SPR-13363] #17947
- Add Jdk7Module to Jackson2ObjectMapperBuilder's well known modules [SPR-13354] #17938
- Introduce JsonPath matchers for empty and non-empty content [SPR-13352] #17936
- Avoid ambiguous property warning for setter methods with multiple parameters [SPR-13349] #17933
- Revisit RedirectView's use of getCurrentWebApplicationContext() [SPR-13346] #17930
- Support implicit attribute aliases with
@AliasFor
[SPR-13345] #17929 - Introduce SmartMessageConverter interface with conversionHint arguments [SPR-13343] #17927
- StompSubProtocolHandler should send SessionSubscribeEvent after ChannelSecurityInterceptor has validated access rights [SPR-13339] #17924
- Provide a SpringConstraintValidatorFactory variant for use with validation.xml [SPR-13327] #17912
- BeanPropertyRowMapper should log if mapRow doesn't find a PropertyDescriptor [SPR-13323] #17908
- Introduce additional JsonPath matchers in Spring MVC Test [SPR-13320] #17905
- File upload with Servlet 3 multipart requests should support filename with charset encoding (RFC 2231) [SPR-13319] #17904
- Deprecate JdkVersion (for optimistic compatibility with newer JDK generations) [SPR-13312] #17897
- UriComponents should support URI variables that contain a regex [SPR-13311] #17896
- HibernateJpaDialect should warn about connection release mode other than ON_CLOSE (when upgrading from 4.0.x) [SPR-13269] #17860
- Support for JSR-356 WebSockets on WebSphere Liberty Profile [SPR-12367] #16973
🪲 Bug Fixes
- MethodValidationPostProcessor fails for certain generic method signatures when running against Hibernate Validator 5 [SPR-12237] #22186
- Spring response handler returning abstract object drops unique fields from concrete class [SPR-13429] #18008
- Regression: BeanWrapperImpl.getPropertyDescriptor does not allow nested paths [SPR-13403] #17983
- ServletWebRequest.checkNotModified attempts to call HttpServletResponse.getStatus() on Servlet 2.5 [SPR-13396] #17976
- ScopedProxyMode resolution for custom scope meta-annotation not working with
@Bean
methods (with ASM-based scanning) [SPR-13394] #17974 - MessageHeaders mutable through Map.Entry.setValue() [SPR-13385] #17966
- Cannot set a Content-Type using ScriptTemplateView [SPR-13379] #17961
- Regression: SpringHandlerInstantiator breaks stand-alone support in the MVC Test framework [SPR-13375] #17957
- ResourceUrlProvider should only consider paths and not request parameters [SPR-13374] #17956
- JsonPath assertions fail to differentiate between definite and indefinite results in checks for existence [SPR-13351] #17935
- Default value of CommonsPool2TargetSource#maxWait is incorrect [SPR-13350] #17934
- ResponseBodyEmitter doesn't get headers written immediately [SPR-13341] #17925
- AnnotationUtils fails to synthesize nested maps into annotations [SPR-13338] #17923
- AnnotationUtils fails to throw exception if meta-annotation is not present [SPR-13335] #17921
- Race condition when inbound message handling fails and StompSubProtocolHandler sends ERROR frame [SPR-13326] #17911
@AliasFor
potentially overrides attribute in wrong meta-annotation [SPR-13325] #17910- SocketUtils does not properly detect available port on localhost [SPR-13321] #17906
- Jackson 2.6: message converter should use type only for collections [SPR-13318] #17903
- Multipart request tests fail when enabling spring security [SPR-13317] #17902
- MockHttpServletRequest returns empty cookies array instead of null if instance is built using MockHttpServletRequestBuilder [SPR-13314] #17899
- AllEncompassingFormHttpMessageConverter prioritizes Jackson 2 XML over JSON [SPR-13309] #17894
- Regression: PropertiesFactoryBean values do not get converted to target type without ConversionService [SPR-13256] #17847
📔 Documentation
- Add a section about HttpMessageConverter customization in the reference documentation [SPR-13411] #17990
- Misleading note on readonly and disabled flags in spring-form.tld [SPR-13397] #17977
- [doc] Document use of
@Transactional
on controller via@MessageMapping
[SPR-13384] #17965 - [doc] Update Javadoc on RestTemplate/AsyncRestTemplate to highlight supported HTTP client libraries [SPR-13313] #17898
- Document selenium-htmlunit-driver dependency [SPR-13299] #17889