Skip to content

4.0.8 Release

Compare
Choose a tag to compare
@spring-projects-issues spring-projects-issues released this 17 Jan 14:33
· 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