This is the 2nd release of Reactor 3.1, part of BISMUTH-SR2 Release Train.
This is a recommended update for all Reactor 3 users. It notably contains an important fix for a Flux#windowTimeout bug introduced in v3.1.0.
✨ New features and improvements
- Overflow exception for
intervalhas been clarified, making it clearer thatintervaldoesn't really support backpressure (#911) - Improved means of customizing the request amount mid-chain: new
limitRequestoperator will strictly cap the total request (without prefecthing, unlikelimitRate) andlimitRatenow has a variant that takes alowTideparameter that allow to customize the replenishing amount (#879, #894) - Kotlin extension now extends
PublisherwithtoFluxandtoMonooperations (#908)
🪲 Bug fixes
Flux#windowTimeoutwith <10ms timeouts could trigger race conditions and lose some windows/drop data to already closed windows. The operator has consequently been reworked (#912)- Periodic tasks of Schedulers and Workers are now correctly cancelled by calling
dispose()(#880) - Ensure that
Scannablescanning of PARENT and ACTUAL always returns aScannable, even if the original unsafe scan didn't. In the later case, the UNAVAILABLE_SCAN instance is returned (#895) ParallelFlux(.parallel()) is now considered aTHREAD_BARRIERfor fusion purposes, allowing sensitive operators to skip fusion (#905)
📖 Documentation, Tests and Build
- Several typos fixed and rephrasing have been made (#885, #868, #902)
- Reference guide now has a small section on
reactor-extra(#899) - Build has been upgraded to Gradle 4.2, binary compatibility is now checked with a baseline (3.1.0.RELEASE) using
japicmp(#884) - Java 9: fixed deep reflection issue and additional build with JDK9 in Travis CI (minus a few elements due to build dependencies not being ready, #881, #883, #891)
- The Kotlin plugin has been upgraded to 1.1.51, with a workaround for a source jar class duplication issue (#889, #887)
- OSGI compatibility has been improved with the removal of extraneous packages and marking kotlin and JSR305 as optional (#903)