Changelog
🚀 Features
kotlin
- 46aa24c add multi builders, suspend terminal ops, tuple destructuring, and reified onFailure
unscoped
🐛 Fixes
multi
- 258b7c8 stop MultiSplitter delivering to a zero-demand branch
- 4a12381 stop MultiSplitter over-delivering items
unscoped
- 591af62 separate demand from validation in AssertMulti step verifier
- a67b472 replay operator drain loop bugs and missing terminal signal delivery
- d872e23 set failure before done flag in MultiEmitOnOp to ensure visibility in drain loop
- d6e9141 cancel upstream in UniEmitOn when scheduling fails
- 6d22a9e use atomic state transition in MultiConcatMapOp request to prevent double terminal signal
- 2ba5991 use atomic demand decrement in MultiSplitter to preserve unbounded mode
- 5a18155 set failure before done flag in MultiCombineLatestOp to ensure visibility on invalid request
- 6481517 deliver terminal signals through drain loop in MultiWindowOnDurationOp to prevent concurrent access
- 26f635a route overflow failure through drain loop in MultiOnOverflowBufferOp to serialize signals
- 0714ab7 make failure field volatile in MultiGroupByOp State to ensure visibility across threads
- e498fd3 fail-fast semantics broken under concurrent signal arrival in UniAndCombination
- 20ae4e2 check cancellation before item delivery in StreamBasedMulti
- 5f4ec9d cancel upstream subscriptions on invalid request in concatMap
- 783e4da remove spurious drop notifications in overflow keep-last operator
- bf14dbb cancel scheduled timer on buffer-with-timeout cancellation
- 4714181 cancel inner subscription on flatMap cancel race
- d748eae cancel delayed cancellable in UniDelayUntilProcessor
- 5f00b41 do not forward delayed Uni items after cancellation
- db9bc9f avoid multiple timer starts on concurrent initial requests in IntervalMulti
- 86d03fd mutable list wrongly passed to combinator in MultiZipOp
- c262d06 race condition in MultiConcatMapOp inner / outer failure handling
- d9a4c98 cancellation timeliness and correctness of MultiConcatMapOp
- 99a7f59 missing return in SerializedMultiEmitter.fail(null)
- beb9f24 missing return in SerializedMultiEmitter.emit(null)
- 581be76 demand double-request race in MultiConcatMapOp
- ea1b1e1 wip serialization bypassed by MultiFlatMapOp.innerError()
- 106ea66 prevent backpressure failure to be swallowed by a secondary failure
- 8399645 forward RejectedExecutionException in UniEmitOn
- 90c299c uncaught callback exception in cancel() for UniOnTermination and UniOnCancellation
- 99c2484 double onFailure delivery in MultiFailOnItemTimeout
- 70ffeb0 double onSubscribe + onError delivery in ResourceMulti
- f53af60 null items silently dropped in UniOnSubscribeCall
- e1015d1 allow Uni memoization of Throwable items
🔄️ Changes
- 73b5582 improve spotless caching
- 4d061c8 use spotless-maven-plugin
- a6820df use long literals for long values
🧰 Tasks
ci
- c4110b7 drop Codecov
release
🛠 Build
ci
- 029cd2b pin github actions to commit
deps
- c7b2054 bump org.cyclonedx:cyclonedx-maven-plugin
- e5998d7 bump io.smallrye:smallrye-build-parent in the major group
- fe62444 bump io.smallrye.common:smallrye-common-annotation
- ab302b1 bump io.smallrye:jandex-maven-plugin in the minor group
- 6bedc1d bump io.projectreactor:reactor-core in the patch group
- cd82e0f bump org.jacoco:jacoco-maven-plugin in the patch group
- b32b662 bump the minor group with 5 updates
- 9d3ac21 bump net.bytebuddy:byte-buddy in the patch group
- 761b60a bump the patch group with 2 updates
- c6c7fb7 bump the minor group with 3 updates
- 7c5b2fc bump the patch group with 4 updates
docs
- d481eef upgrade Python/MkDocs dependencies
📝 Documentation
kotlin
- 20239f6 use param and not property for parameters
unscoped
- c41bdd8 clarify guides/MultiExt.kt
Contributors
We'd like to thank the following people for their contributions:
Barak Shilo, Julien Ponge