All Versions
53
Latest Version
Avg Release Cycle
33 days
Latest Release
1436 days ago

Changelog History
Page 3

  • v5.2.0.RC2 Changes

    September 05, 2019

    🍱 ⭐️ New Features

    • Invalid partial content requests possible with start byte = resource-byte-count #23576
    • πŸ‘Œ Support invoking static methods with ReflectionTestUtils.invokeMethod() #23504
    • Detect ClientHttpConnector to use by checking classpath #23493
    • βœ‚ Remove statusCode state from ContentCachingResponseWrapper #23490
    • πŸ›  Fix "array index out of bounds" problem reported by LGTM.com #23485
    • πŸ”§ Explicit attribute overrides configured via @AliasFor not supported for components picked up via component scanning #23402
    • Provide a way to predict bean types without initializing FactoryBeans #23374
    • Pre-allocate NoTransactionException in TransactionContextManager #23360
    • πŸ‘‰ Use System.nanoTime() instead of System.currentTimeMillis() in StopWatch #23235
    • Correct encoding and decoding of "message/x.rsocket.routing.v0" #23137
    • βž• Add support for Coroutines transactions #22915

    🍱 🐞 Bug Fixes

    • βœ… Cannot use relative path following placeholder in @TestPropertySource locations #23544
    • Spring Webflux 5.2.0.M2 - Kotlin coroutines - ServerRequest.awaitPrincipal always null #22986

    πŸ“” Documentation

    • πŸ›  Fix typos related to indefinite articles #23555
    • βž• Adding Kotlin code examples to Testing documentation. #23545
    • βž• Add @since for getCacheFilter and setCacheFilter #23519
    • πŸ— Wiki build instructions for local Maven repo are outdated #23517
    • πŸ›  Fix unmatched parenthesis in the documentation of ContextHierarchy #23487
    • Modify the javadoc of @EnableWebFlux annotation #23457
    • πŸ“„ Kotlin examples in Spring Core docs should use extension functions with reified types #23456
    • πŸ‘Œ Improve language-switch CSS #23454
    • πŸ›  Fix data access documentation typo #23450
    • Fix / in Javadoc #23439
    • πŸ“š Reference documentation for ContextClosedEvent is misleading #23436
    • πŸ“š Reference documentation for @Autowired's required attribute is misleading #23428
    • Provide code samples in Kotlin in addition to Java [SPR-17245] #21778

    ⬆️ πŸ”¨ Dependency Upgrades

    • ⬆️ Upgrade to Reactor Dysprosium-RC1 #23579
    • ⬆️ Upgrade to RSocket 1.0 RC3 #23543
    • ⬆️ Upgrade to Kotlin 1.3.50 #23536
    • ⬆️ Upgrade to Kotlin Coroutines 1.3.0 #23535
    • ⬆️ Upgrade to CGLIB 3.3 #23453

    🍱 ❀️ Contributors

    πŸš€ We'd like to thank all the contributors who worked on this release!

  • v5.2.0.RC1 Changes

    August 05, 2019

    🍱 ⭐️ New Features

    • πŸ—„ Deprecate mutable aspects of MethodParameter #23385
    • βž• Add status code 425 ("Too Early") to HttpStatus enum #23384
    • πŸ”€ Search for annotations on enclosing classes with MergedAnnotations API #23378
    • πŸ— RSocketRequester.Builder support for ConnectionSetupPayload #23368
    • Introduce SimpleUrlHandlerMapping constructor that accepts an order and a Map #23362
    • Introduce interface cache for proxied EntityManager and Query types #23345
    • Provide functionality similar to Spring Boot's BeanTypeRegistry #23341
    • βž• Add attribute support for FactoryBean bean definitions #23339
    • Consider generics when predicting FactoryBean types #23338
    • Cache isFactoryBean detection #23337
    • πŸ”€ Retain merged bean definition caches during post processing #23336
    • βž• Add missing ResolvableType variants of getBeanNamesForType #23335
    • βž• Add multi-prefix comment support for @SqlConfig #23331
    • πŸ‘Œ Support @TestPropertySource as a repeatable annotation #23320
    • βž• Add DataBuffer::toString(Charset) #23317
    • πŸ‘Œ Improvements to RSocketStrategies #23314
    • πŸ‘Œ Support for template routes with encoded separator in RSocketRequester #23310
    • Treat null path as non-matching pattern in AntPathMatcher #23297
    • βž• Add multi-prefix comment support for SQL scripts #23289
    • βž• Add a ScriptEngine factory to ScriptTemplateConfigurer #23258
    • 🌲 Log at WARN level in case of contradicting PersistenceUnitManager setup #23257
    • ExchangeFilterFunctions.basicAuthentication(String, String) should cache the encoded credentials #23256
    • Introduce TransactionOperations.execute(Runnable) convenience method #23250
    • πŸ‘» ExceptionHandlerExceptionResolver warns when re-throwing the exception cause #23233
    • πŸ”„ Change @TestConstructor.autowire attribute into an enum #23224
    • πŸ‘Œ Improve performance of FormContentFilter #23216
    • πŸ“œ MimeTypeUtils.parseMimeType returns null MIME type in case of high concurrency #23211
    • βž• Add explicit support for multipart/mixed in FormHttpMessageConverter #23209
    • πŸ‘€ AbstractMessageConverterMethodProcessor results in 406 even when ResponseEntity presets content type #23205
    • BasicAuthenticationInterceptor should cache the encoded credentials #23204
    • πŸ‘ Introduce addSupportedMediaTypes() in FormHttpMessageConverter #23203
    • βž• Add no-op TransactionOperations implementation #23198
    • @CacheEvict beforeInvocation with transaction does not work #23192
    • Presort beans in ControllerAdviceBean.findAnnotatedBeans() #23188
    • Consider generics on ApplicationListener @Bean methods #23178
    • ConnectionMapping annotation for handling of RSocket connection-level frames #23177
    • πŸ‘Œ Support for registering handlers in RSocketRequester.Builder #23170
    • πŸ‘ Leverage new Kotlin script templating support #23165
    • πŸ‘Œ Improve RSocketRequester.ResponseSpec Kotlin extensions #23164
    • πŸ‘Œ Support Ordered interface for @ControllerAdvice beans #23163
    • πŸ‘Œ Support multipart/related and multipart/mixed MediaTypes in RestTemplate #23159
    • πŸ“‡ RSocket Metadata Mimetype "text/plain" and "application/json" support #23157
    • 0️⃣ onStatus throws away default status handler #23155
    • Forbid null HttpMessageConverter in RestTemplate and HttpMessageConverterExtractor #23151
    • πŸ‘Œ Support target type in MockMvcResultMatchers.jsonPath() #23141
    • UrlBasedViewResolvers should not override custom requestContextAttribute with null #23129
    • βž• Add queryParams and replaceQueryParams with Collection to UriBuilder #23119
    • Provide functionality similar to Spring Boot's BeanTypeRegistry #23056
    • πŸ”¦ Expose default error handling from RequestHeadersSpec::retrieve for use with RequestHeadersSpec::exchange #22825
    • πŸ‘‰ Use the accepted profiles on the BeanDefinitionDsl #22393
    • Consider conditional view caching #22391
    • WebClient's ResponseSpec should provide access to response headers #22368
    • πŸ‘Œ Support for non-blocking event listener methods [SPR-17298] #21831
    • πŸ”€ Merge class-level and method-level @Sql declarations #1835

    🍱 🐞 Bug Fixes

    • @TransactionalEventListener should not receive an event if no transaction is active #23276
    • 🀑 MockMvc no longer handles UTF-8 characters #23219
    • NullPointerException when FormContentFilter handles a request with no content type #23215
    • RSocketRequester.ResponseSpec Kotlin extensions issue #23185
    • PathPattern::extractPathWithinPattern does not use custom separator #23168
    • πŸ“œ PathPatternRouteMatcher should parse routes with custom separator #23167
    • 0️⃣ DefaultMultipartMessageReader.FilePartPart.content not available under Reactor Netty #23131
    • 0️⃣ DefaultMultipartMessageReader.FilePart.transferTo fails occasionally #23130

    πŸ“” Documentation

    • πŸ›  Fix grammar in package-info.java #23401
    • βž• Add since tag for ClientResponse.Builder.request() #23364
    • πŸ›  Fix typo in data-access.adoc #23247
    • πŸ›  Fix typo in CONTRIBUTING.md #23180
    • βœ… Document supported @Transactional attributes in the TestContext framework #23149
    • πŸ‘ Document WebFlux FreeMarker macro support in Reference Manual #23133
    • βž• Add since for JettyClientHttpConnector change #23128
    • πŸ‘Œ Improve Kotlin integration testing documentation #22875

    ⬆️ πŸ”¨ Dependency Upgrades

    • ⬆️ Upgrade to RSocket 1.0.0-RC2 #23359
    • ⬆️ Upgrade to ASM 7.2 #23156
    • ⬆️ Upgrade to JUnit Jupiter 5.5 #23076

    🍱 ❀️ Contributors

    πŸš€ We'd like to thank all the contributors who worked on this release!

  • v5.2.0.M3 Changes

    June 13, 2019

    🍱 ⭐️ New Features

    • 🌲 Log exception when closing InputStream in AbstractResource #23116
    • βž• Add MultiValueMap.addIfAbsent method #23111
    • πŸ‘ Allow Printers and Parsers to be registered individually to FormatterRegistry #23110
    • πŸ‘Œ Improve FreeMarker macro support in spring-webflux #23105
    • Annotate Object#equals parameter with @Nullable #23093
    • πŸ‘ Allow separator configuration in PathPatternParser #23092
    • Side effect from ProducesRequestCondition cache with multiple RequestMappingHandlerMapping beans #23091
    • Refine Coroutines adapter registration activation #23087
    • πŸ“‡ Rename TransactionSynchronizationManager#currentTransaction to something more meaningful #23086
    • πŸ‘Œ Support filename input in MultipartBodyBuilder #23083
    • πŸ‘Œ Support consistent ordering of string adapting properties #23081
    • βž• Add constants for application/cbor to MediaType #23042
    • Avoid unnecessary call to get message type #23040
    • πŸ‘Œ Support for fine-grained by-type references in the bean definition model #23032
    • RestTemplateXhrTransport fails for a StreamingHttpOutputMessage type request #23030
    • Provide utility for writing Properties to a file in a repeatable manner #23018
    • πŸ”¦ Expose StompSubProtocolHandler and StompBrokerRelayMessageHandler metrics #23015
    • πŸ”§ Ensure access to configured mime types in client-side RSocket requester or responder #23012
    • πŸ‘ Consistently support CompletionStage/CompletableFuture in ReactiveAdapterRegistry #23011
    • βž• Add FreeMarker macro support in spring-webflux #23002
    • NamedParameterJdbcTemplate: treat Iterable parameters like Collections #22981
    • βž• Add JettyClientHttpConnector that accepts a HttpClient instance and a JettyResourceFactory #22977
    • βž• Add HttpHeaders.getOrEmpty(…) to avoid clients having to default to an empy list #22949
    • ⏱ messageBrokerTaskScheduler incorrect type #22943
    • πŸ‘Œ Support composite metadata in RSocketRequester and MessageHandlerAcceptor #22798
    • βž• Add leading slash for path predicate if not present #22795
    • Enable use of PathPattern for RSocket routing #22642
    • Ensure indexer output is deterministic and repeatable #22383

    🍱 🐞 Bug Fixes

    • πŸ‘» Soft reference-based cache causes confusing exception message from AnnotationTypeMapping resolveAliasTarget #23010

    πŸ“” Documentation

    • 🌐 Error in javadoc for o.s.web.servlet.function.ServerResponse #23075
    • πŸ‘ Document @Value support in the reference manual #23052
    • πŸ›  Fix typo #23046

    🍱 ❀️ Contributors

    πŸš€ We'd like to thank all the contributors who worked on this release!

  • v5.2.0.M2 Changes

    May 09, 2019

    🍱 ⭐️ New Features

    • 0️⃣ DefaultCacheAwareContextLoaderDelegate should log which application context instance was stored or retrieved from cache #22925
    • 🚦 Replace signal materialization in TransactionAspectSupport with usingWhen #22911
    • πŸ”€ MergedAnnotation meta-data support #22909
    • πŸ‘Œ Support Publisher in MultipartBodyBuilder#asyncPart #22876
    • Consider adding is*Enabled() methods to LogAccessor #22862
    • βž• Add getRoot() to MergedAnnotation #22818
    • πŸ”¦ Expose StompSubProtocolWebSocketHandler metrics #22807
    • Create RSocketRequesterBuilder in spring-messaging #22806
    • Return value doesn't serialize to JSON when return type is Mono of Interface in WebFlux #22803
    • Some trivial optimization in method populateBean() #22792
    • Consistently implement decodeToMono by joining buffers first #22783
    • βž• Add decodeDataBuffer to Decoder and encodeValue to Encoder #22782
    • βž• Add coroutines support to RSocket @MessageMapping and RSocketRequester #22780
    • βž• Add CBOR codec (single value only) #22767
    • βž• Add route(RequestPredicate, HandlerFunction) variant to RouterFunctions builder #22701
    • πŸ– Handle Optional<?> @RequestParam() when generating URL using MvcUriComponentsBuilder #22656
    • βž• Add reactive transaction support SPI #22646
    • πŸ‘ Reactive transaction management support #22590
    • πŸ‘Œ Support constructor injection without @Autowired when using JUnit Jupiter in spring-test #22286
    • βž• Add protected methods to resolve the target type for payload arguments [SPR-17503] #22035
    • πŸ‘ Consumes condition support for optional content [SPR-17478] #22010
    • Consistent error handling when streaming with servlet vs reactive stack [SPR-17440] #21972
    • Create a WebFilter for ServerWebExchange Reactor Context [SPR-17213] #21746
    • πŸ‘‰ Make WebFlux multipart support fully Reactive [SPR-17122] #21659

    🍱 🐞 Bug Fixes

    • πŸ”§ @Configuration(proxyBeanMethods = false) cannot implement ImportAware #22920
    • πŸ›  Fix suspend/resume in AbstractReactiveTransactionManager #22918
    • πŸ›  Fix suspending handler method type handling #22827
    • πŸ”— LinkedCaseInsensitiveMap track removals via keySet, entrySet or values #22821
    • πŸ‘Œ Support suspending functions returning Flow #22820
    • πŸ”— LinkedMultiValueMap.getFirst - check that values is not empty #22421

    πŸ“” Documentation

    ⬆️ πŸ”¨ Dependency Upgrades

    • ⬆️ Upgrade to Reactor Dysprosium #22930

    🍱 ❀️ Contributors

    πŸš€ We'd like to thank all the contributors who worked on this release!

  • v5.2.0.M1 Changes

    April 10, 2019

    🍱 ⭐️ New Features

    • πŸ‘ @DestinationVariable not working with RSocket support #22776
    • πŸ“‡ Consistent non-exposure of inherited annotations in AnnotationMetadata #22766
    • βœ… Introduce publishEvent() convenience method in TestContext #22765
    • βž• Add support to query if ApplicationContext is available in the TestContext framework #22756
    • πŸ‘‰ Use more efficient Reactor operators #22727
    • 🌲 Spring logging support enhancement #22726
    • Primary resolution against FactoryBean instances #22711
    • πŸ”¦ Expose Jaxb2Marshaller createMarshaller() and createUnmarshaller() methods #22708
    • WebClient option with both URI template and UriBuilder #22705
    • Track when isLazyInit has been set in AbstractBeanDefinition #22694
    • Infer null-safety from type variables in Kotlin extensions when possible #22687
    • RequestCondition optimizations #22644
    • 0️⃣ Custom WebFlux encoders/decoders are placed below defaults #22612
    • JtaTransactionManager created with the JtaTransactionManagerFactoryBean is not ready to use #22605
    • 🌐 Avoid calling other bean methods in web config #22596
    • πŸ‘ Allow usage of BeanNameGenerator in ImportBeanDefinitionRegistrars #22591
    • βž• Add public getDeclaredMethods method to ReflectionUtils #22580
    • Cache BridgeMethodResolver results #22579
    • ⚑️ Optimize StringUtils.cleanPath #22568
    • πŸ”§ Use less memory and try to skip more classes when processing @configuration classes #22563
    • ✨ Enhance support for java.time types in spring-web #22546
    • Migrate CacheControl to use java.time.Duration for durations #22545
    • 0️⃣ @RequestMapping without any attributes behaves as "default endpoint" #22543
    • πŸ“‡ BeanFactory.get*ForAnnotation should take @bean metadata into account #22541
    • Revisit BeanUtils.instantiateClass to work consistently with Kotlin and Java classes #22531
    • πŸ‘‰ Use String::isEmpty instead of "".equals(arg) when arg is not null #22502
    • CorsUtils#isCorsRequest should detect same origin requests with an Origin header #22496
    • "java.lang.IllegalStateException: Only one connection receive subscriber allowed." is masking real exceptions in WebFlux. #22486
    • πŸ“¦ Exclude jdk package in ShadowingClassLoader #22485
    • βœ… Provide support for publishing test execution life-cycle events #22477
    • πŸ”§ Clarify configuration lite support and offer an opt-in option #22461
    • CorsInterceptor should add to the first interceptor in InterceptorChain? #22459
    • SpringFactoriesLoader.instantiateFactory(…) should report offending class on error #22453
    • Minimise need to iterate over a class's methods #22420
    • Some very simple improvements regarding usage of ArrayList #22418
    • Extract duplicated code into a separate method #22404
    • Simplify ConcurrentReferenceHashMap #22387
    • πŸ›° MappingJackson2MessageConverter doesn't check if payload assignable to target type #22386
    • WebClient filters should be deferred to the subscription time #22375
    • βž• Added configurable maxFramePayloadLength to ReactorNettyWebSocketClient #22367
    • Avoid MimeType garbage creation #22340
    • πŸ‘‰ Use AtomicInteger instead of unsafe increment on volatile fields #22278
    • 0️⃣ DefaultCorsProcessor does not set "vary: Origin" if the request has no Cors header #22273
    • Pass filename hint to the ResourceDecoder #22267
    • πŸ›  Use Method in CglibAopProxy.fixedInterceptorMap instead of String returned from Method::toString #22258
    • βž• Add option for AbstractRequestLoggingFilter to blacklist certain headers #22244
    • Limit ref() and provider() visibility in Kotlin DSL [SPR-17648] #22177
    • πŸ‘Œ Improve message for HttpStatusCodeException with empty status text #22162
    • βž• Add a getAttribute method to the org.springframework.ui.Model interface [SPR-17613] #22145
    • ↔ Integrate Reactor debugging features in WebFlux [SPR-17573] #22105
    • βž• Add bean definition attribute for ConfigurationClassPostProcessor to skip "lite" bean detection [SPR-17412] #21945
    • MapMethodArgumentResolver precludes custom argument resolvers with Map and custom annotation [SPR-17340] #21874
    • πŸ“œ Correctly parse property name in path "map[key[foo]]" #21855
    • Bean registration with Kotlin DSL using callable reference with autowired parameters [SPR-17312] #21845
    • 🀑 MockRestServiceServer.verify() not working in a CompletableFuture [SPR-17266] #21799
    • πŸ”€ Create replacement API for handling merged annotations [SPR-17161] #21697
    • πŸ‘‰ Use parameters declared in consumes or produces condition to narrow the request mapping [SPR-17133] #21670
    • Introduce Servlet version HandlerFunction and RouterFunction [SPR-16952] #21490
    • πŸ‘ RSocket client and server support [SPR-16751] #21292
    • Incorrect return type of Kotlin suspending functions [SPR-16515] #21058
    • Let Spring show the URL mappings for @MessageMapping in startup process [SPR-16015] #20564
    • πŸ‘ Allow transaction control via Vavr Try type [SPR-15806] #20361
    • βž• Add support for Kotlin coroutines [SPR-15413] #19975
    • βœ… Publish test execution events to the test ApplicationContext [SPR-13916] #18490
    • toString for AbstractSqlParameterSource #2080
    • Open parameter autowiring utility for external use #2060
    • βž• Add Kotlin DSL for working with MockMvc #1951

    🍱 🐞 Bug fixes

    • πŸ”€ AnnotatedElementUtils.getMergedAnnotation does not merge deep value attributes correctly #22703
    • AnnotationUtils.findAnnotation(Method method) broken for repeatable anns #22702
    • ConcurrentModificationException when serving Servlet.fn request and Undertow #22698
    • AnnotatedElementUtils.getAllAnnotationAttributes(…, "javax.annotation.Nonnull") returns null #22696
    • TypeDescriptor throws NPE due to because AnnotatedElement proxy is not cloning arrays #22695
    • AnnotationUtils.isAnnotationMetaPresent(…) no longer considers javax.annotation.Nonnull #22685
    • getDeclaredAnnotation can't find Nullable #22663
    • AnnotationsScanner throws NPE due to because AnnotatedElement proxy is not cloning arrays #22655
    • πŸ”€ Regression in merged annotation resolution #22654
    • HierarchicalUriComponents expanding order #22447

    πŸ“” Documentation

    • ⚑️ Update Scheduled.java Javadoc to explicitly include cron element order #22777
    • Small typo in JavaDoc for UrlPathHelper.setUrlDecode() method #22768
    • πŸ›  Fix typo #22589
    • Annotation-based filters for component scanning find meta-annotations as well #22551
    • πŸ›  Fix javadoc for AbstractApplicationContext.registerBeanPostProcessors() #22513
    • πŸ›  Fix typo in cache abstraction chapter #22256
    • Spring webflux WebClient HttpStatus::is4xxServerError #22241
    • πŸ‘ Document @Autowired support on method parameters [SPR-16576] #21118
    • βž• Add tip clarifying that @transactional is not applicable to @BeforeClass methods #456

    ⬆️ πŸ”¨ Dependency upgrades

    • ⬆️ Upgrade to ASM 7.1 #22503
    • ⬆️ Upgrade to JUnit Jupiter 5.4 #22308

    🍱 ❀️ Contributors

    πŸš€ We’d like to thank all the contributors who worked on our current release!

  • v5.1.20.RELEASE Changes

    December 09, 2020

    🍱 ⭐ New Features

    • ContentCachingResponseWrapper should not add β€œContent-Length” when β€œTransfer-Encoding” is present #26192
    • Wildcard is a valid Access-Control-Expose-Headers value #26116
    • EntityManagerFactory startup failure in deferred mode is only available on first use #26095
    • πŸ”Š StompSubProtocolHandler logs failed authentication with error stack trace #26038
    • 0️⃣ DefaultSimpUserRegistry prevents event from being published if original SimpMessageHeaderAccessor cannot be found #26015
    • Inefficient request handling inside ServletRequestDataBinder #26005

    🍱 🐞 Bug Fixes

    • βœ‚ Remove duplicate "property" in PropertyCacheKey.toString() #26243
    • DataBuffer Leak in Server Response #26235
    • PathMatchingResourcePatternResolver fails to resolve resources from JAR located in path with '#' on JDK 11+ #26106
    • 🚚 UrlPathHelper#removeJsessionid doesn't remove the jsessionid from the URL #26084
    • ⚑️ NamedParameterJdbcTemplate.batchUpdate does not individually apply the SQL type from each SqlParameterSource argument #26074
    • βœ… Order of profiles in tests is not preserved #26009

    πŸ“” Documentation

    • 0️⃣ DateTimeFormat ISO.DATE_TIME javadoc contains misleading default note #26136

    ⬆️ πŸ”¨ Dependency Upgrades

    • ⬆️ Upgrade to Reactor Californium-SR23 #26233
  • v5.1.19.RELEASE Changes

    October 27, 2020

    🍱 ⭐ New Features

    • ⚑️ Optimize String argument resolution in MessageTag #25923
    • Avoid creation of unused logger instance in AbstractMediaTypeExpression #25902
    • βœ… Cannot test @RequestPart multipart controllers with Servlet MockPart #25894
    • Native Hibernate 5 bootstrapping with JTA transaction manager requires hibernate.transaction.coordinator_class=jta to be set #25862
    • βž• Add MariaDB to the supported database products for procedures and functions #25812

    🍱 🐞 Bug Fixes

    • Incorrect http response for a request using the Range header for pre-compressed resources #25979
    • @ActiveProfiles with same profiles but different order results in duplicate ApplicationContext #25974
    • πŸ”— LinkedMultiValueMap downstream issue with MultiValueMapAdapter package private base class #25961
    • 🚚 jsessionid breaks request mappings when removeSemicolonContent is turned off #25867
    • πŸ‘ SimpMessagingTemplate.convertAndSend results in UnsupportedOperationException when Spring Cloud Sleuth is present #25835
    • Wrong type inference in Kotlin while overriding RequestMappingHandlerMapping#getMappingForMethod #25818
    • ClassCastException when wiring bean using method injection (NullBean instead of 'null') #25807

    πŸ“” Documentation

    • πŸ“š Published reference documentation contains unnecessary folders and files #25794
    • Incorrect example in javadocs of Assert.notNull(object, messageSupplier) #25775

    ⬆️ πŸ”¨ Dependency Upgrades

    • ⬆️ Upgrade to Reactor Californium-SR22 #25948
  • v5.1.18.RELEASE Changes

    September 15, 2020

    🍱 ⭐ New Features

    • πŸ‘ PropertiesLoaderSupport should ignore socket/connect exceptions as well #25720
    • πŸ”’ Avoid full singleton lock for DefaultSingletonBeanRegistry.getSingleton(beanName, false) #25695
    • Possible optimization in UrlResource #25550
    • Refine use of substring operations #25513

    🍱 🐞 Bug Fixes

    • FileUrlResource isWritable method returns true if URL protocol is not indicating a file #25739
    • πŸ‘Œ VerifyErrors when using SpEL compilation with Thymeleaf when invoking a default method defined in an interface #25711
    • πŸ“‡ CallMetaDataContext.reconcileParameters overwrites cursor name #25708
    • SQLErrorCodesFactory.getErrorCodes(DataSource) returns empty error codes if access to transactional connection fails #25692
    • πŸ‘‰ Make "org.springframework.util.unit.DataSize" class Serializable #25676
    • Joda-Time presence check fails to detect Joda-Time 2.x specifically #25658
    • Potential integer overflow in AbstractResourceBasedMessageSource.setCacheSeconds(int) #25642
    • Lazy dependency proxy does not populate bean dependencies #25563
    • StaticListableBeanFactory.isSingleton() returns false for singleton beans #25523
    • 🀑 MockHttpServletResponse reset() does not reset charset field #25510

    πŸ“” Documentation

    • Document how to specify Jackson JSON view serialization hints with @RestController and Webflux #25704
    • πŸ— Prevent confusion about build(boolean) method in UriComponentsBuilder #25701

    ⬆️ πŸ”¨ Dependency Upgrades

    • ⬆️ Upgrade to Reactor Californium-SR21 #25731
  • v5.1.17.RELEASE Changes

    July 21, 2020

    🍱 ⭐ New Features

    • Defer creating logger in StandardWebSocketHandlerAdapter #25433
    • ⏱ Unnecessarily alarming stack trace logged during scheduler resolution #25416
    • 🚚 MutablePropertySources will not find or remove proxied sources #25406
    • Profiles should be comparable when created via Profiles.of() #25363

    🍱 🐞 Bug fixes

    • πŸ— UriComponentsBuilder.cloneBuilder() cause sharing query parameters between builders #25424
    • 🚚 DefaultListableBeanFactory.getBean(Class) may throw NoSuchBeanDefinitionException when removeBeanDefinition is being called simultaneously to remove an unrelated bean #25421
    • Oracle LOB segments holding TEMP space after executing SP using SimpleJdbcCall with SqlParameterSource #25417
    • πŸ‘ MappingJackson2HttpMessageConverter might be too specific in its Charset support #25343
    • ServerHttpRequest.getSslInfo() always returns null for reactor-netty HTTP/2 requests #25286
    • βͺ NoRollbackFor rule causes TransactionAspectSupport to log unwarranted "exception overridden" error on WebSphere #25267
    • AbstractJackson2HttpMessageConverter - Check for encoding breaks JSON to POJO de-serialization experience #25252
    • The AbstractTemplateViewResolver class is not abstract #25241

    πŸ“” Documentation

    • 0️⃣ Clarify enforceInitMethod/enforceDestroyMethod default values in AbstractBeanDefinition #25403
    • πŸ‘» Document exception handling limitations in TaskDecorator implementations (specifically for ThreadPoolTaskExecutor#submit) #25233

    ⬆️ πŸ”¨ Dependency upgrades

    • ⬆️ Upgrade to Reactor Californium-SR20 #25412
  • v5.1.16.RELEASE Changes

    June 09, 2020

    🍱 ⭐ New Features

    • 🐎 Performance enhancement in execution of ResponseEntity.of() #25197
    • πŸ‘Œ Support for shared GroovyClassLoader in GroovyScriptFactory #25181
    • πŸ”§ Make use of custom types configurable in YamlProcessor #25154
    • Missing null checks in AbstractMessageChannel.addInterceptor #25089
    • πŸ”€ Avoid full synchronization in AbstractRefreshableApplicationContext.getBeanFactory() since it can lead to massive thread blocking #25083
    • πŸ›  Fix concurrency issues in XStreamMarshaller #25026
    • 🌲 Avoid logging exception for closed session in AbstractSockJsSession #25003

    🍱 🐞 Bug Fixes

    • AbstractJackson2HttpMessageConverter does not respect character encoding in canRead/canWrite #25185
    • ExchangeStrategies custom codec's reader & writer are not registered #25150
    • MultiValueMapAdapter.getFirst fails with IndexOutOfBoundsException in case of empty List #25141
    • πŸ‘» WebSphereUowTransactionManager causes exception for PROPAGATION_SUPPORTS when timeout is specified #25135
    • πŸ”€ Avoid ClassCastException on IllegalArgumentException when invoking sync get cache method #25118
    • πŸ— DefaultServerRequestBuilder does not respect attributes when building the ServerRequest #25107
    • πŸ›  Fix race condition in WriteResultPublisher between subscription and error in publishError #25102
    • HttpHeaders equals may return false without comparing actual content #25035
    • πŸ›  Fix race condition in WriteResultPublisher between subscription and completion in publishComplete #25004

    ⬆️ πŸ”¨ Dependency Upgrades

    • ⬆️ Upgrade to Reactor Californium-SR19 #25211