⭐ New Features
- Avoid JNDI property lookup attempts for invalid JNDI keys [SPR-14518] #19087
- Cache limit for destination cache in SimpleBrokerMessageHandler can't be altered [SPR-14516] #19085
- HeaderContentNegotiationStrategy does not support multiple Accept headers [SPR-14506] #19075
- Non-helpful NoSuchBeanDefinitionException rather than BeanNotOfRequiredTypeException due to creation order [SPR-14504] #19073
- DataSource adapters should expose setCatalog/setSchema next to setUsername/setPassword [SPR-14501] #19070
- GenericSqlQuery configured with RowMapper instance [SPR-14489] #19058
- SerializableTypeWrapper should reobtain type accessors from declaring interface [SPR-14487] #19056
- Avoid dependency on WebUtils for extracting file extension [SPR-14479] #19048
- Workaround for Hibernate bug: setCurrentTenantIdentifierResolver not respected [SPR-14476] #19045
- Missing tests for async request handling with StreamingResponseBody [SPR-14456] #19025
- Hibernate5 LocalSessionFactoryBean does not translate javax.persistence exceptions [SPR-14455] #19024
- UrlPathHelper in PathExtensionContentNegotiationStrategy should be configurable [SPR-14454] #19023
@RequestMapping
consumes/produces InvalidMediaTypeException should mention offending class & method [SPR-14452] #19021- AnnotationMetadataReadingVisitor does not honour
@AliasFor
[SPR-14437] #19008 - Add PathEditor to enable conversion to java.nio.file.Path [SPR-14436] #19007
- Avoid canonicalName call for already-seen bean name [SPR-14433] #19004
- When I try to acquire MD5 using DigestUtils, java.lang.OutOfMemoryError occurs. [SPR-14427] #18998
🪲 Bug Fixes
- Do not fail with a circular
@Import
error caused by an@ComponentScan
[SPR-14517] #19086 - Transaction manager bean in TransactionInterceptor retained after JUnit test class completes [SPR-14511] #19080
- LinkedCaseInsensitiveMap doesn't override HashMap.clone() [SPR-14509] #19078
- ResourcePatternUtils.getResourcePatternResolver does not accept null arg [SPR-14500] #19069
- Mis-proxying of Mockito mock and poor diagnostics for type mismatch on proxy injection [SPR-14478] #19047
- NPE while try to use abstract beans with optional properties [SPR-14474] #19043
- Jackson 2.6.x -> 2.7 deserialize generic fails when calling Spring controller [SPR-14470] #19039
- MessageHeaderAccessor doesn't remove headers if they are null [SPR-14468] #19037
- Ineffective synchronization in StandardTypeConverter constructor [SPR-14465] #19034
- CronSequenceGenerator causes StackOverflowError with reversed range values [SPR-14462] #19031
- MultipartResolutionDelegate in Servlet 2.5 environments not working correctly [SPR-14461] #19030
- Flush exception translation not working anymore with Hibernate 5.2 [SPR-14457] #19026
- MethodBasedEvaluationContext.lazyLoadArguments() execution fails for empty variable arguments call [SPR-14453] #19022
- Regression: TestContextManager no longer tracks after-class exception with log level lower than WARN [SPR-14447] #19017
- NoOpCacheManager and
@Cacheable
(sync=true) [SPR-14445] #19015 - SSE: Terminating chunk not sent using tomcat >= 8.0.35 [SPR-14444] #19014
- HibernateTemplate not binary-compatible with Hibernate 5.0/5.1's Query type [SPR-14425] #18996
- ConfigurationClassParser needs to load annotations through source class loader [SPR-10343] #14977
📔 Documentation
- Documentation still favoring velocity but it is deprecated in 4.3 [SPR-14460] #19029