Release Notes - Spring Framework - Version 4.3.5 - HTML format

Bug

  • [SPR-14860] - RestTemplate POST and PUT don't work with Netty4ClientHttpRequestFactory
  • [SPR-14889] - Netty4ClientHttpRequestFactory should use SSL if port is 443 or scheme is https
  • [SPR-14891] - Content-based versions are not inserted into resource URLs in an error page
  • [SPR-14899] - sse breaks with indenting serializer
  • [SPR-14907] - ExceptionHandlerExceptionResolver should not log propagated exceptions at warn level
  • [SPR-14917] - AbstractSockJsSession deadlock when tomcat WsSession is closing
  • [SPR-14929] - ConversionService performance regression
  • [SPR-14931] - NPE in LoadTimeWeavingConfiguration: loadTimeWeaver() called too early
  • [SPR-14934] - PathMatchingResourcePatternResolver provides duplicate resources with relative URL
  • [SPR-14965] - Self reference fallback in 4.3 is not meant to apply to collection elements
  • [SPR-14971] - List-to-String conversion exception does not refer to element type
  • [SPR-14972] - ImportAware.setImportMetadata not invoked if import inherited from superclass with negative condition
  • [SPR-14978] - Concurrency problem in DeferredResult: potential double execution of handleResult
  • [SPR-14996] - Behaviour of field injection for List dependencies that are produced and consumed by the same configuration class has changed in 4.3.5 snapshots
  • [SPR-15019] - Pointcut evaluation fails against AbstractHandlerMethodMapping$MappingRegistry with AspectJ 1.8.10
  • [SPR-15031] - MBeanExporter fails against null beans

Improvement

  • [SPR-14613] - CommonsMultipartFile.getOriginalFilename() should be able to preserve header-specified filename as-is
  • [SPR-14651] - Add RedirectAttributesMethodArgumentResolver to the default argument resolvers in ExceptionHandlerExceptionResolver
  • [SPR-14690] - Spring WebSockets should support token-based authentication
  • [SPR-14857] - Add PATCH HTTP operation to RestTemplate
  • [SPR-14886] - Use String.intern() for Class reading
  • [SPR-14888] - Detect invalid configuration for autoGrowCollectionLimit on DataBinder
  • [SPR-14897] - getBeanDefinitionNames should not leak the frozenBeanDefinitionNames array
  • [SPR-14898] - BeanPropertyRowMapper should be able to convert SQL timestamp to java.time.LocalDate/LocalTime
  • [SPR-14901] - Improve performance of STOMP message header encoding
  • [SPR-14916] - HtmlUnitRequestBuilder ignores form encoding type
  • [SPR-14921] - DefaultListableBeanFactory.copyConfigurationFrom should provide independent AutowireCandidateResolver instance
  • [SPR-14926] - Improve performance for conversions using a method parameter based type descriptor with annotations
  • [SPR-14928] - ResourceUrlEncodingFilter, ResourceUrlProvider should correctly resolve hash'ed resource paths
  • [SPR-14930] - Implement allocation-friendly method to get user count in SimpUserRegistry
  • [SPR-14936] - PathMatchingResourcePatternResolver finds duplicate resources for executable jars but not for executable wars
  • [SPR-14937] - Allow PayloadArgumentResolver to only apply to @Payload annotated parameters
  • [SPR-14939] - ResponseEntity builders should allow casting an empty body to any type
  • [SPR-14940] - Support for Jetty 9.4 (and 9.3.15+)
  • [SPR-14942] - Include expression string in SpelParseException
  • [SPR-14946] - Normalize resource URL in ResourceServlet
  • [SPR-14948] - Shared DefaultConversionService instance e.g. for BeanPropertyRowMapper
  • [SPR-14958] - @DateTimeFormat(iso = ISO.DATE_TIME) should use optimized formatter for LocalDateTime
  • [SPR-14985] - HttpInvokerClientInterceptor should not wrap client-side Error as RemoteAccessException
  • [SPR-14986] - MimeTypeUtils.parseMimeType should ignore an inner ";" inside a quoted value
  • [SPR-14988] - @GetMapping method annotation uses consumes attribute from @RequestMapping class annotation
  • [SPR-14990] - Update JdbcUtils to improve enum support
  • [SPR-14995] - Add request matchers for query parameters in MockRestRequestMatchers
  • [SPR-15005] - Spring should tolerate zero-argument constructors with javax.inject.Inject
  • [SPR-15006] - Provide a way to unregister a DataSource in SQLErrorCodesFactory
  • [SPR-15007] - Support for java.util.Optional as a @RequestBody
  • [SPR-15009] - Cannot customize autoGrowCollectionLimit on @InitBinder method when set custom MessageCodesResolver to Spring MVC
  • [SPR-15010] - Scoped EntityManager bean cannot get unwrapped to Session (with Hibernate 5.2)
  • [SPR-15011] - getBeanNamesForType(ResolvableType) doesn't match generic factory method return type for yet-to-be-created bean
  • [SPR-15015] - OkHttpClientHttpRequestFactory should allow POST requests without body
  • [SPR-15017] - LocaleContextHolder default value should be customizable
  • [SPR-15018] - JdbcTemplate should consistently delegate to getColumnMapRowMapper
  • [SPR-15020] - ForwardedHeaderFilter should support sendRedirect

Task

  • [SPR-14361] - Doc: SpEL behavior when comparing value to null
  • [SPR-14817] - Improve VersionResourceResolver javadoc
  • [SPR-14957] - Doc: HibernateJpaVendorAdapter's "prepareConnection" may interfere with Hibernate 5.1+ in a JTA environment
  • [SPR-14969] - Rename urlVariables to uriVariables for consistency
  • [SPR-14976] - Misleading parameter names and JavaDoc in ResolvableType
  • [SPR-14987] - SpEL and Date Literals
  • [SPR-14994] - Clarify rollback-on consistency between DefaultTransactionAttribute and TransactionTemplate

Edit/Copy Release Notes

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