Release Notes - Spring Framework - Version 5.0.5 - HTML format

Bug

  • [SPR-15780] - Precondition failed for PUT methods on ResponseEntity return types
  • [SPR-16488] - Deadlock in SubProtocolWebSocketHandler on shutdown with Undertow
  • [SPR-16489] - EL1072E when evaluating compiled null-safe expression
  • [SPR-16521] - JSON with missing quote leads to hanging
  • [SPR-16524] - [Reactor Netty] Incorrect error level logging for client bad request
  • [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-16534] - testBindInstantFromJavaUtilDate fails on systems in the Pacific/Auckland time zone
  • [SPR-16543] - WebApplicationContextFacesELResolver#isReadOnly always return false
  • [SPR-16544] - SpEL : Indexed access within an expression with null variables is no longer a SpelEvaluationException
  • [SPR-16545] - StackOverflowError when using WebFlux multipart file data handler with Undertow
  • [SPR-16546] - FilePart transferTo fails with java.nio.file.NoSuchFileException
  • [SPR-16551] - HiddenHttpMethodFilter breaks HandlerFunction with BodyExtractors.toFormData
  • [SPR-16555] - ChannelSendOperator.WriteBarrier readyToWrite has race condition
  • [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-16591] - ServletHttpHandlerAdapter @WebServlet annotation attributes do not conform to servlet spec
  • [SPR-16597] - WebFlux commitActions are called after status, headers and cookies are set
  • [SPR-16599] - AcceptHeaderLocaleResolver chooses wrong Locale for language match
  • [SPR-16606] - ResourceDecoder incorrectly matches to Object.class
  • [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-16636] - WebClient retrieve() does not handle Void.class as recommended
  • [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-16653] - Cannot autowire individual constructor argument in @Nested test class
  • [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-16670] - JndiRmiServiceExporter fails to export service on IBM j9 JDK
  • [SPR-16671] - SimpleMailMessage's handling of to/cc/bcc arrays is inconsistent

Task

  • [SPR-7885] - Clarify that RestTemplate registers an AllEncompassingFormHttpMessageConverter by default
  • [SPR-16390] - Compatibility with JDK 10
  • [SPR-16394] - [docs] Add WebFlux content on exception handling
  • [SPR-16494] - [docs] Document the need for periodic writes on a streaming response
  • [SPR-16538] - [docs] Document threading model in Spring WebFlux
  • [SPR-16547] - [docs] Restructure chapter Functional Endpoints chpater
  • [SPR-16549] - Incorrect pointcut expressions in reference documentation
  • [SPR-16552] - Incorrect description for class-level @Transactional with AspectJ
  • [SPR-16563] - Document that @PropertySource and @TestPropertySource do not support YAML
  • [SPR-16592] - Doc: @PropertySource meta-annotation not detected next to direct annotation
  • [SPR-16602] - Doc: @Scope not inherited from base class
  • [SPR-16612] - [docs] disarranged table in section View Technologies / Freemarker
  • [SPR-16616] - Clean duplicate slash and backslash in resource URLs
  • [SPR-16658] - Incorrect Javadocs for ReflectionUtils.doWithLocalFields
  • [SPR-16686] - Upgrade to AspectJ 1.9 GA

Improvement

  • [SPR-12452] - Spring Websockets Broker relay supporting a cluster of STOMP endpoint addresses
  • [SPR-13919] - Add support for asserting JSON in ContentRequestMatchers, just as there is for XML
  • [SPR-14694] - Support BufferingClientHttpRequestFactory in MockRestServiceServer
  • [SPR-16050] - Customize PreparedStatementCreatorFactory in getPreparedStatementCreator
  • [SPR-16516] - SSE writer does not allow customizing the charset
  • [SPR-16519] - Headers adding ability in ACK/NACK frame
  • [SPR-16520] - Unable to register @RestControllerAdvice Class via WebTestClient
  • [SPR-16523] - Consistent use of Collection.toArray with zero-sized array argument
  • [SPR-16535] - Support for ResolvableType.getType().getTypeName() on Java 8
  • [SPR-16536] - DefaultMessageListenerContainer should interrupt worker threads when not returning on shutdown
  • [SPR-16537] - Need ability to access URI template in WebClient metrics/tracing instrumentation
  • [SPR-16539] - Jackson Encoder(s) ignore charset in MimeType
  • [SPR-16542] - EncoderHttpMessageWriter never sets Content-Length
  • [SPR-16548] - Improve docs and handling of send errors in ResponseBodyEmitter
  • [SPR-16553] - Provide simple way to create ClientResponse
  • [SPR-16558] - Consistent incrementer arrangement for PostgreSQL, DB2 and SAP HANA
  • [SPR-16562] - Overloaded convenience setters on HttpHeaders
  • [SPR-16567] - Support @ResponseStatus-annotated exceptions on WebFlux
  • [SPR-16568] - Consider caching interface-derived BeanInfo instances in CachedIntrospectionResults
  • [SPR-16587] - MockMvcResultMatchers.jsonPath(String).value() should have a matching method to declare the expected type
  • [SPR-16588] - Support for SimpleEvaluationContext in SpEL
  • [SPR-16589] - Support for grouped DeferredImportSelector
  • [SPR-16596] - Consistent volatile access to running flag in Lifecycle implementations
  • [SPR-16601] - CodecException: No suitable writer found for part
  • [SPR-16607] - ThreadPoolTaskExecutor should cancel all remaining Future handles on shutdown
  • [SPR-16613] - Allow to make FormHttpMessageConverter add the charset in the Content-Type header
  • [SPR-16624] - Update ContentNegotiationStrategy to never return an empty List
  • [SPR-16626] - STOMP broker relay only allows up to 15 client connections
  • [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-16675] - Comprehensively cache annotated methods for interfaces and superclasses
  • [SPR-16677] - Mixed use BeanNameAutoProxyCreator and AnnotationAwareAspectJAutoProxyCreator to proxy same bean
  • [SPR-16678] - Add cpp to mime.types as text/plain

Refactoring

  • [SPR-16622] - Use Collection.removeIf() where possible
  • [SPR-16646] - Use Map.forEach instead of manual Map.Entry iteration wherever possible

Edit/Copy Release Notes

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