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.