Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
5.1 RC1 Release
⭐ New Features
- Introduce ResolvableType.toClass() shortcut [SPR-17086] #21623
- Programmatic ObjectProvider retrieval through BeanFactory API [SPR-17075] #21613
- Avoid repeated factory class introspection in AbstractAutowireCapableBeanFactory [SPR-17071] #21609
- Revise ResolvableType.as for introspection performance (limiting serializability) [SPR-17070] #21608
- Support running Kotlin Spring apps without kotlin-reflect.jar [SPR-17069] #21607
- Use available type information in functional bean definitions for resolving FactoryBean type [SPR-17063] #21601
- Support for null bean in functional bean registration [SPR-17057] #21595
- WebSession/WebSessionStore API are silent on saving a session that may have been invalidated [SPR-17051] #21589
- Hibernate 5: restore ability to inject "cacheRegionFactory" of LocalSessionFactoryBean [SPR-17043] #21581
- Support stricter encoding of URI variables in UriComponents [SPR-17039] #21577
- Consistent non-exposure of null beans in the BeanFactory API [SPR-17034] #21572
- Publicly expose ResolvableType in RootBeanDefinition [SPR-17028] #21566
- Evaluate
@Cacheable
(condition) once per method invocation only [SPR-17024] #21562 - Revise ClassUtils.isPresent for exposing resolution exceptions in jlinked modules [SPR-17018] #21556
- Add ServerResponse extensions for json, xml and html [SPR-17017] #21555
- HibernateJpaDialect cannot translate JDBCException to custom DataAccessException [SPR-17015] #21553
- Avoid ServerResponse static imports in WebFlux router DSL [SPR-17009] #21547
- RestTemplate (and probably server side as well) should be able to bootstrap itself if com.sun.org.apache.xalan.* is not available [SPR-17007] #21545
- DefaultParameterNameDiscoverer should automatically adapt to Graal constraints [SPR-17005] #21543
- LocalSessionFactoryBean and HibernateTransactionManager for JPA EntityManagerFactory setup [SPR-17002] #21540
- Perform explicit class checks in ReactiveAdapterRegistry [SPR-17000] #21538
- Create HttpHeaders.setBearerAuth(String) [SPR-16997] #21535
- Support platforms where Class is not Serializable in SerializableTypeWrapper [SPR-16992] #21530
- Add MockClientHttpRequest.getBodyAsString [SPR-16988] #21526
- AspectJ aspect for
@javax
.transaction.Transactional is not initialised by default [SPR-16987] #21525 - Throw a specific exception when an attempt to override a bean definition is rejected [SPR-16982] #21520
- Provide more control for setting the secure flag on the session cookie [SPR-16980] #21518
- Spring context indexer is not designed for the Java 9 module path [SPR-16979] #21517
- CachedIntrospectionResults should build complete descriptor for setter/getter across interface hierarchy [SPR-16978] #21516
- StandardServletMultipartResolver should support also HTTP PUT method [SPR-16975] #21513
- Resolved ApplicationListener event type should get cached [SPR-16970] #21508
- SpringClassRule does not support the Arquillian MethodRuleChain [SPR-16967] #21505
- Propagate read-only status to Hibernate Session through setDefaultReadOnly [SPR-16956] #21494
- Create DSL for RouterFunction and RouterFunctions [SPR-16953] #21491
- Improve logging for development (DEBUG vs TRACE) [SPR-16946] #21485
- LinkedCaseInsensitiveMap should explicitly implement putIfAbsent and computeIfAbsent [SPR-16926] #21465
- FilePart.transferTo should accept java.nio.file.Path [SPR-16925] #21464
- Provide getter to expose the DispatcherServlet instance used in MockMvc [SPR-16924] #21463
- Optimize AbstractAutowireCapableBeanFactory.populateBean(String, RootBeanDefinition, BeanWrapper) to avoid redundant Java Bean introspection [SPR-16918] #21457
- Create HttpHeaders.setBasicAuth(String username, String password) [SPR-16913] #21452
- Improve generic warnings when implementing BodyExtractor [SPR-16909] #21448
- Introduce Stream support in PropertySources and PropertyValues [SPR-16894] #21433
- Enable use of both
@SendTo
and@SendToUser
on the same method [SPR-16891] #21430 - MethodParameter needs to apply tighter assertions [SPR-16889] #21428
- Revisit PropertyResolver Kotlin extensions [SPR-16883] #21422
- Subclass-resolved generic return type declarations for handler methods [SPR-16877] #21416
- Support for form parameters with HTTP DELETE [SPR-16874] #21413
- WebClient.Builder option to customize every request [SPR-16873] #21412
- Process X-Forwarded-Ssl headers properly [SPR-16863] #21402
- Make FormHttpMessageWriter easier to extend [SPR-16855] #21395
- No type-based error code used by immutable form class when type conversion error occurs [SPR-16854] #21394
- Java 9: Avoid illegal reflective access warning for SpEL method reference [SPR-16845] #21385
- Validation failure not exposed next to binding failure for immutable form class [SPR-16841] #21381
@DateTimeFormat
annotations are necessary both on field and constructor parameter in the immutable form class [SPR-16840] #21380- A lite configuration class's member classes are processed when it's imported but not when it's registered directly [SPR-16839] #21379
- PathMatchingResourcePatternResolver should enforce OS-independent sorting of directory content [SPR-16838] #21378
- Extending ScheduledTaskRegistrar functionality [SPR-16834] #21374
- java.nio.file.Path support in FileSystemResource (with regular createRelative behavior, superseding PathResource) [SPR-16833] #21373
- ClassPathResource.isReadable() returns true for directory in runnable jar result in download empty file [SPR-16832] #21372
- Apply Hibernate Integrator through LocalSessionFactoryBean [SPR-16828] #21368
- Improve handling of unknown status codes by WebClient [SPR-16819] #21359
- Support use of MultipartFile as input to RestTemplate or WebClient [SPR-16808] #21348
- Improve UnsupportedMediaTypeEx...
5.0.8 Release
⭐ New Features
- Spring-context optimization: LinkedMultiValueMap and ArrayList should be initialized with specified capacity for preventing collections from resizing [SPR-17079] #21616
- Cache order result per Class in OrderUtils (for AnnotationAwareOrderComparator) [SPR-17064] #21602
- Add setter for order for DefaultSimpUserRegistry [SPR-17023] #21561
- InMemoryWebSessionStore could leak memory if sessions created but never used [SPR-17020] #21558
- Reduce the impact on startup time of adding Reactor to the classpath [SPR-16981] #21519
- Lazily initialize SecureRandom in MimeTypeUtils [SPR-16974] #21512
- StringUtils.cleanPath should not strip off the entire path for
file:./
[SPR-16908] #21447 - InMemoryWebSessionStore method to access map of sessions [SPR-16713] #21254
- Revise StringUtils.parseLocale(String) for proper handling of corner cases [SPR-16651] #21192
- Warn about use of SimpleAsyncTaskExecutor for async requests [SPR-16203] #20751
- Annotations on generic interface methods not found by AnnotationUtils [SPR-16060] #20609
- Content-Length should be set in the request when using reactive WebClient [SPR-16949] #19562
- StringUtils#parseLocaleString(String) with Variant when no Country [SPR-7598] #12254
🪲 Bug Fixes
- ResponseEntityResultHandler does not overwrite existing response headers [SPR-17082] #21619
- MVC not rendering response headers for ResponseEntity<Flux> [SPR-17076] #21614
- spring-webflux ModelAttributeMethodArgumentResolver validateIfApplicable [SPR-17073] #21611
@RequestParam
throwsjava.lang.NullPointerException: The mapper returned a null value.
[SPR-17050] #21588- AnnotationMetadataReadingVisitor.getMetaAnnotationTypes(String) may return null but it is not marked
@Nullable
[SPR-17046] #21584 - AOP and use of redirect view can lead to unbounded caching in AbstractAutoProxyCreator [SPR-17045] #21583
- Boundary info in Content-Type multipart request header not parsed correctly because of charset [SPR-17030] #21568
- HtmlUnitRequestBuilder decodes plus sign in query parameter [SPR-17027] #21565
- Spring 5.x DataSource proxying does not work with Oracle UCP on JDK 9+ [SPR-17003] #21541
- Map injection fails to find bean produced with
@Bean
when additional method with same name exists [SPR-16999] #21537 - ConcurrentReferenceHashMap does not enforce visibility of cached EntrySet [SPR-16994] #21532
- The WebHttpHandlerBuilder copy constructor does not copy the applicationcontext [SPR-16972] #21510
- Share ByteBufferPool between UndertowWebSocketClient connections (avoiding risk of memory leaks) [SPR-16957] #21495
- spring.ftl does not support turning off escaping for some macros on Spring 5 [SPR-16951] #21489
- AbstractJackson2HttpMessageConverter incorrectly logs at WARN level after upgrading to Jackson 2.9 [SPR-16947] #21486
- ResponseCookie prints incorrect max-age and expires values [SPR-16940] #21479
- Problem with passing null parameter to MapSqlParameterSource [SPR-16843] #21383
📔 Documentation
5.0.7 Release
⭐ New Features
- AbstractJackson2Encoder::getContentLength should not return null for MonoJust/FluxJust publisher [SPR-16892] #21431
- ReflectivePropertyAccessor should cache sorted methods [SPR-16882] #21421
- SimpleAliasRegistry misses log out in case of bean override [SPR-16871] #21410
- Spring overrides user requested STOMP version [SPR-16844] #21384
- Restrict allowed HTTP methods in HiddenHttpMethodFilter [SPR-16836] #21376
- ServerHttpRequest.Builder should allow setting SslInfo [SPR-16830] #21370
- Improve toString in path extension and query parameter predicates [SPR-16829] #21369
- Filter synthetic in addition to bridge in ReflectionUtils#USER_DECLARED_METHODS [SPR-16823] #21363
- Add description for StompBrokerRelayMessageHandler [SPR-16801] #21341
- Deprecate JSONP support and update MappingJackson2JsonView defaults [SPR-16798] #21338
- MockMVC ResultMatchers.status().is(200) - method call needs to be escaped in kotlin [SPR-16429] #20975
🪲 Bug Fixes
- RestController fails with java.lang.ClassCastException: java.lang.String cannot be cast to org.springframework.core.io.support.ResourceRegion [SPR-16932] #21471
- AbstractMethodMessageHandler does not rethrow Errors [SPR-16912] #21451
- Fix faulty BeanPostProcessorChecker logs with
@EnableCaching
[SPR-16896] #21435 - AbstractRequestLoggingFilter.isIncludeHeaders() is accidentally public [SPR-16881] #21420
- MockMvc - IllegalStateException: Async result for handler was not set during specified timeToWait=-1 [SPR-16869] #21408
- PathVariable with nested router function throws IllegalArgumentException [SPR-16868] #21407
- MatrixVariable with Encoding does not work. [SPR-16867] #21406
- Restore lenient null return value for ConditionContext.getBeanFactory() [SPR-16866] #21405
- Flawed implementations of ResourceResolverChain and ResourceTransformerChain [SPR-16862] #21401
- "Want" two-way-ssl not containing SSL-Certificate is not checkable due to contract violation [SPR-16842] #21382
- Connection acquired while calling a stored procedure via JPA is not released [SPR-16826] #21366
- Process cannot exit when the SchedulerFactoryBean fails to initialize [SPR-16816] #21356
- UriComponentsBuilder injected into a WebFlux controller method argument uses the full URI [SPR-16813] #21353
- AspectJ annotation pointcuts fail to evaluate against interface-based proxies [SPR-16803] #21343
📔 Documentation
- Provide example of a WebSocketHandler implementation for WebFlux [SPR-16820] #21360
- Incorrect Java Syntax in Spring Framework Documentation [SPR-16811] #21351
- Documentation refers to org.projectreactor:reactor-net which seem not to exist on projectreactor Bismuth [SPR-16802] #21342
- docs.zip does not contain resources at the root anymore [SPR-16799] #21339
- [docs] Add WebFlux content on HTTP caching [SPR-16395] #20941
4.3.18 Release
⭐ New Features
- Deprecate JSONP support and update MappingJackson2JsonView defaults [SPR-16798] #21338
- Restrict allowed HTTP methods in HiddenHttpMethodFilter [SPR-16836] #21376
- ReflectivePropertyAccessor should cache sorted methods [SPR-16882] #21421
🪲 Bug Fixes
- Process cannot exit when the SchedulerFactoryBean fails to initialize [SPR-16816] #21356
- Connection acquired while calling a stored procedure via JPA is not released [SPR-16826] #21366
- AbstractRequestLoggingFilter.isIncludeHeaders() is accidentally public [SPR-16881] #21420
- Fix faulty BeanPostProcessorChecker logs with
@EnableCaching
[SPR-16896] #21435 - AbstractMethodMessageHandler does not rethrow Errors [SPR-16912] #21451
📔 Documentation
5.0.6 Release
⭐ New Features
- Task "docsZip" copies duplicate reference files [SPR-16789] #21329
- Consistent target method resolution for event and caching expressions [SPR-16779] #21319
- WebFlux handles requests with an illegal Host header inconsistently [SPR-16778] #21318
- Implement ReactorNettyWebSocketSession.close [SPR-16774] #21314
- Prevent unnecessary ExchangeStrategies.withDefaults() in DefaultWebClientBuilder [SPR-16771] #21311
- Improve performance of StringUtils#trimWhitespace method [SPR-16766] #21307
- Validate contextPath in RedirectView [SPR-16752] #21293
- No support for non-standard HTTP status codes in reactive ClientHttpResponse [SPR-16748] #21289
- Expose configuration options for "selector" header [SPR-16732] #21273
- Flag misguided evaluation attempts in OperatorMatches [SPR-16731] #21272
- Avoid repeated superclass introspection in AnnotationUtils.findAnnotation [SPR-16730] #21271
- SynchronossPartGenerator should reuse PartBodyStreamStorageFactory [SPR-16727] #21268
- AbstractMessageReaderArgumentResolver.readBody should defer creating the error [SPR-16726] #21267
- Revise JCA MessageEndpoint exception logging and propagation [SPR-16717] #21258
- Revise cache safety check to avoid performance regression in EAR packaged applications on WildFly [SPR-16714] #21255
- Add a default constructor to Reactive UrlBasedCorsConfigurationSource [SPR-16712] #21253
- Proper exception for controller method return types that do not work with MvcUriComponentsBuilder (e.g. final classes) [SPR-16710] #21251
- Reduce log verbosity on server-side after client unsubscribes from SSE stream [SPR-16688] #21229
- Kotlin unable to inherit type for WebTestClient#BodySpec [SPR-15692] #20251
🪲 Bug Fixes
- Restore YamlProcessor duplicate key handling against SnakeYAML 1.18+ (plus compatibility with 1.21) [SPR-16791] #21331
- Singleton from a FactoryBean may be post-processed twice if the first post-processing triggers a second attempt to get the bean [SPR-16783] #21323
- ResourceBundleMessageSource should avoid ResourceBundle.Control on Jigsaw [SPR-16776] #21316
- NPE in SimpleClient-HttpURLConnection with errorstream-buffering [SPR-16773] #21313
- YamlPropertiesFactoryBean loses entries in the YAML document that have an empty array value [SPR-16769] #21310
- Misleading error message when evaluating T operator [SPR-16762] #21303
- Jaxb2XmlDecoder is unable to decode a single element [SPR-16759] #21300
- AopUtils.getMostSpecificMethod should expose dynamic proxy class methods [SPR-16757] #21298
- ConfigurationClassBeanDefinitionReader registers duplicate BeanDefinition for nested scoped component [SPR-16756] #21297
- IllegalStateException: InputStream has already been read when returning ResponseEntity [SPR-16754] #21295
- Decoding ServerSentEvent fails when using generic type [SPR-16744] #21285
- Exception swallowed in ResponseEntityExceptionHandler [SPR-16743] #21284
- AnnotationAwareOrderComparator uses Order instead of Priority for DecoratingProxy [SPR-16739] #21280
- Generic constructor argument (e.g. ObjectProvider) fails to resolve for inner class [SPR-16734] #21275
- Unnecessary proxying with MethodMapTransactionAttributeSource [SPR-16733] #21274
- Restore handling of 0 bytes read in ServletServerHttpRequest [SPR-16728] #21269
- AspectJ execution pointcut does not detect methods in superinterface anymore [SPR-16723] #21264
- Inconsistent getTypeForFactoryMethod results for parameterized factory method [SPR-16720] #21261
- SpringFailOnTimeout loses original exception when triggering timeout in finally block [SPR-16716] #21257
- Null check needed in AnnotationUtils.getAnnotation [SPR-16708] #21249
- StackOverFlowError and memory leaking when sending large files slowly with Webflux + Undertow [SPR-16702] #21243
- ClassCastException in TestDispatcherServlet [SPR-16695] #21236
- PathPatternPredicate leaves path variables in request even if predicate doesn't match [SPR-16692] #21233
4.3.17 Release
⭐ New Features
- Proper exception for controller method return types that do not work with MvcUriComponentsBuilder (e.g. final classes) [SPR-16710] #21251
- Revise cache safety check to avoid performance regression in EAR packaged applications on WildFly [SPR-16714] #21255
- Revise JCA MessageEndpoint exception logging and propagation [SPR-16717] #21258
- Flag misguided evaluation attempts in OperatorMatches [SPR-16731] #21272
- Expose configuration options for "selector" header [SPR-16732] #21273
- Validate contextPath in RedirectView [SPR-16752] #21293
🪲 Bug Fixes
- SpringFailOnTimeout loses original exception when triggering timeout in finally block [SPR-16716] #21257
- Inconsistent getTypeForFactoryMethod results for parameterized factory method [SPR-16720] #21261
- Generic constructor argument (e.g. ObjectProvider) fails to resolve for inner class [SPR-16734] #21275
- AnnotationAwareOrderComparator uses Order instead of Priority for DecoratingProxy [SPR-16739] #21280
- Exception swallowed in ResponseEntityExceptionHandler [SPR-16743] #21284
- ConfigurationClassBeanDefinitionReader registers duplicate BeanDefinition for nested scoped component [SPR-16756] #21297
- Misleading error message when evaluating T operator [SPR-16762] #21303
- NPE in SimpleClient-HttpURLConnection with errorstream-buffering [SPR-16773] #21313
- Singleton from a FactoryBean may be post-processed twice if the first post-processing triggers a second attempt to get the bean [SPR-16783] #21323
4.3.16 Release
5.0.5 Release
⭐ New Features
- Add cpp to mime.types as text/plain [SPR-16678] #21219
- Mixed use BeanNameAutoProxyCreator and AnnotationAwareAspectJAutoProxyCreator to proxy same bean [SPR-16677] #21218
- Comprehensively cache annotated methods for interfaces and superclasses [SPR-16675] #21216
- Reduce ClassUtils.forName overhead (in particular for annotation introspection purposes) [SPR-16667] #21208
- Generate multipart boundary using SecureRandom [SPR-16635] #21176
- When
@DependsOn
throws a NoSuchBeanDefinitionException it should include the dependent bean for clarity [SPR-16628] #21169 - STOMP broker relay only allows up to 15 client connections [SPR-16626] #21167
- Update ContentNegotiationStrategy to never return an empty List [SPR-16624] #21165
- Allow to make FormHttpMessageConverter add the charset in the Content-Type header [SPR-16613] #21154
- ThreadPoolTaskExecutor should cancel all remaining Future handles on shutdown [SPR-16607] #21148
- CodecException: No suitable writer found for part [SPR-16601] #21142
- Consistent volatile access to running flag in Lifecycle implementations [SPR-16596] #21137
- Support for grouped DeferredImportSelector [SPR-16589] #21131
- Support for SimpleEvaluationContext in SpEL [SPR-16588] #21130
- MockMvcResultMatchers.jsonPath(String).value() should have a matching method to declare the expected type [SPR-16587] #21129
- Consider caching interface-derived BeanInfo instances in CachedIntrospectionResults [SPR-16568] #21110
- Support
@ResponseStatus-annotated
exceptions on WebFlux [SPR-16567] #21109 - Overloaded convenience setters on HttpHeaders [SPR-16562] #21104
- Consistent incrementer arrangement for PostgreSQL, DB2 and SAP HANA [SPR-16558] #21101
- Provide simple way to create ClientResponse [SPR-16553] #21096
- Improve docs and handling of send errors in ResponseBodyEmitter [SPR-16548] #21091
- EncoderHttpMessageWriter never sets Content-Length [SPR-16542] #21085
- Jackson Encoder(s) ignore charset in MimeType [SPR-16539] #21082
- Need ability to access URI template in WebClient metrics/tracing instrumentation [SPR-16537] #21080
- DefaultMessageListenerContainer should interrupt worker threads when not returning on shutdown [SPR-16536] #21079
- Support for ResolvableType.getType().getTypeName() on Java 8 [SPR-16535] #21078
- Consistent use of Collection.toArray with zero-sized array argument [SPR-16523] #21066
- Unable to register
@RestControllerAdvice
Class via WebTestClient [SPR-16520] #21063 - Headers adding ability in ACK/NACK frame [SPR-16519] #21062
- SSE writer does not allow customizing the charset [SPR-16516] #21059
- Customize PreparedStatementCreatorFactory in getPreparedStatementCreator [SPR-16050] #20599
- Support BufferingClientHttpRequestFactory in MockRestServiceServer [SPR-14694] #19258
- Add support for asserting JSON in ContentRequestMatchers, just as there is for XML [SPR-13919] #18493
- Spring Websockets Broker relay supporting a cluster of STOMP endpoint addresses [SPR-12452] #17057
🪲 Bug Fixes
- SimpleMailMessage's handling of to/cc/bcc arrays is inconsistent [SPR-16671] #21212
- JndiRmiServiceExporter fails to export service on IBM j9 JDK [SPR-16670] #21211
- Unable to bind a null value for UUID column with PostgreSQL [SPR-16669] #21210
- NamedParameterUtils.parseSqlStatement should parse :{x} style parameter correctly [SPR-16663] #21204
- UriComponentsBuilder Forwarded header parsing can throw java.lang.NumberFormatException [SPR-16660] #21201
- Cannot autowire individual constructor argument in
@Nested
test class [SPR-16653] #21194 - Annotation lookup on parameter in inner class constructor fails when using javac from JDK versions prior to 9 [SPR-16652] #21193
- ServletUriComponentsBuilder should replace context path when X-Forwarded-Prefix is present [SPR-16650] #21191
- Concurrent result may be missed due to a race condition in MockMvc [SPR-16648] #21189
- Multipart Upload with Commons Fileupload on lazy mode downloads data on cleanup [SPR-16640] #21181
- WebClient retrieve() does not handle Void.class as recommended [SPR-16636] #21177
- An error occurs if a blank character exists before and after the delimiter of the MIME type parameter. [SPR-16630] #21171
- Address race condition within spring that causes about-to-be-created-bean exceptions [SPR-16627] #21168
- FactoryBeanRegistrySupport atomicity issues [SPR-16625] #21166
- Consistent thread-safe iteration in DefaultSingletonBeanRegistry [SPR-16620] #21161
- CallMetaDataContext.reconcileParameters doesn't catch output parameters with DatabaseMetaData.procedureColumnResult type (on Postgres) [SPR-16611] #21152
- ResourceDecoder incorrectly matches to Object.class [SPR-16606] #21147
- AcceptHeaderLocaleResolver chooses wrong Locale for language match [SPR-16599] #21140
- WebFlux commitActions are called after status, headers and cookies are set [SPR-16597] #21138
- ServletHttpHandlerAdapter
@WebServlet
annotation attributes do not conform to servlet spec [SPR-16591] #21133 - Inconsistent handling of null values through Java 8 accessors in ConcurrentReferenceHashMap [SPR-16584] #21126
- RestTemplate with HttpComponentsClientHttpRequestFactory and no buffering with an interceptor throws UnsupportedOperationException [SPR-16582] #21124
- URIEditor should not double escape classpath: URIs [SPR-16581] #21123
- SimpleAliasRegistry registerAlias not atomic [SPR-16577] #21119
- TransactionTemplate inherits equals()/hashCode() from DefaultTransactionDefinition [SPR-16572] #21114
- WebAsyncManager concurrentResult should be volatile [SPR-16571] #21113
- Inconsistent synchronization in AbstractBeanFactoryBasedTargetSource and JdbcAccessor [SPR-16570] #21112
- Reading annotations in ConfigurationClassParser does not fall back to ASM on Google App Engine [SPR-16564] [#21106](https://github.com/spring-pro...
4.3.15 Release
⭐ New Features
- Spring Websockets Broker relay supporting a cluster of STOMP endpoint addresses [SPR-12452] #17057
- Quartz Scheduler - configurable SchedulerFactory [SPR-16439] #20985
- Avoid String concatenation for not-null assertion in BeanProperty/DirectFieldBindingResult [SPR-16455] #21000
- AcceptHeaderLocaleResolver should match country locales against supported language locales [SPR-16457] #21002
- Support for ResolvableType.getType().getTypeName() on Java 8 [SPR-16535] #21078
- Consistent incrementer arrangement for PostgreSQL, DB2 and SAP HANA [SPR-16558] #21101
- MockMvcResultMatchers.jsonPath(String).value() should have a matching method to declare the expected type [SPR-16587] #21129
- Support for SimpleEvaluationContext in SpEL [SPR-16588] #21130
- Consistent volatile access to running flag in Lifecycle implementations [SPR-16596] #21137
- When
@DependsOn
throws a NoSuchBeanDefinitionException it should include the dependent bean for clarity [SPR-16628] #21169 - Generate multipart boundary using SecureRandom [SPR-16635] #21176
- Reduce ClassUtils.forName overhead (in particular for annotation introspection purposes) [SPR-16667] #21208
- Add cpp to mime.types as text/plain [SPR-16678] #21219
🪲 Bug Fixes
- Precondition failed for PUT methods on ResponseEntity return types [SPR-15780] #20335
- SubProtocolWebSocketHandler should not log ERROR on "No messages received after ..." [SPR-16409] #20955
- ServletServerHttpRequest.getURI() may throw a java.net.URISyntaxException [SPR-16414] #20960
- AbstractClientSockJsSession.close call does not propagate IOException from disconnect [SPR-16415] #20961
- Spurious WARNINGs when XML declared TransactionProxyFactoryBean's target bean depends on an annotation declared bean that depends on another bean [SPR-16427] #20973
- Lambda error detection might not work on JDK 9 [SPR-16435] #20981
- CachingConnectionFactory - Invalid session in session cache [SPR-16450] #20995
- MockMvcRequestBuilder does not decode pathInfo [SPR-16453] #20998
- MimeType compareTo implementation is not compatible with equals [SPR-16458] #21003
- GSON converter only serialises fields of controller method return type, ignoring subclass fields of response object [SPR-16461] #21006
- SimpleJdbcCall can't access synonyms in Oracle database [SPR-16478] #21022
- Set thread interrupt flag on InterruptedException [SPR-16479] #21023
- JsonMappingException when trying to instantiate org.springframework.messaging.Message [SPR-16486] #21029
- Deadlock in SubProtocolWebSocketHandler on shutdown with Undertow [SPR-16488] #21031
- NPE in Spring-JDBC with Oracle and SimpleJdbcInsert [SPR-16495] #21038
- ExceptionHandlerExceptionResolver advice applicability check may fail against interface-based controller proxy [SPR-16496] #21039
- FormTag renders empty tag [SPR-16498] #21041
- ForwardedHeaderFilter garbles query params during sendRedirect() [SPR-16506] #21049
- StringIndexOutOfBoundsException when rewriting links in CSS resources [SPR-16526] #21069
- Spurious ERROR-level logging when using SSEEmitter [SPR-16528] #21071
- GsonHttpMessageConverter cannot be used in an SseEmitter because it closes the response stream [SPR-16529] #21072
- testBindInstantFromJavaUtilDate fails on systems in the Pacific/Auckland time zone [SPR-16534] #21077
- WebApplicationContextFacesELResolver#isReadOnly always return false [SPR-16543] #21086
- PostgresTableMetaDataProvider.isGetGeneratedKeysSimulated() does not detect Postgres 10 [SPR-16556] #21099
- Missing PersistenceException cause message in refresh failure warn log [SPR-16559] #21102
- Reading annotations in ConfigurationClassParser does not fall back to ASM on Google App Engine [SPR-16564] #21106
- Inconsistent synchronization in AbstractBeanFactoryBasedTargetSource and JdbcAccessor [SPR-16570] #21112
- WebAsyncManager concurrentResult should be volatile [SPR-16571] #21113
- TransactionTemplate inherits equals()/hashCode() from DefaultTransactionDefinition [SPR-16572] #21114
- SimpleAliasRegistry registerAlias not atomic [SPR-16577] #21119
- URIEditor should not double escape classpath: URIs [SPR-16581] #21123
- RestTemplate with HttpComponentsClientHttpRequestFactory and no buffering with an interceptor throws UnsupportedOperationException [SPR-16582] #21124
- Inconsistent handling of null values through Java 8 accessors in ConcurrentReferenceHashMap [SPR-16584] #21126
- AcceptHeaderLocaleResolver chooses wrong Locale for language match [SPR-16599] #21140
- CallMetaDataContext.reconcileParameters doesn't catch output parameters with DatabaseMetaData.procedureColumnResult type (on Postgres) [SPR-16611] #21152
- Consistent thread-safe iteration in DefaultSingletonBeanRegistry [SPR-16620] #21161
- FactoryBeanRegistrySupport atomicity issues [SPR-16625] #21166
- Address race condition within spring that causes about-to-be-created-bean exceptions [SPR-16627] #21168
- An error occurs if a blank character exists before and after the delimiter of the MIME type parameter. [SPR-16630] #21171
- Multipart Upload with Commons Fileupload on lazy mode downloads data on cleanup [SPR-16640] #21181
- Concurrent result may be missed due to a race condition in MockMvc [SPR-16648] #21189
- ServletUriComponentsBuilder should replace context path when X-Forwarded-Prefix is present [SPR-16650] #21191
- Annotation lookup on parameter in inner class constructor fails when using javac from JDK versions prior to 9 [SPR-16652] #21193
- UriComponentsBuilder Forwarded header parsing can throw java.lang.NumberFormatException [SPR-16660] #21201
- NamedParameterUtils.parseSqlStatement should parse :{x} style parameter correctly [SPR-16663] #21204
- Unable to bind a null value for UUID column with PostgreSQL [SPR-16669] #21210
- SimpleMailMessage's handling of to/cc/bcc arrays is inconsistent [SPR-16671] #21212
- DefaultResponseErrorHandler wastes the body of a resp...
5.0.4 Release
⭐ New Features
- Avoid multiple warnings related to jackson-module-kotlin in Jackson2ObjectMapperBuilder [SPR-16497] #21040
- WebClient | onErrorResume logs exception although it has been handled [SPR-16484] #21027
- Supports ConversionService on SingleColumnRowMapper [SPR-16483] #21026
- AcceptHeaderLocaleResolver should match country locales against supported language locales [SPR-16457] #21002
- Avoid String concatenation for not-null assertion in BeanProperty/DirectFieldBindingResult [SPR-16455] #21000
- Quartz Scheduler - configurable SchedulerFactory [SPR-16439] #20985
- Missing java.time.Year Formatter [SPR-16437] #20983
- ViewResolverRegistry in WebFlux is missing a scriptTemplate option [SPR-16431] #20977
- MockMvc error handling with CompletableFuture regression in 5.0.1+ [SPR-16430] #20976
DelegatingServletInputStream#available
always returns 0 [SPR-16416] #20962- Add Vary: Access-Control-Request-Method/Headers CORS headers [SPR-16413] #20959
- The FieldError class does not provide access to the exception that triggered the binding error. [SPR-16372] #20919
- StringToLocaleConverter should allow BCP 47 values [SPR-16188] #20736
- Support Smile streaming in WebFlux [SPR-16151] #20699
- ScheduledAnnotationBeanPostProcessor does not support Duration syntax [SPR-15455] #20016
- Improve WebFlux exception logging [SPR-15083] #19649
🪲 Bug Fixes
- Performance degradation for creating non-singleton bean [SPR-16514] #21057
- NPE in AnnotationAwareOrderComparator.getPriority [SPR-16508] #21051
- With two-way-ssl exchange.getRequest().getSslInfo() always null [SPR-16507] #21050
- ForwardedHeaderFilter garbles query params during sendRedirect() [SPR-16506] #21049
- Invalid/missing locale strings in header prevents resolving the locale [SPR-16500] #21043
- FormTag renders empty tag [SPR-16498] #21041
- ExceptionHandlerExceptionResolver advice applicability check may fail against interface-based controller proxy [SPR-16496] #21039
- NPE in Spring-JDBC with Oracle and SimpleJdbcInsert [SPR-16495] #21038
- JsonMappingException when trying to instantiate org.springframework.messaging.Message [SPR-16486] #21029
- Set thread interrupt flag on InterruptedException [SPR-16479] #21023
- SimpleJdbcCall can't access synonyms in Oracle database [SPR-16478] #21022
- NamedParameterUtils.isParameterSeparator throws ArrayIndexOutOfBoundsException for non ASCII characters [SPR-16472] #21017
- GSON converter only serialises fields of controller method return type, ignoring subclass fields of response object [SPR-16461] #21006
- MimeType compareTo implementation is not compatible with equals [SPR-16458] #21003
- Resolvable type cannot resolve generic between different collection types [SPR-16456] #21001
- MockHttpServletRequest.addHeader fails for invalid LanguageRange in Accept-Language [SPR-16454] #20999
- MockMvcRequestBuilder does not decode pathInfo [SPR-16453] #20998
- CachingConnectionFactory - Invalid session in session cache [SPR-16450] #20995
- Cannot create BindStatus for valid field on immutable form object in case of bind errors [SPR-16449] #20994
- Lambda error detection might not work on JDK 9 [SPR-16435] #20981
- ServerHttpRequest.mutate does not preserve encoded chars if path modified [SPR-16434] #20980
- Spurious WARNINGs when XML declared TransactionProxyFactoryBean's target bean depends on an annotation declared bean that depends on another bean [SPR-16427] #20973
- AbstractClientSockJsSession.close call does not propagate IOException from disconnect [SPR-16415] #20961
- ServletServerHttpRequest.getURI() may throw a java.net.URISyntaxException [SPR-16414] #20960
- SubProtocolWebSocketHandler should not log ERROR on "No messages received after ..." [SPR-16409] #20955
- StringDecoder shouldn't chop off strings randomly [SPR-16337] #20884