reactor-core 3.3.5.RELEASE is part of Dysprosium-SR7 Release Train.
It also contains all fixes from 3.2.17.RELEASE.
⚠️ Update considerations and deprecations
- A corner case of throwing from the
subscribemethod can lead to twoonSubscribesignal if said exception is thrown after having sent theSubscription(#2107, #2111, #2072) - Most well-formed subscribers will ignore this, but
StepVerifiercannot, which can "hide" the true error - This potentially extra
Subscriptioncan be identified withOperators.canAppearAfterOnSubscribe(Subscription), which is used byStepVerifierto ignore that particular extra subscription
✨ New features and improvements
- Unify error-handling in
subscribe/subscribeOrReturnmutualized implementation, preventStepVerifiergetting confused by a doubleonSubscribein that very specific case ((#2072, #2107, #2111) - [tools] Support build-time debug instrumentation (#2105)
- [tools] Support running reactor-tools as a "normal" Java Agent (#2104, #2098)
- From 3.2.17:
- Cover several cases of
onNextvscancelraces that would bypass resource discarding (#2134, #2126, #2102, #2124, #2125, #2122, #2077, #2102) - Flux#from and Mono#flux consistently apply onAssembly hooks (#2055, #2067)
- Flux#from/wrap does not call Flux#onAssembly
- Flux#from and Mono#flux apply onAssembly hooks
- Cover several cases of
🪲 Bug fixes
- Fix DefaultStepVerifierBuilder#onSubscribe error format (#2106)
- From 3.2.17:
- Propagate rejection error from
MonoDelayElement#onNextdownstream
- Propagate rejection error from
📖 Documentation, Tests and Build
- [test] Don't reuse same exception in
errorOnSubscribesteps (#2112) - [doc] Polish doc of Iterable operators, clarify iterator() calls (#2135, #2014, #2127)
- [test] Split
errorOnSubscribescenarios into separate tests (#2099) - [build] Follow-up to #2088 bump to Gradle 6.3 : 3.3 specifics (#2088, #2089)
- Polish docs, code compilation warnings, flakkt tests, etc... (#2087, #2084, #2084)
- [test] Use JUnit Jupiter's
@TestFactoryinBaseOperatorTest(#2085) - [test] Use JUnit Platform + Vintage engine (#2073)
- [test] Add a post-test listener that resets hooks consistently (#2082)
- from 3.2.17
- [test] Extract Tracked to MemoryUtils, add OffHeapDetector (#2125)
- [test] Provides tests suite to expose onDiscard leaks and fixes (#2125)
- Create CODEOWNERS (#2097)
- [build] Test with JDK 14, bump to Gradle 6.3 (#2088)
- [test] Remove testStaticInit task, verify in main test task (#2093)
- [Polish] Split bndoptions elements in array for clarity (#2091)
- [build] Simplify stubbing for Java 9+ (#2091)
- [build] Backport gradle/releaser.gradle to 3.2 (e4fe960)