Release Notes - Spring Framework - Version 4.3.15 - HTML format

Bug

  • [SPR-15780] - Precondition failed for PUT methods on ResponseEntity return types
  • [SPR-16409] - SubProtocolWebSocketHandler should not log ERROR on "No messages received after ..."
  • [SPR-16414] - ServletServerHttpRequest.getURI() may throw a java.net.URISyntaxException
  • [SPR-16415] - AbstractClientSockJsSession.close call does not propagate IOException from disconnect
  • [SPR-16427] - Spurious WARNINGs when XML declared TransactionProxyFactoryBean's target bean depends on an annotation declared bean that depends on another bean
  • [SPR-16435] - Lambda error detection might not work on JDK 9
  • [SPR-16450] - CachingConnectionFactory - Invalid session in session cache
  • [SPR-16453] - MockMvcRequestBuilder does not decode pathInfo
  • [SPR-16458] - MimeType compareTo implementation is not compatible with equals
  • [SPR-16461] - GSON converter only serialises fields of controller method return type, ignoring subclass fields of response object
  • [SPR-16478] - SimpleJdbcCall can't access synonyms in Oracle database
  • [SPR-16479] - Set thread interrupt flag on InterruptedException
  • [SPR-16486] - JsonMappingException when trying to instantiate org.springframework.messaging.Message
  • [SPR-16488] - Deadlock in SubProtocolWebSocketHandler on shutdown with Undertow
  • [SPR-16495] - NPE in Spring-JDBC with Oracle and SimpleJdbcInsert
  • [SPR-16496] - ExceptionHandlerExceptionResolver advice applicability check may fail against interface-based controller proxy
  • [SPR-16498] - FormTag renders empty <div> tag
  • [SPR-16506] - ForwardedHeaderFilter garbles query params during sendRedirect()
  • [SPR-16526] - StringIndexOutOfBoundsException when rewriting links in CSS resources
  • [SPR-16528] - Spurious ERROR-level logging when using SSEEmitter
  • [SPR-16529] - GsonHttpMessageConverter cannot be used in an SseEmitter because it closes the response stream
  • [SPR-16533] - Race condition in ConcurrentMapCache
  • [SPR-16534] - testBindInstantFromJavaUtilDate fails on systems in the Pacific/Auckland time zone
  • [SPR-16543] - WebApplicationContextFacesELResolver#isReadOnly always return false
  • [SPR-16556] - PostgresTableMetaDataProvider.isGetGeneratedKeysSimulated() does not detect Postgres 10
  • [SPR-16559] - Missing PersistenceException cause message in refresh failure warn log
  • [SPR-16564] - Reading annotations in ConfigurationClassParser does not fall back to ASM on Google App Engine
  • [SPR-16570] - Inconsistent synchronization in AbstractBeanFactoryBasedTargetSource and JdbcAccessor
  • [SPR-16571] - WebAsyncManager concurrentResult should be volatile
  • [SPR-16572] - TransactionTemplate inherits equals()/hashCode() from DefaultTransactionDefinition
  • [SPR-16577] - SimpleAliasRegistry registerAlias not atomic
  • [SPR-16581] - URIEditor should not double escape classpath: URIs
  • [SPR-16582] - RestTemplate with HttpComponentsClientHttpRequestFactory and no buffering with an interceptor throws UnsupportedOperationException
  • [SPR-16584] - Inconsistent handling of null values through Java 8 accessors in ConcurrentReferenceHashMap
  • [SPR-16599] - AcceptHeaderLocaleResolver chooses wrong Locale for language match
  • [SPR-16604] - DefaultResponseErrorHandler wastes the body of a response with an unknown status
  • [SPR-16611] - CallMetaDataContext.reconcileParameters doesn't catch output parameters with DatabaseMetaData.procedureColumnResult type (on Postgres)
  • [SPR-16620] - Consistent thread-safe iteration in DefaultSingletonBeanRegistry
  • [SPR-16625] - FactoryBeanRegistrySupport atomicity issues
  • [SPR-16627] - Address race condition within spring that causes about-to-be-created-bean exceptions
  • [SPR-16630] - An error occurs if a blank character exists before and after the delimiter of the MIME type parameter.
  • [SPR-16640] - Multipart Upload with Commons Fileupload on lazy mode downloads data on cleanup
  • [SPR-16648] - Concurrent result may be missed due to a race condition in MockMvc
  • [SPR-16650] - ServletUriComponentsBuilder should replace context path when X-Forwarded-Prefix is present
  • [SPR-16652] - Annotation lookup on parameter in inner class constructor fails when using javac from JDK versions prior to 9
  • [SPR-16660] - UriComponentsBuilder Forwarded header parsing can throw java.lang.NumberFormatException
  • [SPR-16663] - NamedParameterUtils.parseSqlStatement should parse :{x} style parameter correctly
  • [SPR-16669] - Unable to bind a null value for UUID column with PostgreSQL
  • [SPR-16671] - SimpleMailMessage's handling of to/cc/bcc arrays is inconsistent

Task

  • [SPR-7885] - Clarify that RestTemplate registers an AllEncompassingFormHttpMessageConverter by default
  • [SPR-14753] - Spring MVC and AOP: @EnableAspectJAutoProxy needs to be redeclared for each application context
  • [SPR-15801] - Doc: Spring AOP dependency on aspectjweaver
  • [SPR-15986] - Doc: ReloadableResourceBundleMessageSource's setUseCodeAsDefaultMessage causes the ValidationMessages.properties to not be found and used correctly
  • [SPR-16428] - Doc: hibernate.dialect_resolvers vs HibernateJpaVendorAdapter.setDatabase
  • [SPR-16463] - Doc: @Transactional.isolation does not guarantee the specified isolation level
  • [SPR-16487] - Doc: AbstractMessageListenerContainer rejecting messages on shutdown causes message loss in AUTO_ACK mode
  • [SPR-16552] - Incorrect description for class-level @Transactional with AspectJ
  • [SPR-16592] - Doc: @PropertySource meta-annotation not detected next to direct annotation
  • [SPR-16602] - Doc: @Scope not inherited from base class
  • [SPR-16616] - Clean duplicate slash and backslash in resource URLs
  • [SPR-16658] - Incorrect Javadocs for ReflectionUtils.doWithLocalFields

Improvement

  • [SPR-12452] - Spring Websockets Broker relay supporting a cluster of STOMP endpoint addresses
  • [SPR-16439] - Quartz Scheduler - configurable SchedulerFactory
  • [SPR-16455] - Avoid String concatenation for not-null assertion in BeanProperty/DirectFieldBindingResult
  • [SPR-16457] - AcceptHeaderLocaleResolver should match country locales against supported language locales
  • [SPR-16535] - Support for ResolvableType.getType().getTypeName() on Java 8
  • [SPR-16558] - Consistent incrementer arrangement for PostgreSQL, DB2 and SAP HANA
  • [SPR-16587] - MockMvcResultMatchers.jsonPath(String).value() should have a matching method to declare the expected type
  • [SPR-16588] - Support for SimpleEvaluationContext in SpEL
  • [SPR-16596] - Consistent volatile access to running flag in Lifecycle implementations
  • [SPR-16628] - When @DependsOn throws a NoSuchBeanDefinitionException it should include the dependent bean for clarity
  • [SPR-16635] - Generate multipart boundary using SecureRandom
  • [SPR-16667] - Reduce ClassUtils.forName overhead (in particular for annotation introspection purposes)
  • [SPR-16678] - Add cpp to mime.types as text/plain

Edit/Copy Release Notes

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