Skip to content

4.x: Streamable + doOnError, forEach(StreamSink)#8218

Merged
akarnokd merged 8 commits into
ReactiveX:4.xfrom
akarnokd:4xStreamableOperators102
Jul 7, 2026
Merged

4.x: Streamable + doOnError, forEach(StreamSink)#8218
akarnokd merged 8 commits into
ReactiveX:4.xfrom
akarnokd:4xStreamableOperators102

Conversation

@akarnokd

@akarnokd akarnokd commented Jul 6, 2026

Copy link
Copy Markdown
Member

ℹ️ Renamed StreamerInput to StreamSink.

Operators

  • doOnError to intercept a Throwable.
  • subscribe(StreamSink) to do pull-push delivery of items.

API changes

  • Added StreamSink.cancellation() to hand over some cancellation-related data structures.
  • Added StreamSink.withCancellation() to override the DisposableContainer of the cancellation management.
  • Added StreamSink.create() to create one via defining callbacks for next and finish.
  • Added StreamProcessor.streamerCount, mainly to be able to await multiple consumers of it.
  • Removed ThrowableWrapper and adjusted code to use CompletionException.

Tests

  • Tidied up tests.
  • Added test helper methods.
  • Fixed flaky tests.

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown

🐷 TruffleHog + Entropy Beauty Scan

Average entropy of changed code: 4.641 bits/char
Verdict: ✅ Mid-4 beauty detected (thoughtful human code!)

Changed files entropy:

src/main/java/io/reactivex/rxjava4/core/StreamProcessor.java: 4.875
src/main/java/io/reactivex/rxjava4/core/Streamable.java: 4.655
src/main/java/io/reactivex/rxjava4/core/StreamerInput.java: 4.771
src/main/java/io/reactivex/rxjava4/core/config/StreamableInterceptConfig.java: 4.913
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StageResumable.java: 4.748
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableEmpty.java: 4.896
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupBy.java: 4.335
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelper.java: 4.426
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableZip.java: 4.189
src/main/java/io/reactivex/rxjava4/observers/BaseTestConsumer.java: 4.508
src/main/java/io/reactivex/rxjava4/observers/TestObserver.java: 4.615
src/main/java/io/reactivex/rxjava4/processors/DispatchStreamProcessor.java: 4.576
src/main/java/io/reactivex/rxjava4/subscribers/TestSubscriber.java: 4.598
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/DispatchStreamProcessorTest.java: 4.538
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java: 4.900
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableFromPublisherTest.java: 4.550
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupByTest.java: 4.657
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelperTest.java: 4.813
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableToObservableTest.java: 4.787
src/test/java/io/reactivex/rxjava4/subscribers/TestSubscriberTest.java: 4.464

✅ No secrets or suspicious high-entropy strings found.

Mid-4 beauty heuristic in action — powered by our entropy chats! 😊

@codecov

codecov Bot commented Jul 6, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.03960% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 98.68%. Comparing base (db62338) to head (48a5a62).

Files with missing lines Patch % Lines
...internal/operators/streamable/StreamableTimer.java 0.00% 1 Missing and 1 partial ⚠️
...activex/rxjava4/internal/util/ExceptionHelper.java 80.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##                4.x    #8218      +/-   ##
============================================
- Coverage     98.69%   98.68%   -0.01%     
- Complexity     7067     7094      +27     
============================================
  Files           810      812       +2     
  Lines         49855    49935      +80     
  Branches       6749     6755       +6     
============================================
+ Hits          49206    49280      +74     
- Misses          455      459       +4     
- Partials        194      196       +2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@akarnokd akarnokd changed the title 4x streamable operators102 4.x: Streamable + doOnError, forEach(StreamerInput) Jul 7, 2026
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

🐷 TruffleHog + Entropy Beauty Scan

Average entropy of changed code: 4.641 bits/char
Verdict: ✅ Mid-4 beauty detected (thoughtful human code!)

Changed files entropy:

src/main/java/io/reactivex/rxjava4/core/StreamProcessor.java: 4.875
src/main/java/io/reactivex/rxjava4/core/Streamable.java: 4.655
src/main/java/io/reactivex/rxjava4/core/StreamerInput.java: 4.771
src/main/java/io/reactivex/rxjava4/core/config/StreamableInterceptConfig.java: 4.913
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StageResumable.java: 4.748
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableEmpty.java: 4.896
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupBy.java: 4.335
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelper.java: 4.426
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableZip.java: 4.189
src/main/java/io/reactivex/rxjava4/observers/BaseTestConsumer.java: 4.508
src/main/java/io/reactivex/rxjava4/observers/TestObserver.java: 4.615
src/main/java/io/reactivex/rxjava4/processors/DispatchStreamProcessor.java: 4.576
src/main/java/io/reactivex/rxjava4/subscribers/TestSubscriber.java: 4.598
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/DispatchStreamProcessorTest.java: 4.538
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java: 4.900
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableFromPublisherTest.java: 4.550
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupByTest.java: 4.657
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelperTest.java: 4.813
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableToObservableTest.java: 4.787
src/test/java/io/reactivex/rxjava4/subscribers/TestSubscriberTest.java: 4.464

✅ No secrets or suspicious high-entropy strings found.

Mid-4 beauty heuristic in action — powered by our entropy chats! 😊

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

🐷 TruffleHog + Entropy Beauty Scan

Average entropy of changed code: 4.641 bits/char
Verdict: ✅ Mid-4 beauty detected (thoughtful human code!)

Changed files entropy:

src/main/java/io/reactivex/rxjava4/core/StreamProcessor.java: 4.875
src/main/java/io/reactivex/rxjava4/core/Streamable.java: 4.655
src/main/java/io/reactivex/rxjava4/core/StreamerInput.java: 4.771
src/main/java/io/reactivex/rxjava4/core/config/StreamableInterceptConfig.java: 4.913
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StageResumable.java: 4.748
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableEmpty.java: 4.896
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupBy.java: 4.335
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelper.java: 4.426
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableZip.java: 4.189
src/main/java/io/reactivex/rxjava4/observers/BaseTestConsumer.java: 4.508
src/main/java/io/reactivex/rxjava4/observers/TestObserver.java: 4.615
src/main/java/io/reactivex/rxjava4/processors/DispatchStreamProcessor.java: 4.576
src/main/java/io/reactivex/rxjava4/subscribers/TestSubscriber.java: 4.598
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/DispatchStreamProcessorTest.java: 4.538
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java: 4.900
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableFromPublisherTest.java: 4.550
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupByTest.java: 4.657
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelperTest.java: 4.813
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableToObservableTest.java: 4.787
src/test/java/io/reactivex/rxjava4/subscribers/TestSubscriberTest.java: 4.464

✅ No secrets or suspicious high-entropy strings found.

Mid-4 beauty heuristic in action — powered by our entropy chats! 😊

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

🐷 TruffleHog + Entropy Beauty Scan

Average entropy of changed code: 4.641 bits/char
Verdict: ✅ Mid-4 beauty detected (thoughtful human code!)

Changed files entropy:

src/main/java/io/reactivex/rxjava4/core/StreamProcessor.java: 4.875
src/main/java/io/reactivex/rxjava4/core/Streamable.java: 4.655
src/main/java/io/reactivex/rxjava4/core/StreamerInput.java: 4.771
src/main/java/io/reactivex/rxjava4/core/config/StreamableInterceptConfig.java: 4.913
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StageResumable.java: 4.748
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableEmpty.java: 4.896
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupBy.java: 4.335
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelper.java: 4.426
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableZip.java: 4.189
src/main/java/io/reactivex/rxjava4/observers/BaseTestConsumer.java: 4.508
src/main/java/io/reactivex/rxjava4/observers/TestObserver.java: 4.615
src/main/java/io/reactivex/rxjava4/processors/DispatchStreamProcessor.java: 4.576
src/main/java/io/reactivex/rxjava4/subscribers/TestSubscriber.java: 4.598
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/DispatchStreamProcessorTest.java: 4.538
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java: 4.900
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableFromPublisherTest.java: 4.550
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupByTest.java: 4.657
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelperTest.java: 4.813
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableToObservableTest.java: 4.787
src/test/java/io/reactivex/rxjava4/subscribers/TestSubscriberTest.java: 4.464

✅ No secrets or suspicious high-entropy strings found.

Mid-4 beauty heuristic in action — powered by our entropy chats! 😊

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

🐷 TruffleHog + Entropy Beauty Scan

Average entropy of changed code: 4.641 bits/char
Verdict: ✅ Mid-4 beauty detected (thoughtful human code!)

Changed files entropy:

src/main/java/io/reactivex/rxjava4/core/StreamProcessor.java: 4.875
src/main/java/io/reactivex/rxjava4/core/Streamable.java: 4.655
src/main/java/io/reactivex/rxjava4/core/StreamerInput.java: 4.771
src/main/java/io/reactivex/rxjava4/core/config/StreamableInterceptConfig.java: 4.913
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StageResumable.java: 4.748
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableEmpty.java: 4.896
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupBy.java: 4.335
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelper.java: 4.426
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableZip.java: 4.189
src/main/java/io/reactivex/rxjava4/observers/BaseTestConsumer.java: 4.508
src/main/java/io/reactivex/rxjava4/observers/TestObserver.java: 4.615
src/main/java/io/reactivex/rxjava4/processors/DispatchStreamProcessor.java: 4.576
src/main/java/io/reactivex/rxjava4/subscribers/TestSubscriber.java: 4.598
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/DispatchStreamProcessorTest.java: 4.538
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java: 4.900
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableFromPublisherTest.java: 4.550
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupByTest.java: 4.657
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelperTest.java: 4.813
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableToObservableTest.java: 4.787
src/test/java/io/reactivex/rxjava4/subscribers/TestSubscriberTest.java: 4.464

✅ No secrets or suspicious high-entropy strings found.

Mid-4 beauty heuristic in action — powered by our entropy chats! 😊

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

🐷 TruffleHog + Entropy Beauty Scan

Average entropy of changed code: 4.641 bits/char
Verdict: ✅ Mid-4 beauty detected (thoughtful human code!)

Changed files entropy:

src/main/java/io/reactivex/rxjava4/core/StreamProcessor.java: 4.875
src/main/java/io/reactivex/rxjava4/core/Streamable.java: 4.655
src/main/java/io/reactivex/rxjava4/core/StreamerInput.java: 4.771
src/main/java/io/reactivex/rxjava4/core/config/StreamableInterceptConfig.java: 4.913
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StageResumable.java: 4.748
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableEmpty.java: 4.896
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupBy.java: 4.335
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelper.java: 4.426
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableZip.java: 4.189
src/main/java/io/reactivex/rxjava4/observers/BaseTestConsumer.java: 4.508
src/main/java/io/reactivex/rxjava4/observers/TestObserver.java: 4.615
src/main/java/io/reactivex/rxjava4/processors/DispatchStreamProcessor.java: 4.576
src/main/java/io/reactivex/rxjava4/subscribers/TestSubscriber.java: 4.598
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/DispatchStreamProcessorTest.java: 4.538
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java: 4.900
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableFromPublisherTest.java: 4.550
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupByTest.java: 4.657
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelperTest.java: 4.813
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableToObservableTest.java: 4.787
src/test/java/io/reactivex/rxjava4/subscribers/TestSubscriberTest.java: 4.464

✅ No secrets or suspicious high-entropy strings found.

Mid-4 beauty heuristic in action — powered by our entropy chats! 😊

@akarnokd akarnokd added the Test label Jul 7, 2026
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

🐷 TruffleHog + Entropy Beauty Scan

Average entropy of changed code: 4.641 bits/char
Verdict: ✅ Mid-4 beauty detected (thoughtful human code!)

Changed files entropy:

src/main/java/io/reactivex/rxjava4/core/StreamProcessor.java: 4.875
src/main/java/io/reactivex/rxjava4/core/Streamable.java: 4.655
src/main/java/io/reactivex/rxjava4/core/StreamerInput.java: 4.771
src/main/java/io/reactivex/rxjava4/core/config/StreamableInterceptConfig.java: 4.913
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StageResumable.java: 4.748
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableEmpty.java: 4.896
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupBy.java: 4.335
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelper.java: 4.426
src/main/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableZip.java: 4.189
src/main/java/io/reactivex/rxjava4/observers/BaseTestConsumer.java: 4.508
src/main/java/io/reactivex/rxjava4/observers/TestObserver.java: 4.615
src/main/java/io/reactivex/rxjava4/processors/DispatchStreamProcessor.java: 4.576
src/main/java/io/reactivex/rxjava4/subscribers/TestSubscriber.java: 4.598
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/DispatchStreamProcessorTest.java: 4.538
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableBaseTest.java: 4.900
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableFromPublisherTest.java: 4.550
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableGroupByTest.java: 4.657
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableHelperTest.java: 4.813
src/test/java/io/reactivex/rxjava4/internal/operators/streamable/StreamableToObservableTest.java: 4.787
src/test/java/io/reactivex/rxjava4/subscribers/TestSubscriberTest.java: 4.464

✅ No secrets or suspicious high-entropy strings found.

Mid-4 beauty heuristic in action — powered by our entropy chats! 😊

@akarnokd akarnokd merged commit c027d00 into ReactiveX:4.x Jul 7, 2026
6 checks passed
@akarnokd akarnokd deleted the 4xStreamableOperators102 branch July 7, 2026 07:59
@akarnokd akarnokd changed the title 4.x: Streamable + doOnError, forEach(StreamerInput) 4.x: Streamable + doOnError, forEach(StreamSink) Jul 7, 2026
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.

1 participant