Skip to content

@simonbasle simonbasle released this Sep 4, 2019 · 14 commits to master since this release

Reactor-Core 3.3.0.RC1 is part of Dysprosium-RC1 Pre-Release Train.

This first release candidate of the 3.3.x cycle contains bugfixes and improvements from the GA 3.2.12.RELEASE as well as a few new features. It also involves a few behavior impacting changes and deprecations.

⚠️ Update considerations and deprecations

  • A few Mono operators have slightly changed their behavior in regards to how when they propagate onNext: they could trigger onError after onNext, which is not permitted in Mono.
    • Mono#usingWhen now waits for the async complete handler termination before propagating onNext (#1832)
    • Mono#using similarly avoids triggering onNext+onError if cleanup fails (#1853)
    • Mono#doOnTerminate now acts similarly to doOnSuccess, executing the side effect before the onNext is propagated downstream (#1752)
  • Mono#do[On|After]SuccessOrError has been deprecated and marked for removal in 3.4 (#1854)
  • usingWhen API has been polished, and some variants deprecated for removal in 3.4 (#1687)
    • A new overload has been introduced that uses BiFunction for error handler (exposing the failure that causes "rollback")
    • A single-handler version has been added to Mono for alignment with Flux. This is the simplest case: same handler for complete, error and cancel terminations.
    • All other overloads have been deprecated. Goal is to favor either the simple 1-handler-covers-all case OR force users to be explicit about ALL possible terminations.

New features and improvements

  • Due to a few Throwable constants, class references could leak in multi-classloader environments. This is now avoided by skipping the filling of the stacktrace (#1872)
  • Add BufferUntilChanged operator (#1706, bb5b2bb)
  • Added new StepVerifier API to subscribe to source and verify it later (#1848, b2ce5fe)

🐞 Bug fixes

  • Flux#flatMap with scalar source now supports onErrorContinue (#1684)
  • Flux#doAfterTerminate now executed when onError in fused mode (#1836, #1835)
  • Explicitly catch LinkageError in Traces. This helps with some static analyzers (#1830)
  • Pass on cancelSupport when lifting ConnectableFlux (#1860)

📖 Documentation, Tests and Build

  • [github] Removed and issue_template in favor of centralized ones (740c048)

  • [build] Use JCenter, not MavenCentral for doDownloadBaseline (aa08709, d4f5332)

  • [doc] Remove double mention of subscribe in Flux README (#1861)

  • [doc] Document that default initial delay for interval is the period (#1866)

  • [doc] Add limitRate marble diagrams (#1449)

  • [build] Polish benchmarks build, remove jmh plugin (#1844, 1ba4944)

  • [doc] Fix several typos in javadocs (#1845)

  • [build] Make it possible to run two JMH tasks - baseline and current (#1862)

  • [polish] Fix MaterializeSubscriber toString, AbstractQueue's won't work (df34ad9)

  • [chores] Update BlockHound to RC1 (#1877)

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

@gindex, @UgiR

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