github reactor/reactor-core v3.3.5.RELEASE

latest releases: v3.8.5, v3.7.18, v3.8.4...
6 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)
    • 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

Don't miss a new reactor-core release

NewReleases is sending notifications on new releases.