reactor-core v3.3.5.RELEASE Release Notes

Release Date: 2020-04-27 // almost 4 years ago
  • ๐Ÿš€ 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 subscribe method can lead to two onSubscribe signal if said exception is thrown after having sent the Subscription (#2107, #2111, #2072)
    • Most well-formed subscribers will ignore this, but StepVerifier cannot, which can "hide" the true error
    • This potentially extra Subscription can be identified with Operators.canAppearAfterOnSubscribe(Subscription), which is used by StepVerifier to ignore that particular extra subscription

    ๐Ÿฑ โœจ New features and improvements

    • Unify error-handling in subscribe/subscribeOrReturn mutualized implementation, prevent StepVerifier getting confused by a double onSubscribe in 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 onNext vs cancel races that would bypass resource discarding (#2134, #2126, #2102, #2124, #2125, #2122, #2077, #2102)
      • Including backport and complement of fixes to UnicastProcessor (#2124, #2125, #980, #2126)
      • 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

    ๐Ÿฑ ๐Ÿž Bug fixes

    • ๐Ÿ›  Fix DefaultStepVerifierBuilder#onSubscribe error format (#2106)
    • From 3.2.17:
      • Propagate rejection error from MonoDelayElement#onNext downstream

    ๐Ÿ“š ๐Ÿ“– Documentation, Tests and Build

    • โœ… [test] Don't reuse same exception in errorOnSubscribe steps (#2112)
    • ๐Ÿ’… [doc] Polish doc of Iterable operators, clarify iterator() calls (#2135, #2014, #2127)
    • โœ… [test] Split errorOnSubscribe scenarios 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 @TestFactory in BaseOperatorTest (#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)

    ๐Ÿš€ ๐Ÿ‘ Thanks to the following contributors that also participated to this release

    @OlegDokuka, @pimlock