Skip to content

@simonbasle simonbasle released this Mar 23, 2020 · 26 commits to master since this release

reactor-core 3.3.4.RELEASE is part of Dysprosium-SR6 Release Train.

⚠️ Update considerations and deprecations

  • Introduce and use VirtualTimeScheduler#getOrSet(boolean) (#2060, #2017)
    • VirtualTimeScheduler did not run scheduled tasks since 3.3.3.RELEASE
  • retryWhen(Function), all retryBackoff and retry(Predicate)/retry(long, Predicate) are now deprecated, to be replaced by the more generic retryWhen(Retry) (see RetrySpec and RetryBackoffSpec for configurable builders that cover these methods and more)

New features and improvements

  • Refactor of retryWhen to switch to a Spec/Builder model (#1979, #1978, #1905, #2063, #2052, #2064, #2079)
    • The new model is slated to replace retryWhen(Function) and retryBackoff as well as some retry variants in 3.4.0
    • The API is build around the Retry abstract class, with two builders (or Spec) to fluently configure the retries
    • This allows us to introduce additional new features:
      • all variants support a filter for errors to be retried
      • we now have sync and async retry callbacks when retry triggers
      • we can customize the exception to be thrown when max attempts is reached and we
      • transient bursts of errors can be handled separately, resetting eg. the backoff to its minimum provided at least one onNext comes in between errors
  • In repeatWhen and retryWhen, when a Context is emitted, we now merge it with the current instead of replacing it (#2056)

🐞 Bug fixes

  • Mono.toFuture() now avoids invoking cancel after completion (#2070)
  • Various fixes in switchOnFirst (#2019, #2068)
    • inner stream cancellation is better taken into account
    • some race conditions have been fixed
    • race conditions are tested
    • cancellation signal of the whole sequence is correctly forwarded to the inner flux
  • the new API VirtualTimeScheduler#getOrSet(boolean) fixes virtual time in the StepVerifier (#2060, #2017)

📖 Documentation, Tests and Build

👍 Thanks to the following contributors that also participated to this release

@OlegDokuka

Assets 2
You can’t perform that action at this time.