⭐ New Features
- Avoid illegal reflective access in ContextOverridingClassLoader.isEligibleForOverriding #30868
- Improve diagnostics for CGLIB ClassLoader issues with shared classes in parent ClassLoader #30866
JdbcTemplate
does not callhandleWarnings
in case of exception #30852- Tolerate
AnnotationUtils.isCandidateClass
call withnull
as annotation type #30843 - Simplify
DefaultSingletonBeanRegistry.isDependent()
#30841 - Provide explicit support for collections, maps, and arrays in
ObjectUtils.nullSafeConciseToString()
#30811 - Extend list of supported types in
ObjectUtils.nullSafeConciseToString()
#30806 - Align ConcurrentMapCacheManager locking behavior with CaffeineCacheManager #30781
ResolvableType.hasUnresolvableGenerics()
should cache its result #30715- Ensure Spring
LogFactory
contains all public methods from ApacheLogFactory
#30711 - Translate SQL Exception with State S0001 and Vendor Code 2628 to a Spring Exception in MSSQL 2019 #30682
🐞 Bug Fixes
- For a prototype bean, if first-time rejected value is null, subsequent value will wrongly be null always #30809
- Revert changes to
toString()
inFieldError
#30800 - Fix log level on error with
@TransactionalEventListener
#30784 - SerializableTypeWrapper does not consistently catch InvocationTargetException #30767
- NPE in MvcUriComponentsBuilder with no-arg target method on interface #30757
Jackson2ObjectMapperBuilder
breaks whenmodules
customizer followsmodulesToInstall
#30752- Spring ORM SpringBeanContainer when trying to create a bean fails with not found bean definition, and fallbacks to default hibernate bean creation #30685
📔 Documentation
- ResultSet holdability into the View layer broken by Hibernate 5 #30863
- Clarify
ReactiveTransactionManager
exception declarations #30819 - Doc:
JdbcTransactionManager
vsDataSourceTransactionManager
#30814
🔨 Dependency Upgrades
- Upgrade to Reactor 2020.0.34 #30873