4.0.8 Release
·
25278 commits
to main
since this release
⭐ New Features
- Log warning for single optional constructor when no default constructor to fall back to [SPR-12161] #16775
- XML bean singleton attribute silently ignored [SPR-12167] #16781
- HttpHeaders should accept empty Content-Type header [SPR-12173] #16787
- Scheduled/JmsListenerAnnotationBeanPostProcessor needlessly scans every scoped instance [SPR-12189] #16803
- Spring HTTP clients do not enforce RFC 6265 (cookies in a single header) [SPR-12196] #16810
- Make MockRestServiceServer error messages more descriptive [SPR-12230] #16845
- Further locking optimizations for the retrieval of non-singleton beans [SPR-12250] #16864
- Update default SockJS CDN [SPR-12254] #16868
- AnnotationUtils provides poor diagnostics if getDeclaredAnnotations throws an exception [SPR-12325] #16930
- Improve diagnostics when AnnotationAttributesReadingVisitor triggers an ArrayStoreException from Class.getAnnotations() [SPR-12387] #16995
- Log context cache statistics in the TestContext framework [SPR-12409] #17017
🪲 Bug Fixes
- SocketUtils should not be an abstract class [SPR-12169] #16783
- Regression: Slow TypeDescriptor lookups in CachedIntrospectionResults on IBM JVM 6 [SPR-12185] #16799
- Java 8 bridge method handling can lead to false positive detection of autowired annotations [SPR-12187] #16801
@Qualifier
resolution fails with Spring Batch parent/child context arrangement [SPR-12191] #16805- WebSocketMessageBrokerConfigurationSupport requiring JDK 7+ due to setRemoveOnCancelPolicy [SPR-12238] #16852
- org.springframework.context.support.LiveBeansView.generateJson(Set) generates invalid JSON when resources already double-quoted [SPR-12252] #16866
- Web Async responses force concurrentResult.toString() call [SPR-12253] #16867
- Duplicate entries in ResolvableType cache [SPR-12275] #16880
- DataSourceTransactionManager closes JDBC connection on doBegin failure but leaves it attached to transaction object [SPR-12280] #16885
- Provider<...> declaration for
@Value
method argument fails with TypeMismatchException [SPR-12297] #16903 - TextMessage.toString() throws StringIndexOutOfBoundsException if payload contains multibyte characters [SPR-12307] #16912
- Private
@Scheduled
methods end up on 'empty' proxy instance in case of CGLIB auto-proxying [SPR-12308] #16913 - Regression: Commons Logging setup in AnnotationUtils causes early initialization of logging system [SPR-12329] #16934
- ServerEndpointExporter causes refresh to fail with java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available [SPR-12340] #16945
- Directory traversal with static resource handling (CVE-2014-3625) [SPR-12354] #16959
- Tiles 2.x: TilesConfigurer NPE when no definitions found [SPR-12362] #16967
- ResponseStatusExceptionResolver does not get a MessageSource injected in the MVC Java config [SPR-12380] #16987
- ConfigurationClassUtils fails to introspect inner classes with dot name syntax (and silently ignores it) [SPR-12390] #16998
- PersistenceAnnotationBeanPostProcessor should check for PersistenceContext.synchronization method instead of synchronizationType [SPR-12396] #17004
- HIbernateJpaSessionFactory only works for hibernate < 4.3 [SPR-12401] #17009
- ShallowEtagHeaderFilter is not Servlet 2.5 compatible [SPR-12414] #17022
- StompDecoder StringIndexOutOfBoundsException with Apache ActiveMQ [SPR-12418] #17025
- Java 8 introspection causes breakage with FreeMarker Configuration bean [SPR-12448] #17053
📔 Documentation
- ContextLoaderServlet is mentioned in doc, but does not exist [SPR-7725] #12381
- condition vs. conditional typo in
@Cacheable
reference documenation [SPR-12273] #16878 - TimerTaskExecutor wasn't removed from documentation [SPR-12389] #16997
- task:executor keep-alive not explained in documentation [SPR-12407] #17015