Spring v5.2.9.RELEASE Release Notes

Release Date: 2020-09-15 // over 3 years ago
  • ๐Ÿฑ โญ New Features

    • HttpHeaders.setContentDispositionFormData should ignore empty filename #25769
    • ๐Ÿ”ง StringDecoder does not provide a way to configure the default charset #25762
    • ๐Ÿ”ง MimeMessageHelper.addAttachment: configurable encoding of attachment filename #25755
    • ๐ŸŒฒ Current log level not checked by LogAccessor supplier-enabled logging methods #25741
    • ๐Ÿ‘ PropertiesLoaderSupport should ignore socket/connect exceptions as well #25717
    • Avoid repeated calls to getPathWithinApplication from UrlPathHelper.getLookupPathForRequest #25669
    • ๐Ÿ”’ Avoid full singleton lock for DefaultSingletonBeanRegistry.getSingleton(beanName, false) #25667
    • XStreamMarshaller should avoid direct use of CompositeClassLoader which is not exported by XStream in OSGi #25662
    • ๐ŸŽ Avoid LinkedList performance issues through use of ArrayDeque #25652
    • Introduce createContext() factory method in AbstractGenericContextLoader #25600
    • ๐Ÿ‘• Declare MessagePostProcessor as a @FunctionalInterface #25571
    • ๐Ÿ”€ Assert preconditions for MergedAnnotations.from() factory methods #25568
    • Provide access to AbstractRoutingDataSource's resolved target DataSources #25544
    • Possible optimization in UrlResource #25531
    • Refine use of substring operations #25445
    • ๐Ÿ”€ Cache abstraction does not log hit / miss for synchronized access #25248

    ๐Ÿฑ ๐Ÿž Bug Fixes

    • Issue with Forwarded Header and Multiple Values #25737
    • ๐Ÿ“‡ CallMetaDataContext.reconcileParameters overwrites cursor name #25707
    • ๐Ÿ‘Œ VerifyErrors when using SpEL compilation with Thymeleaf when invoking a default method defined in an interface #25706
    • SQLErrorCodesFactory.getErrorCodes(DataSource) returns empty error codes if access to transactional connection fails #25681
    • ๐Ÿ‘‰ Make "org.springframework.util.unit.DataSize" class Serializable #25675
    • Joda-Time presence check fails to detect Joda-Time 2.x specifically #25655
    • Regression in SimpleThreadScope introduced in 5.2.7 #25618
    • ๐Ÿ‘ Potential integer overflow in ExecutorConfigurationSupport.setAwaitTerminationSeconds(int) and AbstractResourceBasedMessageSource.setCacheSeconds(int) #25613
    • โœ‚ Remove session on 4xx response from WebSocket handshake #25608
    • ๐Ÿ“‡ spring-jdbc don't set out parameter name from metadata for Postgresql function after issue#25399 #25588
    • FileUrlResource isWritable method returns true if URL protocol is not indicating a file #25584
    • Lazy dependency proxy does not populate bean dependencies #25562
    • โฌ†๏ธ Bean creation fails with StackOverflowError after upgrading from 5.1.13 to 5.2.7 #25546
    • StaticListableBeanFactory.isSingleton() returns false for singleton beans #25522
    • ๐Ÿคก Standalone MockMvc ignores @RestControllerAdvice annotation attributes #25520
    • ๐Ÿคก MockHttpServletResponse reset() does not reset charset field #25501
    • AnnotationTypeMappings does not filter repeatable annotations #25483
    • Wrong error message for type mismatch in jsonPath().value() #25480
    • ๐Ÿ›  Fix infinite loop bug in AnnotationScanner #25429
    • Overloaded @Bean method with name mismatch causes bean to be created twice (in case of ASM processing) #25263

    ๐Ÿ“” Documentation

    • ๐Ÿ— Prevent confusion about build(boolean) method in UriComponentsBuilder #25604
    • Document how to specify Jackson JSON view serialization hints with @RestController and Webflux #25596
    • ๐Ÿ”ง Inconsistent log level in @Bean javadoc and ConfigurationClassEnhancer #25590
    • ๐Ÿ›  Fix asciidoctor syntax for source #25539
    • ๐Ÿ‘Œ Improve Javadoc for @RequestMapping#params #25482
    • Document that SimpleCacheManager requires caches to be initialized when not used as a bean #22988

    โฌ†๏ธ ๐Ÿ”จ Dependency Upgrades

    • โฌ†๏ธ Upgrade to Reactor Dysprosium-SR12 #25730

    ๐Ÿฑ โค๏ธ Contributors

    ๐Ÿš€ We'd like to thank all the contributors who worked on this release!