Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.x: fix Obs.combineLatestDelayError sync initial error not emitting #5560

Merged
merged 2 commits into from
Aug 22, 2017

Conversation

akarnokd
Copy link
Member

This PR fixes the case reported in #5558 where a synchronous first, non-empty source triggered an error completion immediately instead of giving a chance to the other sources to form combinations.

The fix also includes:

  • initialization of the CombineObservers now happen in the constructor,
  • the AtomicReference<Disposable> of the inner observers are now inlined into CombineObserver,
  • cleaned up drain logic
  • unit tests verifying FlowableCombineLatest (no changes required there).

@akarnokd akarnokd added this to the 2.2 milestone Aug 22, 2017
@codecov
Copy link

codecov bot commented Aug 22, 2017

Codecov Report

Merging #5560 into 2.x will decrease coverage by 0.16%.
The diff coverage is 93.5%.

Impacted file tree graph

@@             Coverage Diff              @@
##                2.x    #5560      +/-   ##
============================================
- Coverage     96.32%   96.15%   -0.17%     
+ Complexity     5830     5820      -10     
============================================
  Files           631      631              
  Lines         41414    41417       +3     
  Branches       5740     5739       -1     
============================================
- Hits          39890    39823      -67     
- Misses          596      635      +39     
- Partials        928      959      +31
Impacted Files Coverage Δ Complexity Δ
.../operators/observable/ObservableCombineLatest.java 96.93% <93.5%> (-1.82%) 6 <0> (ø)
...in/java/io/reactivex/subjects/BehaviorSubject.java 86.97% <0%> (-5.73%) 57% <0%> (ø)
...tivex/internal/schedulers/InstantPeriodicTask.java 61.11% <0%> (-5.56%) 7% <0%> (-2%)
...l/operators/observable/ObservableFlatMapMaybe.java 84.96% <0%> (-5.23%) 2% <0%> (ø)
...ava/io/reactivex/processors/BehaviorProcessor.java 88.49% <0%> (-4.87%) 62% <0%> (ø)
...rnal/operators/flowable/FlowableFlatMapSingle.java 92.93% <0%> (-3.81%) 2% <0%> (ø)
...activex/internal/observers/QueueDrainObserver.java 61.53% <0%> (-2.57%) 12% <0%> (-1%)
...rnal/operators/observable/ObservableObserveOn.java 97.95% <0%> (-2.05%) 3% <0%> (ø)
.../internal/disposables/ListCompositeDisposable.java 98% <0%> (-2%) 34% <0%> (-1%)
...a/io/reactivex/internal/queue/MpscLinkedQueue.java 98.03% <0%> (-1.97%) 17% <0%> (-1%)
... and 19 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 357fac2...fd46144. Read the comment docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants