Skip to content

Releases: spring-projects/spring-framework

5.1 RC1 Release

17 Jan 14:14
Compare
Choose a tag to compare

⭐ 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...
Read more

5.0.8 Release

17 Jan 14:17
Compare
Choose a tag to compare

⭐ 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 throws java.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

  • Incorrect Class reference in documentation [SPR-17042] #21580
  • Update documentation references to Number/Currency/PercentStyleFormatter [SPR-17022] #21560
  • Doc: AsyncConfigurer causes dependencies to be created early [SPR-16945] #21484

5.0.7 Release

17 Jan 14:17
Compare
Choose a tag to compare

⭐ 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

17 Jan 14:21
Compare
Choose a tag to compare

⭐ 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

  • Incorrect Java Syntax in Spring Framework Documentation [SPR-16811] #21351
  • Document JUnit Jupiter options in Spring 4.3.x [SPR-16446] #20991

5.0.6 Release

17 Jan 14:17
Compare
Choose a tag to compare

⭐ 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

17 Jan 14:21
Compare
Choose a tag to compare

⭐ 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

17 Jan 14:21
Compare
Choose a tag to compare

🪲 Bug Fixes

  • EL1072E when evaluating compiled null-safe expression [SPR-16489] #21032
  • ClassCastException in TestDispatcherServlet [SPR-16695] #21236

5.0.5 Release

17 Jan 14:17
Compare
Choose a tag to compare

⭐ 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...
Read more

4.3.15 Release

17 Jan 14:21
Compare
Choose a tag to compare

⭐ 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...
Read more

5.0.4 Release

17 Jan 14:18
Compare
Choose a tag to compare

⭐ 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

📔 Documentation

  • Update and improve script templating documentation [SPR-16447] #20992
  • [docs] Add WebFlux content on URI links [SPR-16423] #20969
  • [docs] Explain URI template encoding [SPR-16422] #20968
  • [docs]: Add WebFlux content on view technology [SPR-16393] #20939