NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Maven Central, #376 by repository stars
Reactive Extensions for Java
Latest stable
3.1.12
Last release 1 years ago
24 Sep 2025
Ships fairly regularly
a new release about every 3 months
Nearly every release is documented
notes for 27 of 27 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
48 releases · first in 2019
Drag across the ruler to compare, or tap a release to open it.
Fix for the empty module version string in the module-info.class file. #7906
module-info.class file. #7906:warning: Not for general consumption yet.
:warning: Not for general consumption yet.
This project publishes no release notes. Between v3.1.11 and v3.1.12-RC1 there were 19 commits, 2 of them substantive:
Your coding agent can read these notes before it upgrades. Set up the MCP server →
Fix ReplaySubject termination-subscription race emitting wrongly. #7879
Testing if releasing to the new Central Sonatype repository works. Round 5.
Testing if releasing to the new Central Sonatype repository works. Round 5.
Please ignore this update.
This project publishes no release notes. Between v3.1.11-RC4 and v3.1.11-RC5 there were 8 commits, 3 of them substantive:
Testing if releasing to the new Central Sonatype repository works. Attempt 4.
Testing if releasing to the new Central Sonatype repository works. Attempt 4.
Please ignore this update.
This project publishes no release notes. Between v3.1.10 and v3.1.11-RC4 there were 47 commits, 8 of them substantive:
Fix GC nepotism with MpscLinkedQueue's poll logic. #7799
This project publishes no release notes. Between v3.1.9 and v3.1.10 there were 36 commits, 3 of them substantive:
Fix ScheduledRunnable's interruption logic if used from a no-interrupt Schedulers.from. #7745
ScheduledRunnable's interruption logic if used from a no-interrupt Schedulers.from. #7745cast(). #7606How-To-Use-RxJava.md (https://github.com/ReactiveX/RxJava/commit/d0038c98af7bf052253c89cbe07f0df62e2d4b83, https://github.com/ReactiveX/RxJava/commit/6d63111bde472e94ff8dbfa4288c6964c7363a15)Readme.md with reference to JavaFXScheduler.platform. (https://github.com/ReactiveX/RxJava/commit/f822ffbc48de4de9273120aaf58ac0a591bc7e99)This project publishes no release notes. Between v3.1.8 and v3.1.9 there were 96 commits, 13 of them substantive:
Fix ObservableSwitchMap NullPointerException due to cancel race.
This project publishes no release notes. Between v3.1.7 and v3.1.8 there were 6 commits, 2 of them substantive:
Add onDropped callback for onBackpressureLatest.
onDropped callback for onBackpressureLatest. (<a href='https://github.com/ReactiveX/RxJava/issues/7542'>#7542</a>)onDropped callback to onBackpressureBuffer. (<a href='https://github.com/ReactiveX/RxJava/issues/7567'>#7567</a>)Disposable.CompletableOnErrorComplete$onError inner class to static. (<a href='https://github.com/ReactiveX/RxJava/issues/7575'>#7575</a>)collect(Collector) operators. (<a href='https://github.com/ReactiveX/RxJava/issues/7590'>#7590</a>)This project publishes no release notes. Between v3.1.6 and v3.1.7 there were 24 commits, 15 of them substantive:
@NonNull annotation from Collector container type parameter. (#7590)Add an overload to throttleLatest operator with an onDropped callback.
throttleLatest operator with an onDropped callback. (<a href='https://github.com/ReactiveX/RxJava/issues/7457'>#7457</a>)throttleFirst operator with an onDropped callback. (<a href='https://github.com/ReactiveX/RxJava/issues/7482'>#7482</a>)throttleLast operator with an onDropped callback. (<a href='https://github.com/ReactiveX/RxJava/issues/7488'>#7488</a>)throttleWithTimeout operator with an onDropped callback. (<a href='https://github.com/ReactiveX/RxJava/issues/7510'>#7510</a>)Single.timeout that prevented the timeout signal from happening. (<a href='https://github.com/ReactiveX/RxJava/issues/7515'>#7515</a>)TestObserver/Consumer/Subscriber javadoc html. (<a href='https://github.com/ReactiveX/RxJava/issues/7442'>#7442</a>)BehaviorSubject.java. (<a href='https://github.com/ReactiveX/RxJava/issues/7452'>#7452</a>)Schedulers javadoc. (<a href='https://github.com/ReactiveX/RxJava/issues/7453'>#7453</a>)@coded tag to @code tag. (<a href='https://github.com/ReactiveX/RxJava/issues/7463'>#7463</a>)fromCompletionStage javadoc. (<a href='https://github.com/ReactiveX/RxJava/issues/7508'>#7508</a>)@NonNull annotation to Maybe type argument. (<a href='https://github.com/ReactiveX/RxJava/issues/7436'>#7436</a>)MissingBackpressureException message, introduce QueueOverflowException. (<a href='https://github.com/ReactiveX/RxJava/issues/7459'>#7459</a>)Flowable.throttleLatest MissingBackpressureException message. (<a href='https://github.com/ReactiveX/RxJava/issues/7460'>#7460</a>)throttleFirst. (<a href='https://github.com/ReactiveX/RxJava/issues/7484'>#7484</a>)Verifying the release process still works after half a year.
Verifying the release process still works after half a year.
Upgrade to Reactive Streams 1.0.4
Apply the Javadoc format cleanup to Disposable.html
Disposable.html (<a href='https://github.com/ReactiveX/RxJava/issues/7393'>#7393</a>)first(T) (<a href='https://github.com/ReactiveX/RxJava/issues/7400'>#7400</a>)Supplier (<a href='https://github.com/ReactiveX/RxJava/issues/7385'>#7385</a>)Fix assert message format in TestSubscriber/TestObserver.
Add full Java 9 module descriptor.
Single.subscribe(BiConsumer). (<a href='https://github.com/ReactiveX/RxJava/issues/7331'>#7331</a>){Publish|Behavior}Processor::offer(). (<a href='https://github.com/ReactiveX/RxJava/issues/7328'>#7328</a>)takeUntil stops on completion of other. (<a href='https://github.com/ReactiveX/RxJava/issues/7341'>#7341</a>)GradleRunner and JUnitRunner. (<a href='https://github.com/ReactiveX/RxJava/issues/7345'>#7345</a>)The operator fusion-related interfaces and two atomic queue implementations have been promoted to standard, thus officially supported in the io.reacti
io.reactivex.rxjava3.operators package. (<a href='https://github.com/ReactiveX/RxJava/issues/7320'>#7320</a>)io.reactivex.rxjava3.rxjava. (<a href='https://github.com/ReactiveX/RxJava/issues/7319'>#7319</a>)ExecutorScheduler initializing Schedulers prematurely when using RxJavaPlugins.createExecutorScheduler. (<a href='https://github.com/ReactiveX/RxJava/issues/7323'>#7323</a>)LamdbaConsumerIntrospection of Completable's lambda-based observer to use the same missing onError indicator as the other types' lambda-based consumers. (<a href='https://github.com/ReactiveX/RxJava/issues/7326'>#7326</a>):warning: With this release, the minimum required Android API level is API 21 (Android 5.0).
:warning: With this release, the minimum required Android API level is API 21 (Android 5.0).
:warning: Note that the 3.0.x patch line won't be developed further.
Flowable.onBackpressureReduce() + 1 (<a href='https://github.com/ReactiveX/RxJava/issues/7296'>#7296</a>)RxJavaPlugins.getOnParallelSubscribe() and RxJavaPlugins.setOnParallelSubscribe() (<a href='https://github.com/ReactiveX/RxJava/issues/7296'>#7296</a>)TestScheduler([...] boolean useOnScheduleHook) (<a href='https://github.com/ReactiveX/RxJava/issues/7296'>#7296</a>)subscribe([...], DisposableContainer) for better Disposable management and reference cleanup. (<a href='https://github.com/ReactiveX/RxJava/issues/7298'>#7298</a>)RxJavaPlugins.createExecutorScheduler() for creating an Executor-based Scheduler before the Schedulers class (and thus the standard schedulers) gets initialized. (<a href='https://github.com/ReactiveX/RxJava/issues/7306'>#7306</a>)setRemoveOnCancelPolicy of the underlying ScheduledExecutorService. (<a href='https://github.com/ReactiveX/RxJava/issues/7293'>#7293</a>)fair parameter of Schedulers.from. (<a href='https://github.com/ReactiveX/RxJava/issues/7301'>#7301</a>)withLatestFrom javadoc about upstream early complete (<a href='https://github.com/ReactiveX/RxJava/issues/7289'>#7289</a>)@NonNull annotations on generic type arguments were made consistent across. (<a href='https://github.com/ReactiveX/RxJava/issues/7302'>#7302</a>, <a href='https://github.com/ReactiveX/RxJava/issues/7303'>#7303</a>):warning: RxJava is now signed with a new private key. The new public key fingerprint is 1D9AA7F9E1E2824728B8CD1794B291AEF984A085.
:warning: RxJava is now signed with a new private key. The new public key fingerprint is 1D9AA7F9E1E2824728B8CD1794B291AEF984A085.
*OnSubscribe interfaces (#7274)Please ignore this update. Testing out updated tools of the release process.
Please ignore this update. Testing out updated tools of the release process.
Please ignore this update. Testing out updated tools of the release process.
Please ignore this update. Testing out updated tools of the release process.
Please ignore this update; testing out the updated credentials to the release process.
Please ignore this update; testing out the updated credentials to the release process.
CompositeException.printStackTrace to write directly into PrintStream/PrintWriter.
CompositeException.printStackTrace to write directly into PrintStream/PrintWriter. (#7212)Single.flattenStreamAsObservable javadoc. (#7206)Pre-release experiment due to changes in the build setup in #7219.
Pre-release experiment due to changes in the build setup in #7219.
ℹ️ RxJava 2 is now end-of-life (EOL) and no further development or support will be provided by the project.
ℹ️ RxJava 2 is now end-of-life (EOL) and no further development or support will be provided by the project.
onSubscribe hook to ParallelFlowable operators (#7191)Single.zip and Maybe.zip result to be garbage collected (#7196)Schedulers.from to honor the interruptibleWorker setting (#7203)Schedulers.java (#7178)Testing the release process again.
Testing the release process again.
Attempt 3: get the failure stacktrace.
Attempt 3: get the failure stacktrace.
Add a system parameter to allow scheduled worker release in the Io Scheduler.
Scheduler. (#7160)TestScheduler option to use onSchedule hook. (#7163)Schedulers to use System.nanoTime() for now(). (#7169)concatMap{Maybe|Single|Completable}. (#7165)amb(), ambArray() and ambWith() (#7144)take() mentioning the old limit() operator (#7145)Schedulers.from vs. RejectedExecutionException behavior. (#7150)NewThreadWorker.scheduleActual method. (#7164)onReduceBackpressure internals cleanup (#7151)FutureTask.toString recursion on JDK 10+. (#7173)Add onBackpressureReduce operators (#7124, #7129)
Remove unnecessary cancel/dispose calls from terminating using
This is a pre-release for 3.0.8 to verify the release process still works after the switch to GitHub actions (#7114).
Fix Observable.toFlowable(ERROR) not cancelling on MissingBackpressureException.
Observable.toFlowable(ERROR) not cancelling on MissingBackpressureException. (#7083)Flowable.concatMap backpressure with scalars. (#7089)fromRunnable/fromAction javadoc improvements. (#7071)@NonNull annotation in generated javadocs. (#7073)scan operators. (#7093)Fix Observable.window (size, skip, overlap) dispose behavior
Make the Collector type of the collectoperator contravariant in T
Fix Flowable.groupBy eviction logic double decrement and hang.
Flowable.groupBy eviction logic double decrement and hang. (#6975)Flowable.groupBy cancellation/cleanup/eviction race hangs. (#6979)Flowable.groupBy. (#6983)Flowable.groupBy eviction-completion-replenishment problems. (#6988)upstream.cancel() call for casually finished upstream sequences. (#6992)Allow setting the drift tolerance timeunit via system property rx3.scheduler.drift-tolerance-unit.
Fix Observable.flatMap with maxConcurrency hangs.
Fix switchMap not canceling properly during onNext-cancel races.
We are happy to announce the release of RxJava 3.0.0 final.
We are happy to announce the release of RxJava 3.0.0 final.
Please read the wiki page What's different in 3.0 for the details on the various changes compared to RxJava 2.x. The page also doubles as a migration guide.
Please read the wiki page carefully before posting about common and expected migration issues such as wrong imports, changed or missing methods or using the wrong maven address.
The project would like to thank the following contributors for their tireless effors improving RxJava 3:
vjgarciag96, slisaasquatch, pestrada, JLLeitschuh, dvolkovv, JakeWharton, hepin1989, richardkapolnai-da, JosemyDuarte, io7m, arriolac, davidmoten, vanniktech, RomanWuattier, Erlkoenig90, hluhovskyi, luis-cortes, slievrly, maksim-m
In addition, we would like to thank our regular and diligent reviewers, @JakeWharton and @vanniktech for their continued support of the project.
There were no functional, API or behavior changes since RC9.
Time: 8 months 8 days; or 253 days since the fork from 2.2.7. Issues closed: 107 PRs: 178 Files
*This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups. Please check out the wiki page What's different i
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups. Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
Single.equals to Single.sequenceEqual. (#6856)Flowable.buffer overload signatures to use Publisher as input. (#6895)delayError overload to Maybe.delay. (#6864)Maybe/Single/Completable blockingSubscribe. (#6862)onErrorComplete to Flowable, Observable and Single. (#6867)Completable.onErrorResumeWith. (#6868)Single/Completable retryUntil. (#6869)Maybe/Single/Completable switchOnNext & switchOnNextDelayError. (#6870)Maybe.dematerialize. (#6871)fromX operators. (#6873)Maybe/Single timeInterval & timestamp. (#6874)Maybe/Completable toFuture. (#6875)Single.ofType. (#6876)Maybe/Single/Completable doOnLifecycle. (#6877)concatMapX operators (aliases). (#6879)concatXDelayError operators. (#6881)Single.mergeArray & mergeArrayDelayError. (#6882)Completable.sequenceEqual. (#6884)startWith overloads. (#6885)Completable.onErrorReturn[Item]. (#6886)safeSubscribe to Maybe, Single & Completable. (#6887)Maybe.flatMapSingle and Maybe.flatMapSingleElement, remove the latter. (#6891)Single.flatMap overloads with combiner and notification selector mode (#6893)concatEager(Iterator, int) to Maybe and Single. (#6899)concatEagerDelayError to Flowable, Observable, Maybe and Single. (#6899)Flowable.groupBy not requesting more if a group is cancelled with items still buffered. (#6895)@throws tag to JavaDocs. (#6860)Maybe. (#6866)Maybe.retryUntil marble. (#6869)Maybe marble diagrams. (#6897)biz.aQute.bnd.gradle from 4.3.1 to 5.0.0 (#6861)Flowable operators. (#6888)*This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups. Please check out the wiki page What's different i
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups. Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
fromFuture(..., Scheduler) overloads. (#6814)concatMapIterable overload. (#6837)combineLatestArrayDelayError. (#6838)Maybe.onExceptionResumeNext. (#6844)Flowable.flatMap not canceling the inner sources on outer error. (#6826)Flowable JavaDocs + validator. (#6806)Completable and some others. (#6809)Single (#6812)Maybe (#6815)Observable and fix similar issues elsewhere (#6831)@return sentences in JavaDocs (#6847)junit from 4.12 to 4.13 (#6810)build-info-extractor-gradle from 4.12.0 to 4.13.0 (#6808):warning: With this release, RxJava moved to a Java 8 baseline. This means the library is now built with -target 8 settings to produce Java 8 bytecode
:warning: With this release, RxJava moved to a Java 8 baseline. This means the library is now built with -target 8 settings to produce Java 8 bytecode and requires a Java runtime >= 8 to work. Most desktop and server-side usages should be fine.
For Android development, the latest Android Studio is always recommended which is already able to desugar many Java 8 constructs. The upcoming AS 4 will support even more desugaring for older API levels. Until then, one should stick to the non-Java 8 standard methods so the Java 8 methods can be ignored by AS.
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups. Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
CompositeException is generated. (#6748)Flowable.window (size, time) abandonment. (#6758)Observable.window (size & time) abandonment. (#6761)window (boundary, start/end) cancel and abandonment. (#6762)XProcessor.offer to throw NullPointerException immediately. (#6799)fromOptional, fromCompletionStage, fromStream operators to Flowable. (#6765)FunctionalInterface annotations. (#6773)mapOptional, collector, {first|last|single}Stage operators to Flowable. (#6775)AutoCloseable <-> Disposable conversions. (#6780)blockingStream & flatMapStream operators to Flowable. (#6779)Disposables static factories to Disposable interface. (#6781)fromOptional, fromCompletionStage, mapOptional and toCompletionStage to Maybe/Single/Completable. (#6783){Flowable|Observable|Maybe|Single|Completable|ParallelFlowable}Operator throws declaration to Throwable. (#6785)@NonNull & @SafeVarargs annotations. (#6791)@NonNull, @CheckReturnValue, etc. annotations. (#6795)Observable. (#6797)ParallelFlowable operators and add missing annotations to existing operators. (#6798)blockingForEach(Consumer, int) overload. (#6800)flattenStreamAsFlowable and flattenStreamAsObservable to Maybe and Single. (#6805)Observable amb, combineLatest & zip ArrayStoreException. (#6756)Flowable.window (size, time) cancellation and abandonment. (#6758)Observable.window (size & time) cancellation and abandonment. (#6761)window (boundary, start/end) cancel and abandonment. (#6762)observeOn docs with links and +backpressure explanation. (#6750)Flowable javadoc. (#6760)package-info made nicer. (#6778)Disposable Javadocs. (#6780)ObjectHelper.requireNonNull(long, String). (#6769)ObjecsHelper methods with Java 8 APIs. (#6770)ObjectHelper.requireNonNull with Objects.requireNonNull. (#6771)flowable package. (#6787)observable package. (#6786)@NonNull & @SafeVarargs annotations validator. (#6791)Observable operator cleanup. (#6797)ParallelFlowable operator cleanup. (#6798)throwIfFatal calls (#6801)This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
Flowable.groupBy to signal MissingBackpressureException instead of possibly hanging. (#6740)Schedulers.from(Executor) (#6744)DisposableContainer public API (#6745)parallel() on grouped Flowable not replenishing properly. (#6719)observeOn and Schedulers.from eagerness javadoc updates. (#6723)Single.zip marble diagrams (4 cases). (#6732)Maybe marble diagrams (14 cases). (#6730)This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
observeOn while output-fused. (#6708)MulticastProcessor not requesting more after limit is reached. (#6714)observeOn to mention its eagerness. (#6700)This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
groupBy group emission in some cases. (#6664)clear() calls when fused chains are canceled. (#6676)window(time) possible interrupts while terminating. (#6674)Single. (#6668)This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
combineLatest in Observable + Flowable. (#6635)zipIterable, remove zip(O(O)), adjust concatMapX argument order. (#6638)combineLatest methods that take an array to combineLatestArray. (#6640)limit and make its backpressure behavior default in take (#6650)groupBy will now close groups that do not get subscribed synchronously in order to avoid group leaks and upstream cancellation issues. (#6642)take now limits the maximum upstream request amount to the provided value instead of requesting unbounded. (#6650)blockingIterable not unblocking when force-disposed. (#6626)groupBy not canceling upstream due to group abandonment. (#6642)takeLast(time) last events time window calculation. (#6648)window not creating windows properly (#6652)No changes in this release.
System.getProperties() due to security restrictions. (#6637)addThrowable, "2.x" and null-value error messages. (#6639)This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
After considering several factors, the components of RxJava 3 have been moved to a new base package to avoid class file conflicts due to having v2 and v3 in the same project. The new base package is io.reactivex.rxjava3 and the base types will live in io.reactivex.rxjava3.core:
| Name | v2 | v3 |
|---|---|---|
| Base package | io.reactivex |
io.reactivex.rxjava3 |
Flowable |
io.reactivex.Flowable |
io.reactivex.rxjava3.core.Flowable |
PublishSubject |
io.reactivex.subjects.PublishSubject |
io.reactivex.rxjava3.subjects.PublishSubject |
ConnectableObservable |
io.reactivex.observables.ConnectableObservable |
io.reactivex.rxjava3.observables.ConnectableObservable |
Function |
io.reactivex.functions.Function |
io.reactivex.rxjava3.functions.Function |
| etc. |
Flowables of the two versions can talk to each other without bridges because both implement the Reactive Streams' interfaces such as Publisher:
io.reactivex.Flowable.range(1, 10)
.flatMap(v -> io.reactivex.rxjava3.core.Flowable.just(v * 10))
.subscribeWith(new io.reactivex.rxjava3.subscribers.TestSubscriber<>())
.assertResult(10, 20, 30, 40, 50, 60, 70, 80, 90, 100);
The other reactive types do not share such base interfaces (they have their own respective copies) and will require bridges, likely provided via 3rd party libraries as with v1->v2 or v1->v3 bridges.
XOnSubscribe interfaces (#6579)elementAt and first operators (#6620)switchMaps inconsistency swallowing errors when cancelled (#6572)ObservableBlockingSubscribe compares TERMINATED with wrong object (#6577)replay() and ReplaySubject/Processor (#6582)mergeWith not cancelling the other source if the main errors (#6598)refCount not resetting when termination triggers cross-cancel (#6609)switchMap incorrect sync-fusion & error management (#6616)No changes in this release.
io.reactivex.rxjava3.** (#6621)This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
onErrorResumeNext(<source>) to onErrorResumeWith(<source>) to avoid lambda ambiguity with onErrorResumeNext(Function). (#6550)buffer(Supplier) variants (#6564)window(Supplier) variants (#6564)onExceptionResumeNext (#6564)No behavior changes in this release.
Schedulers.from(Executor, boolean) has been promoted. (#6544)This is an early release for 3.0.0 to verify the release process still works for the new artifact location.
This is an early release for 3.0.0 to verify the release process still works for the new artifact location.
This release note does not detail the changes since 2.2.x. Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
replay() to avoid item retention (#6532)X.fromSupplier() (#6529)concatMap with Scheduler guaranteeing where the mapper function runs (#6538)startWithItem & startWithIterable (#6530)ConnectableFlowable/ConnetableFlowable redesign (#6519)as() into to() (#6514)Maybe.defaultIfEmpty() to return Single (#6517)Callable with Supplier in operator signatures (#6511)getValues() from some subjects/processors (#6516)replay(Scheduler) and its overloads (#6539)dematerialize() (#6539)startWith(T|Iterable) (#6530)as() (#6514)Maybe.toSingle(T) (#6517)Flowable.subscribe(4 args) (#6517)Observable.subscribe(4 args) (#6517)Single.toCompletable() (#6517)Completable.blockingGet() (#6517)using() resource disposal order consistent with eager-mode (#6534)ConnectableFlowable/ConnetableFlowable redesign (#6519)replay() to avoid item retention (#6532)concatMapDelayError not continuing on fused inner source crash (#6523)X.fromSupplier (#6531)Changes.md (#6533)test from testXXX method names, create a validator (#6525)One column per quarter.