6 hours ago
logback

Logback 1.5.22

2025-12-11 Release of logback version 1.5.22

• In order to prevent involuntary information leakage, Logback will no longer output the value of a substituted variable, if the variable name contains any of the case-insensitive strings "password", "secret" or "confidential". This problem was reported by Chintan Rohila in issues/986.

• Logback now takes the overridden toString() method of Throwable subclasses into account when printing stack traces. This issue was reported in LOGBACK-543 by Alvin Chee, with a fix provided in PR 404 by Brett Kail.

• Instead of limit-counting guard, Logback now uses a tumbling-window guard to rate limit internal error messages.

• A bit-wise identical binary of this version can be reproduced by building from source code at commit 572379aabd2f672b49593e4020696c624541e5b0 associated with the tag v_1.5.22. Release built using Java "21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.

6 hours ago
lettuce-core

7.4.0.BETA1

Lettuce 7.4.0.BETA1

The Lettuce team is pleased to announce the first beta release of Lettuce 7.4.0!

This release introduces client-side geographic failover through the newly added MultiDBClient.

Key Features

  • Automatic Detection: The client monitors the health of all configured Redis endpoints.
  • Seamless Failover: If the active endpoint fails, traffic is automatically rerouted to the next healthiest endpoint based on configurable priorities.
  • Customizable: Developers can configure endpoints, set priorities, adjust failure sensitivity, and plug in custom health checks or failure detection logic.

Lettuce 7.4.0.BETA1 supports Redis 2.6+ up to Redis 8.x and requires Java 8 or newer. The driver is tested against Redis 8.4, 8.2, 7.4, and 7.2.

We encourage you to try out this beta and provide feedback ahead of the general availability release.

Full Changelog: https://github.com/redis/lettuce/compare/7.2.0.RELEASE...7.4.0.BETA1

Contributors

We'd like to thank all the contributors who worked on this release! @atakavci, @ggivo, @uglide

7 hours ago
spring-framework

v7.0.2

⭐ New Features

  • Avoid unnecessary list creation and processing in AbstractTestContextBootstrapper #35995
  • AbstractTestContextBootstrapper should resolve ContextLoader only once #35994
  • Log RetryException for @Retryable methods #35983
  • Consistently stop already started Lifecycle beans on cancelled refresh #35964
  • Support timeouts in @Retryable and RetryPolicy #35963
  • Use == instead of instanceof for primitive array type checks #35962
  • Introduce MultiValueMapCollector for use with streams #35958
  • Avoid package cycle caused by use of UriComponentsBuilder in ServletServerHttpRequest #35952
  • Target type in Converter interface should be @Nullable #35947
  • Provide access to attempt count in RetryListener as well as callbacks for the initial attempt #35940
  • DefaultHandshakeHandler should not log client faults on error level #35930
  • Log warning when meta-annotation is ignored due to types not present in classpath #35927
  • Revise ApplicationContext#getId() nullability to non-null #35925
  • Use concurrent set behind reactive TransactionSynchronizationManager#registerSynchronization #35921
  • Refine AbstractKotlinSerializationHttpMessageConverter#canWrite #35920
  • Register bean dependency for Optional injection point as well #35919
  • Change canRead/canWrite overrides to Class ones in AbstractSmartHttpMessageConverter #35916
  • Do not make HttpHeaders read-only in HttpEntity #35888
  • Add WebFlux SSE support with GSON #35884
  • Different ReactorNettyWebSocketSession call getId() may return the same value #35883
  • Refine nullability of Assert#noNullElements #35868
  • Allow configuring default maxIdleTime on InMemoryWebSessionStore. #35866
  • Refine BindingReflectionHintsRegistrar with ObjectToObjectConverter hints #35847
  • Add resetCaches() method to general CacheManager interface #35845
  • Enhance handleTypeMismatch error message in ResponseEntityExceptionHandler #35837
  • Add support for package-private BeanRegistrar in Spring AOT generated code #35803
  • Use ExtendedServletRequestDataBinder/ExtendedWebExchangeDataBinder for functional request binding #35800
  • Expose Collection on FragmentsRendering to facilitate Unit Tests #35775
  • Improve i18n-support for NoResourceFoundException #35758
  • Cache resolved singleton beans in injected Provider instance #35373

🐞 Bug Fixes

  • ContextConfigurationAttributes(Class) constructor incorrectly sets inheritLocations to false #36000
  • NullPointerException thrown from JdkClientHttpRequestFactory for null request header value #35996
  • State inconsistency in LazyConnectionDataSourceProxy when connection settings fail #35980
  • SubscriberInputStream#resume misuses parked thread reference #35978
  • Shared EntityManager returned by AbstractEntityManagerFactoryBean cannot be advised by AspectJ interceptor #35974
  • RestClient cannot make HEAD requests when the response declares gzip Content-Encoding #35966
  • ServerRequestObservationContext(s) miss Propagator.Getter method implementation #35965
  • Jackson used instead of kotlinx.serialization for more complex types #35960
  • Strong locking in ConcurrentReferenceHashMap#computeIfAbsent may cause context initialisation deadlock #35944
  • BridgeMethodResolver change in 6.2.13 breaks Spring Data entity introspection #35936
  • DefaultMessageListenerContainer does not clear Session and MessageConsumer for paused invokers #35932
  • Tighten cacheable decision behind @Lazy injection point #35917
  • AOT-generated bean definition does not consider name of RuntimeBeanReference using name and type #35913
  • Accidental fallback match for Collection-type beans due to @Bean-level qualifier annotation #35908
  • SingletonSupplier should be defensive against singletonInstance/initialized visibility mismatch #35905
  • SortedResourcesFactoryBean does not accept non-existent resources anymore #35895
  • Support reading unresolvable types in AbstractJacksonHttpMessageConverter #35889
  • Refine Kotlin Serialization codec type checks #35885
  • UrlHandlerFilter also removes query parameters and fragment when using HTTP redirect #35873
  • Fix handling of ServerSentEvent with Jackson encoder #35872
  • @EnableResilientMethods does not participate in globally enforced target class proxying #35863
  • RestTestClient can leak HTTP connections when no body expectations are performed #35784
  • Use provided ReactiveAdapterRegistry in BindingContext constructor #35771
  • PathMatchingResourcePatternResolver fails with URI in JAR manifest Class-Path entries #35682

📔 Documentation

  • Correct link to Reactive Libraries in reference docs #35970
  • Document that annotations are ignored if attributes reference types not present in the classpath #35959
  • Remove JUnit 4 based meta-annotation example #35903
  • Refer to "Spring Tools" instead of "Spring Tools for Eclipse" in reference manual #35901
  • Document that SpringExtension requires JUnit Jupiter 6.0 or higher #35900
  • Fix broken Javadoc links to methods #35899
  • Clarify JMS sessionTransacted flag for local versus global transaction #35897
  • Reference docs should not use obsolete "junit5" links #35892
  • Testing chapter references nonexistent Dependency Management documentation #35890
  • Wrong interface in WebFlux Documentation page for API Version #35887
  • Update reference documentation to use Jackson 3 #35886

🔨 Dependency Upgrades

  • Upgrade to json-path 2.10.0 #35924
  • Upgrade to Micrometer 1.16.1 #35984
  • Upgrade to Reactor 2025.0.1 #35985

❤️ Contributors

Thank you to all the contributors who worked on this release:

@JohnNiang, @Pankraz76, @florianhof, @ivonaest, @izeye, @jnizet, @ngocnhan-tran1996, @remeio, and @zamzterz

7 hours ago
lettuce

7.4.0.BETA1

Lettuce 7.4.0.BETA1

The Lettuce team is pleased to announce the first beta release of Lettuce 7.4.0!

This release introduces Automatic Client-Side Endpoint Failover through the newly added MultiDBClient.

Key Features

  • Automatic Detection: The client monitors the health of all configured Redis endpoints.
  • Seamless Failover: If the active endpoint fails, traffic is automatically rerouted to the next healthiest endpoint based on configurable priorities.
  • Customizable: Developers can configure endpoints, set priorities, adjust failure sensitivity, and plug in custom health checks or failure detection logic.

Lettuce 7.4.0.BETA1 supports Redis 2.6+ up to Redis 8.x and requires Java 8 or newer. The driver is tested against Redis 8.4, 8.2, 7.4, and 7.2.

We encourage you to try out this beta and provide feedback ahead of the general availability release.

Full Changelog: https://github.com/redis/lettuce/compare/7.2.0.RELEASE...7.4.0.BETA1

Contributors

We'd like to thank all the contributors who worked on this release! @atakavci, @ggivo, @uglide

13 hours ago
spring-framework

v6.2.15

⭐ New Features

  • Avoid package cycle caused by use of UriComponentsBuilder in ServletServerHttpRequest #35954
  • DefaultHandshakeHandler should not log client faults on error level #35948
  • Use concurrent set behind reactive TransactionSynchronizationManager#registerSynchronization #35922
  • Expose Collection on FragmentsRendering to facilitate Unit Tests #35912
  • Different ReactorNettyWebSocketSession call getId() may return the same value #35911
  • Enhance handleTypeMismatch error message in ResponseEntityExceptionHandler #35878

🐞 Bug Fixes

  • NullPointerException thrown from JdkClientHttpRequestFactory for null request header value #35998
  • State inconsistency in LazyConnectionDataSourceProxy when connection settings fail #35981
  • SubscriberInputStream#resume misuses parked thread reference #35979
  • PathMatchingResourcePatternResolver fails with URI in JAR manifest Class-Path entries #35967
  • Strong locking in ConcurrentReferenceHashMap#computeIfAbsent may cause context initialisation deadlock #35945
  • BridgeMethodResolver change in 6.2.13 breaks Spring Data entity introspection #35941
  • DefaultMessageListenerContainer does not clear Session and MessageConsumer for paused invokers #35935
  • Use provided ReactiveAdapterRegistry in BindingContext constructor #35934
  • Tighten cacheable decision behind @Lazy injection point #35918
  • Use provided ReactiveAdapterRegistry in BindingContext constructor #35914
  • Accidental fallback match for Collection-type beans due to @Bean-level qualifier annotation #35909
  • SortedResourcesFactoryBean does not accept non-existent resources anymore #35896

📔 Documentation

  • Document that annotations are ignored if attributes reference types not present in the classpath #35973
  • Fix broken Javadoc links to methods #35904
  • Refer to "Spring Tools" instead of "Spring Tools for Eclipse" in reference manual #35902
  • Clarify JMS sessionTransacted flag for local versus global transaction #35898
  • Reference docs should not use obsolete "junit5" links #35893
  • Testing chapter references nonexistent Dependency Management documentation #35891

🔨 Dependency Upgrades

  • Upgrade to json-path 2.10.0 #35937
  • Upgrade to Micrometer 1.14.14 #35986
  • Upgrade to Reactor 2024.0.13 #35987