⭐ New Features
- Improve exception when failing to create a specific bean due to a NoClassDefFoundError [SPR-14883] #19449
- ApplicationListenerDetector should ignore non-managed bean instances [SPR-14879] #19445
- Sockjs XHR Fallback on already existing WebSocketServerSockJsSession [SPR-14867] #19433
- Use String.intern() for Annotation and Class scanning [SPR-14862] #19428
- Log exception from
@ExceptionHandler
at higher level than debug [SPR-14861] #19427 - Possibility to use org.springframework.cache.support.NoOpCacheManager.NoOpCache as public class as NoOpCacheManager [SPR-14856] #19422
- TransactionStatus.flush() should trigger TransactionSynchronization.flush() when using DataSourceTransactionManager [SPR-14847] #19413
- Make HttpComponentsAsyncClientHttpRequest abortable [SPR-14845] #19411
- AnnotationFormatterFactory should support
@AliasFor
[SPR-14844] #19410 - Type information not available on NoSuchBeanDefinitionException for collections [SPR-14831] #19397
- ResolvableType equals method should not consider TypeProvider source [SPR-14826] #19392
- GenericConversionService.addConverter should be able to determine generic types from target class behind proxy [SPR-14822] #19388
- Allow type produced by ScopedProxyFactoryBean to be determined before singleton is created [SPR-14816] #19382
- Hibernate 5 LocalSessionFactoryBean should allow for dynamic mapping registration (like for Hibernate 4) [SPR-14815] #19381
- IllegalArgumentException: HttpEntity parameter 'null' [SPR-14799] #19365
- Better encapsulate and Javadoc CORS configuration defaults [SPR-14798] #19364
- StompSubProtocolHandler makes the same assumption about header accessor as SimpleBrokerMessageHandler used to [SPR-14791] #19357
- Inner bean behind BeanFactoryPostProcessor should be able to receive application events [SPR-14783] #19349
- Reduce String allocations in TransactionAspectSupport.methodIdentification() [SPR-14760] #19326
- Improve performance of StompEncoder.encode() [SPR-14747] #19313
- Netty4ClientHttpRequestFactory should configure a default SslContext [SPR-14744] #19310
- Default async timeout handling results in Logged Exception for Tomcat 8.5.x [SPR-14739] #19305
- YAML + PropertyPlaceholderConfigurer needs to process non-String values as well [SPR-14737] #19303
- Method getMergedProperties in ReloadableResourceBundleMessageSource does not set fileTimestamp [SPR-14583] #19152
- Allow customization of TestDispatcherServlet when using
@MockMvcTest
[SPR-14277] #18849 - context:property-placeholder should accept comma-separated list as placeholder value for its location attribute [SPR-10502] #15135
- BindingResult should not hold on to ConversionService when serialized in session [SPR-8282] #12930
🪲 Bug Fixes
- NoSuchMethodError when using AnnotatedElementAdapter with Java 7 [SPR-14872] #19438
- SpEL: Compiled OpNE should favor equals() to != [SPR-14863] #19429
- Allow
@Cacheable
method to return java.util.Optional variant of cached value with@Cacheable
(sync=true) [SPR-14853] #19419 - ResourceHttpRequestHandler no longer works as prototype bean [SPR-14851] #19417
- NPE PropertyOrFieldReference$AccessorLValue due to concurrency issue [SPR-14850] #19416
- LiveBeansView#unregister should not rely on ApplicationContext#getApplicationName [SPR-14848] #19414
- SimpleApplicationEventMulticaster should not generally suppress ClassCastException [SPR-14846] #19412
- SockJs heartbeat causes deadlock with XHR polling [SPR-14833] #19399
- Cache annotation lookup in 4.3 finds more annotations than in 4.2 [SPR-14801] #19367
- ModelAndView's setStatus does not work for
@ExceptionHandler
methods [SPR-14796] #19362 - Access-Control-Allow-Methods contains duplicate HTTP methods [SPR-14792] #19358
@CacheConfig
(cacheNames) broken when used on interface [SPR-14781] #19347- SpringValidatorAdapter's ResolvableAttribute is not serializable [SPR-14778] #19344
- ETag header is removed from PUT/POST/PATCH responses [SPR-14767] #19333
- IPv6 + Origin header + X-Forwarded-Host header gives NumberFormatException (Safari10 / CORS) [SPR-14761] #19327
- DefaultPersistenceUnitManager may configure a persistence unit root URL that does not point to a file or directory [SPR-14749] #19315
- Async advisor retrieval blocks when triggered by singleton init method [SPR-14324] #18896
- ObjectToObjectConverter should be able to use constructors on non-public classes [SPR-14304] #18876
📔 Documentation
- Document supported return types for
@Async
methods [SPR-14881] #19447 - The contract for StringValueResolver.resolveStringValue should be more explicit [SPR-14842] #19408
- Bad Table Rendering in Default Exception Handling Documentation [SPR-14782] #19348
@lookup
method injection method documentation [SPR-14765] #19331