This is the 5th pre-release (first release candidate) of Reactor 3.2, part of Californium-RC1 Release Train.
⚠️ Update considerations and deprecations
✨ New features and improvements
- Replace
String.replaceAllwith a staticPatternandMatcher.replaceAllinScannable(#1315) - Added a way to strictly limit the rate of requests with
limitRate(n, 0)(#1317)- previously the
lowTideandhighTideparameter could still be changed by internal prefetching strategies - now with a
lowTideof 0, the requests will strictly adhere tohighTide
- previously the
- Blocking code detection and rejection has been improved for
toStream()andtoIterable(), and now only reject when the iteration is performed (#1313)- it would previously reject right where the
Iterablewas materialized, but what actually blocks is the act of iterating.
- it would previously reject right where the
- Improve concat error message on null Publisher (#1321)
- Calling
Mono.from(Flux.from(mono))is now immediately returning themonoinstance, 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 originalFluxinto aMono, so it still returns a different instance.
- the inverse operation (
- Use more descriptive parameter names for buffer durations (#1331)
🪲 Bug fixes
- Fix ClassCastException in OneQueue/ZeroQueue + Java9 build (#1326)
- When using
doOnSuccessand subscribing without an error handler, errors would be swallowed (#1337)- This now generates a
ErrorCallbackNotImplementedexception like in other cases, unless adoOnTerminateis also used - The best practice is still to always define an error handler when using
subscribe(...)
- This now generates a
📖 Documentation, Tests and Build
- [doc] Point between Flux#create and Flux#push, show multithreading diff (3834537)
- [doc] The reference documentation has been extensively reviewed and revised for 3.2 (#1325)
- [test] Do not fail HooksTestStaticInit test in IDE (#1322)
- [build] Add LGTM.com code quality badges (#1339)