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 triggeronErrorafteronNext, which is not permitted in Mono.Mono#usingWhennow waits for the async complete handler termination before propagatingonNext(#1832)Mono#usingsimilarly avoids triggering onNext+onError if cleanup fails (#1853)Mono#doOnTerminatenow acts similarly todoOnSuccess, executing the side effect before theonNextis propagated downstream (#1752)
Mono#do[On|After]SuccessOrErrorhas been deprecated and marked for removal in 3.4 (#1854)usingWhenAPI has been polished, and some variants deprecated for removal in 3.4 (#1687)- A new overload has been introduced that uses
BiFunctionfor error handler (exposing the failure that causes "rollback") - A single-handler version has been added to
Monofor alignment withFlux. 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.
- A new overload has been introduced that uses
✨ 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
- (from 3.2:)
Flux#flatMapwith scalar source now supports onErrorContinue (#1684)Flux#doAfterTerminatenow executed whenonErrorin fused mode (#1836, #1835)- Explicitly catch
LinkageErrorin Traces. This helps with some static analyzers (#1830) - Pass on
cancelSupportwhen liftingConnectableFlux(#1860)
📖 Documentation, Tests and Build
- [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)
- (from 3.2:)
- [github] Removed
CONTRIBUTING.mdand 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)