@simonbasle simonbasle released this Sep 12, 2018 · 150 commits to master since this release

Assets 2

This is the 10th release of Reactor 3.1, part of BISMUTH-SR11 Release Train.

This is a recommended update for all Reactor 3.1 users.

New features and improvements

  • Avoid logging QueueSubscription objects as collections in log()'s onNext (#1270)
  • Blocking code detection and rejection has been improved for toStream() and toIterable(), and now only reject when the iteration is performed (#1313)
    • it would previously reject right where the Iterable was materialized, but what actually blocks is the act of iterating.
  • Calling Mono.from(Flux.from(mono)) is now immediately returning the mono instance, as this is conceptually a no-op. (#1329)
    • the inverse operation (Flux.from(Mono.from(flux))) is NOT a no-op as it transforms the original Flux into a Mono, so it still returns a different instance.

🐞 Bug fixes

  • Address multiple bufferTimeout and bufferWhen issues (#1247)
  • Fix a race condition on refCount quick subscribe-and-cancel (#1260)
  • Flux#publish and EmitterProcessor should trigger an extra poll during sync fusion (#1290)
  • ParallelFlux, when decorated through lift() (eg. by instrumenting using Sleuth), would throw an IndexOutOfBoundsException (#1293)
  • Flux#publish, concatMap* could run on the wrong Scheduler when fused (#1302)
  • When using doOnSuccess and subscribing without an error handler, errors would be swallowed (#1337)
    • This now generates a ErrorCallbackNotImplemented exception like in other cases, unless a doOnTerminate is also used
    • The best practice is still to always define an error handler when using subscribe(...)

📖 Documentation, Tests and Build

  • [build] Smarter tests on 3.1 maintenance branch (87944b3, 87944b3)
  • [build] Reactivate JDK9 Travis builds (2b4bf5e, 209a45f, #896)
  • [doc] Improved documentation of create (#1266)
  • [doc] Fixed an issue in some reference doc error handling snippets (#1269)
  • [deps] Bump Kotlin to 1.2.51 (#1274)