Skip to content

Releases: ReactiveX/RxJava

2.1.4

22 Sep 09:01
Compare
Choose a tag to compare

Maven

API changes

  • Pull 5568: Add BaseTestConsumer.assertValuesOnly.
  • Pull 5582: Add Maybe.switchIfEmpty(Single).
  • Pull 5590: Add LambdaConsumerIntrospection for detecting the lack of onError callback in subscribe() calls.

Documentation changes

  • Pull 5578: Add NullPointerException comment to some Single operators.
  • Pull 5600: Updating JavaDoc with correct return types of Single in some Observable operators.

Bugfixes

  • Pull 5560: Fix Observable.combineLatestDelayError sync initial error not emitting.
  • Pull 5594: Fix BaseTestConsumer.assertValueSequence reversed error message.
  • Pull 5609: Fix Observable.concatMapEager queueing of source items.

Other

  • Pull 5586: fix Single.timeout unnecessary dispose calls.

1.3.2

15 Sep 07:46
Compare
Choose a tag to compare

Maven

Bugfixes

  • Pull 5602: Workaround for CHM.keySet bad type with Java 8 compiler

1.3.1

10 Sep 17:31
Compare
Choose a tag to compare

Maven

API changes

Remark: submitted & merged before the feature freeze of June 1st.

  • Pull 5332: Add the cast operator to Single.

Bugfixes

  • Pull 5430: Fix premature cleanup in AsyncOnSubscribe when the last Observable is still running.
  • Pull 5437: TestSubscriber::assertValuesAndClear should reset valueCount.
  • Pull 5470: Fix eager call to RxJavHooks.onError in SafeCompletableSuscriber.

2.1.3

15 Aug 15:50
Compare
Choose a tag to compare

Maven

Dependency updates

The Reactive-Streams dependency has been updated to version 1.0.1. This new version contains documentation changes and TCK (Test Compatibility Kit) fixes that doesn't affect RxJava's frontend. Other libraries that were using version 1.0.0 should have no issue running with 1.0.1.

JDK 9 compatibility

RxJava 2 from now on is compatible with JDK 9, verified in a separate project whenever a new (non-trivial) update of the JDK or RxJava happens.

Compatibility means the RxJava 2 source code compiles with JDK 9 (targets 6, 8 and 9) and the unit tests pass.

API changes

  • Pull 5529: Add assertValueAt(int, value) to TestObserver/TestConsumer.

Documentation changes

Bugfixes

  • Pull 5517: Add missing null check to fused Observable.fromCallable.

Other

  • Pull 5546: Upgrade Reactive-Streams dependency to 1.0.1

2.1.2

23 Jul 08:20
Compare
Choose a tag to compare

Maven

Documentation changes

  • Pull 5432: Fix/clarify the Observable class' javadoc.
  • Pull 5444: Fix wording in Async and Publish processors javadoc.
  • Pull 5413: Add empty source clauses to javadocs of combineLatest operators accepting unspecified number of sources.
  • Pull 5465: Fix wording of toList, fix a/an in subscribeOn.
  • Pull 5476: Fix Javadoc for Flowable and Observable reduce.
  • Pull 5478: Corrected return type in doc for F.reduce(seed, reducer), F.reduceWith(seedSupplier, reducer) and O.reduce(seed, reducer).
  • Pull 5486: Small note on Maybe.defaultIfEmpty regarding toSingle.

Bugfixes

  • Pull 5434: Fix time bounded ReplaySubject.getValue() inconsistency with getValues() on old items.
  • Pull 5440: concat to report isDisposed consistently with termination.
  • Pull 5441: Fix periodic scheduler purging config not honored.
  • Pull 5494: Fix FlowableWithLatestFrom not requesting more when the other hasn't emitted yet.
  • Pull 5493: Fix ReplayProcessor backpressure and NotificationLite emission bug.
  • Pull 5507: Fix GC nepotism in SpscLinkedArrayQueue.
  • Pull 5511: Remove unnecessary generic type parameter for the timed Single.delaySubscription methods.

Other

  • Pull 5447: Remove @NonNull annotation in Consumer method parameter.
  • Pull 5449: Remove the @NonNull annotation from Function.
  • Commit 4d8f008c: add missing 'the' to the changed sentences of Pull 5413
  • Pull 5460: Fix Javadoc mistakes and some style.
  • Pull 5466: Use a mutable field in FlowableTimeoutTimed instead of an AtomicReference.
  • Commit 5d2e8fb4: Fix Schedulers.io() javadoc {link missing the @ symbol.
  • Pull 5495: Make withLatestFrom conditional subscriber, test cold consumption.

2.1.1

21 Jun 08:03
Compare
Choose a tag to compare

Maven

Notable changes

The emitter API (such as FlowableEmitter, SingleEmitter, etc.) now features a new method, tryOnError that tries to emit the Throwable if the sequence is not cancelled/disposed. Unlike the regular onError, if the downstream is no longer willing to accept events, the method returns false and doesn't signal an UndeliverableException.

API enhancements

  • Pull 5344: Add tryOnError to create/XEmitter API.
  • Pull 5386: Add subscribeOn overload to avoid same-pool deadlock with create.

Documentation changes

  • Pull 5343: Fix Javadoc for Maybe.toSingle.
  • Pull 5347: Fix Javadoc for FunctionX
  • Pull 5351: Update some marbles of Observable
  • Commit b4aeb6e3: Replace Action1 with Consumer in docs.
  • Pull 5383: Fixed Javadoc for SingleFlatMapIterableObservable.
  • Pull 5403: Fix the copy-paste error in the Javadoc of Single.doAfterTeminate mentioning doAfterSuccess.
  • Pull 5405: DefaultObserver javadoc fix: use subscribe, remove disposable code.
  • Pull 5407: DefaultSubscriber javadoc sample fix.
  • Pull 5406: Fix javadoc for Observable.reduce() and Observable.reduceWith().
  • Pull 5409: Corrected Single.delay documentation.

Bugfixes

  • Pull 5367: Make sure interval+trampoline can be stopped.
  • Pull 5378: Make SingleMap not allow map function return null.
  • Pull 5379: Add missing null checks on values returned by user functions.
  • Pull 5415: Fix doOnNext failure not triggering doOnError when fused.
  • Pull 5419: Fix periodic scheduling with negative period causing IAE.
  • Pull 5427: Fix buffer(time, maxSize) duplicating buffers on time-size race.

Other

  • Pull 5324: Mark VolatileSizeArrayList as RandomAccess list
  • Pull 5354: Fix typo in error message in BaseTestConsumer.assertValueSequence.
  • Pull 5391: Changed minimum value of rx2.buffer-size to 1.

1.3.0

05 May 08:09
Compare
Choose a tag to compare

Maven

Summary

Version 1.3.0 is the next minor release of the 1.x series of RxJava containing many formerly experimental API components promoted to standard. Most notably the Completable base reactive type is now standard as well.

Note that the experimental rx.Observable.fromEmitter() has been removed in favor for the now also standard Observable.create(Action1<Emitter<T>> emitter, Emitter.BackpressureMode backpressure)

The planned lifecycle of the 1.x line is as follows:

Date Remark
June 1, 2017 Feature freeze, only bugfixes from this on.
September 1, 2017 Release 1.4.0 finalizing the remaining API components.
March 31, 2018 End of development.

The following components have been promoted to standard:

Classes, interfaces

  • classes: AssemblyStackTraceException, RxJavaCompletableExecutionHook, RxJavaHooks, UnicastSubject, BlockingSingle, Completable, AssertableSubscriber, AsyncCompletableSubscriber, SafeCompletableSubscriber
  • interfaces: Cancellable, Emitter, SingleEmitter, CompletableEmitter, CompletableSubscriber, BackpressureOverflow.Strategy

Operators

  • Observable: create, unsafeCreate, to, zip(Observable[], FuncN), flatMapCompletable, flatMapSingle, groupby(Func1, Func1, Func1<Action1<K>, Map<K, Object>>), onTerminateDetach, rebatchRequests, subscribeOn(Scheduler, boolean), sorted, withLatestFrom, test, toCompletable, concatDelayError, mergeDelayError, switchOnNextDelayError, using(Func0, Func1, Action1, boolean), concatMapDelayError, delaySubscription(Observable), distinctUntilChanged(Func2), concatEager, concatMapEager, onBackpressureBuffer(long, Action0, BackpressureOverflow.Strategy), switchMapDelayError, toSortedList(int), toSortedList(Func2, int)
  • Completable: fromEmitter, test
  • Single: fromEmitter, merge, mergeDelayError, cache, to, doOnEach, doOnSuccess, test, onErrorResumeNext, toCompletable, doOnError, doOnSubscribe, delay, defer, doOnUnsubscribe, doAfterTerminate, flatMapCompletable, lift, toBlocking, using, delaySubscription(Observable)
  • TestSubscriber: getCompletions, awaitValueCount, assertValuesAndClear
  • SyncOnSubscriber: createSingleState, createStateful, createStateless

Other

  • Schedulers.reset
  • CompositeException(Throwable...) constructor
  • Exceptions.throwOrReport (4 overloads)
  • BlockingObservable.subscribe (6 overloads)
  • RxJavaSchedulersHook: createComputationScheduler, createIoScheduler, createNewThreadScheduler
  • internal: AssertableSubscriberObservable, FlatMapCompletable, FlatMapSingle, SchedulerWhen, BackpressureDrainManager, BlockingUtils.
  • RxJavaPlugins: reset, getCompletableExecutionHook, registerCompletableExecutionHook
  • RxJavaErrorHandler: handleOnNextValueRendering, render

In addition, the class AsyncOnsubscribe with its 7 factory methods and Observable.create(AsyncOnSubscribe<S, T>) have been promoted to beta.

Acknowledgements

Thanks to all who contributed to the 1.x line in the past 6 months (in order they appear on the commit page):

@mtiidla, @dhendry, @mostroverkhov, @yshrsmz, @BraisGabin, @cesar1000, @Jawnnypoo, @chanx2, @abersnaze, @davidmoten, @ortex, @marwinxxii, @ekchang, @pyricau, @JakeWharton, @VictorAlbertos

2.1.0

29 Apr 07:32
Compare
Choose a tag to compare

Maven

Summary

Version 2.1.0 is the next minor release of the 2.x era and contains the standardization of many experimental API additions from the past half a year since version 2.0.0. Therefore, the following components are now considered stable and will be supported throughout the rest of the life of RxJava 2.x.

Classes, Enums, Annotations

  • Annotation: CheckReturnValue
  • Subjects: CompletableSubject, MaybeSubject, SingleSubject
  • Enum: TestWaitStrategy

Operators

  • Flowable: doAfterNext, doFinally, sample (emitLast)
  • Observable: doAfterNext, doFinally, sample (emitLast)
  • Single: doAfterSuccess, doAfterTerminate, doFinally
  • Maybe: doAfterSuccess, doFinally, flatMapSingleElement
  • Completable: cache, doFinally, hide
  • Test{Observer, Subscriber}: assertNever, assertTimeout, assertNoTimeout, awaitCount, clearTimeout, isTimeout, withTag
  • RxJavaPlugins: createComputationScheduler, createIoScheduler, createNewThreadScheduler, createSingleScheduler, getOnBeforeBlocking, setOnBeforeBlocking, isFailOnBlockingScheduler, setFailOnBlockingScheduler.
  • Other: Scheduler.when, TestSubscriber.requestMore

(For the complete list and details on the promotions, see issue 5243.)

Release 2.1.0 is functionally identical to 2.0.9 except the removal of now unnecessary Flowable.strict() operator. To clarify, just like with previous minor version increments with RxJava, there won't be any further development or updates on the version 2.0.x (patch) level.

Beta promotions

Some of the enhancements of RxJava 2.0.x were added recently which often represent complex additions to RxJava itself (such as the whole ParallelFlowable). We are confident their functionality adds value to the library but not enough time elapsed since their introduction for the community to try it out and provide feedback on them (i.e., naming, encompassed functionality, etc.). To indicate we are willing to support them and eventually standardize them in the next minor release, the following components have been promoted to the status of Beta:

  • Classes: OnErrorNotImplementedException, ProtocolViolationException, UndeliverableException,
    ParallelFlowable
  • Interface: FlowableSubscriber
  • Methods
    • Flowable: parallel, subscribe(FlowableSubscriber)
    • RxJavaPlugins: getOnParallelAssembly, onAssembly(ParallelFlowable), setOnParallelAssembly

Non-functional changes between 2.0.9 and 2.1

  • Pull 5306: Change ObservableSource.defer to Observable.defer in Observable.scan() documentation.
  • Pull 5309: Fix Javadoc of Flowable.toObservable referring to Publisher instead of Observable.

Project statistics

  • Unique contributors: 41
  • Issues closed: 315
  • Bugs reported: 43
    • by community: 40 (93%)
  • Commits: 193
  • PRs: 225
    • PRs accepted: 198 (88%)
    • Community PRs: 76 (38.4% of all accepted)
  • Bugs fixed: 58
    • by community: 8 (13.9%)
  • Documentation enhancements: 46
    • by community: 22 (52.2%)
  • Cleanup: 40
    • by community: 22 (55%)
  • Lines
    • added: 44,931
    • removed: 7,405

Acknowledgements

The project would like to thank the following contributors for their work on various code and documentation improvements (in the order they appear on the commit page):

@vanniktech, @veyndan, @Mauin, @smartbeng, @ImangazalievM, @bloderxd, @mibac138, @ggikko, @mostroverkhov, @sadegh, @nmorioka, @SleimanJneidi, @davidmoten, @hkurokawa, @jbarr21, @alexandre-dubois, @VeskoI, @Stephan202, @PaulWoitaschek, @soulkeykim, @stevepeak, @jschneider, @JakeWharton, @tonycosentini, @hzsweers, @passsy, @sergiomarquesmoura, @ikesyo, @benjchristensen, @zsavely, @DDesideria, @gaemi, @Jawnnypoo, @artem-zinnatullin, @mkobit, @abersnaze, @tbcs, @gengjiawen, @qwert2603, @DmitriyZaitsev

(40 contributors)

The project would also thank its tireless reviewers, @JakeWharton and @vanniktech for all their efforts on verifying and providing feedback on the many PRs from the project lead himself. 👍

1.2.10

26 Apr 07:57
Compare
Choose a tag to compare

Maven

Bugfixes

  • Pull 5225: Fix Completable.onErrorResumeNext unsubscribe not propagated.

Other

  • Pull 5250: Defer creation of the TimeoutException when using the Single.timeout() operator.
  • Pull 5258: Use IntelliJ IDE friendly assertion failure message.

2.0.9

21 Apr 09:44
Compare
Choose a tag to compare

Maven

API enhancements

Bugfixes

  • Pull 5247: Fix Flowable.toList() onNext/cancel race.
  • Pull 5256: Fix flatMapIterable appearing to be empty when fused.
  • Pull 5277: Fix Single.subscribe(BiConsumer) to be consistent with isDisposed.
  • Pull 5281: Fix BehaviorProcessor & BehaviorSubject terminate-subscribe race.
  • Pull 5287: Fix Flowable.flatMapMaybe/Flowable.flatMapSingle maxConcurrency not requesting more.

Documentation

  • Pull 5271: enable link to external JDK, fix Schedulers style.
  • Pull 5286: Cleanup for text and Javadoc 04/15.
  • Commit 7c95808: Fix DisposableX copy-paste error in Javadoc.
  • Pull 5296: Improve doOnDispose JavaDoc.
  • Pull 5297: Fix JavaDoc image for Single.flatMapObservable().
  • Pull 5304: Correct documented return type of Single.flatMapObservable()'s function argument.

Other

  • Pull 5255: Add NullPointerException comments and ObjectHelper test code.
  • Pull 5251: More nullability annotations.
  • Pull 5257: Remove @NonNull annotations from BiConsumer.
  • Pull 5268: Remove commented out code from IoScheduler.
  • Pull 5301: More detailed no-multi-subscribe error message with the standard consumer types (such as DisposableObserver).