Release Notes - Spring Framework - Version 4.3.6 - HTML format

Bug

  • [SPR-14892] - Injecting bean in configurable class using load-time weaving broken when referenced on scoped-proxy class
  • [SPR-15026] - LinkedCaseInsensitiveMap does not properly support Java 8's merge() and compute() methods
  • [SPR-15029] - ConcurrentModificationException in AbstractRequestExpectationManager
  • [SPR-15041] - Constant error 416 for a byte-range request with content type application/octet-stream
  • [SPR-15042] - Regression with poolTargetSource and scoped proxy
  • [SPR-15055] - AutoProxyRegistrar throws NullPointer on @kotlin.Metadata Annotation
  • [SPR-15060] - Annotated method argument matching performance issue
  • [SPR-15082] - Spring validation crashes with Hibernate Validation 5 style list constraint violations
  • [SPR-15088] - DefaultRedirectStrategy.sendRedirect with relative URL and ForwardedHeaderFilter add contextpath to URL twice
  • [SPR-15117] - Can't autowire BiMap: container resolves non-matching Map of value beans
  • [SPR-15123] - Incorrect resolution of ResolvableAttributes when MessageSourceSupport#alwaysUseMessageFormat is true
  • [SPR-15125] - Modification in AbstractAutowireCapableBeanFactory to prevent stackoverflow errors causes context not to load.
  • [SPR-15145] - SimpleApplicationEventMulticaster should not rely on ClassCastException having a message
  • [SPR-15151] - HeaderMethodArgumentResolver doesn't resolve Optional.empty() for non-existing header
  • [SPR-15160] - Collection autowiring does not resolve field-level type variable against containing class
  • [SPR-15179] - HiddenHttpMethodFilter may disturb error rendering when handling malformed multipart request
  • [SPR-15186] - InvocableHandlerMethod should call GenericTypeResolver with getBeanType() and only once

Task

  • [SPR-8704] - Doc: @Autowired properties not reliably set in FactoryBean before getObject
  • [SPR-14602] - Doc: @Bean methods on @Configuration class returned from another @Bean method do not work
  • [SPR-14998] - Compatibility with Hibernate Validator 5.4
  • [SPR-15052] - Doc: Can't issue PATCH request using RestTemplate with SimpleClientHttpRequestFactory
  • [SPR-15071] - Upgrade to ASM 5.2
  • [SPR-15072] - Doc: autowire-candidate="false" does not affect autowire="byName"
  • [SPR-15076] - Remove use of Boolean constructors in tests
  • [SPR-15077] - Avoid use of double constructor of BigDecimal in tests
  • [SPR-15129] - Using the Spring stomp broker relay forces reactor 2 and prevents using reactor 3
  • [SPR-15137] - Deprecate unused web-specific MimeTypeUtils constants
  • [SPR-15146] - Upgrade to Objenesis 2.5
  • [SPR-15153] - Reference documentation for Groovy bean definition DSL
  • [SPR-15155] - CookieLocaleResolver maxAge documentation wrong
  • [SPR-15170] - Improve the logging documentation

Improvement

  • [SPR-14097] - getBeanNamesForType(ResolvableType) does not reliably work for beans with AOP proxies
  • [SPR-14503] - Allow configuring the message converter in HttpPutFormContentFilter
  • [SPR-14505] - Deterministic and JVM-independent @Bean registration order within Class-reflected configuration classes
  • [SPR-14550] - Classes with abstract @Lookup methods not registered in case of classpath scanning
  • [SPR-14692] - ScheduledAnnotationBeanPostProcessor should reliably apply after AnnotationAwareAspectJAutoProxyCreator
  • [SPR-14829] - ContentCachingRequestWrapper can have maxContentLength to limit caching
  • [SPR-14960] - Consistent autowiring behavior for specifically typed injection points against loosely typed @Bean methods
  • [SPR-15035] - Reactor2StompTcpClient should use a shared EventLoopGroup
  • [SPR-15040] - @Aspect pointcut declarations do not support dynamically loaded classes
  • [SPR-15043] - Backward compatibility: initDefaultStrategies() is no longer invoked on subclasses of "MessageListenerAdapter"
  • [SPR-15045] - Remove unused Log object from MessageHeaderAccessor
  • [SPR-15061] - Backport streamlined ClassPathBeanDefinitionScanner setup
  • [SPR-15067] - SchedulingConfigurer's ScheduledTaskRegistrar should reliably shut down before TaskScheduler
  • [SPR-15068] - xml websockets configuration does not mirror annotation configuration
  • [SPR-15069] - Track bean dependencies for calls between @Bean methods within @Configuration classes
  • [SPR-15075] - Remove String#toCharArray from ScriptUtils
  • [SPR-15090] - GenericTableMetaDataProvider could use non standard named TableMeta-Schema if only one found
  • [SPR-15091] - Implement MessagingException.toString()
  • [SPR-15094] - Improve performance of StringUtils.capitalize()
  • [SPR-15096] - Clarify WebContentInterceptor path mappings and efficiently match them
  • [SPR-15098] - Unable to specify factory bean in BeanDefinitionBuilder
  • [SPR-15101] - Netty4ClientHttpRequestFactory should use SNI for TLS connections
  • [SPR-15107] - Update MySQLMaxValueIncrementer to not rely on MYISAM
  • [SPR-15109] - Add MimeType and MediaType constants for RSS
  • [SPR-15116] - MockHttpServletRequestBuilder should support multiple locales
  • [SPR-15139] - org.springframework.messaging.handler.invocation.InvocableHandlerMethod should not mention "controller"
  • [SPR-15142] - MockSessionCookieConfig#maxAge defaults to 0 instead of -1
  • [SPR-15168] - MockRestServiceServer should allow for an expectation to never occur.
  • [SPR-15175] - Scheduled/JmsListenerAnnotationBeanPostProcessor free heap space
  • [SPR-15178] - DispatcherServet.checkMultipart() does not consider javax.servlet.error.exception that has a MultipartException cause
  • [SPR-15180] - Tolerate null return from getNegotiatedExtensions (for Jetty 9.4.1 compatibility)
  • [SPR-15182] - CookieLocaleResolver may disturb error rendering when locale cookie has a malformed value

Refactoring

  • [SPR-15053] - Refactor AbstractNestablePropertyAccessor#setPropertyValue(PropertyTokenHolder, PropertyValue)

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.