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

release hotfix: Adapt to MonoSubscriber not fusing by default #53

Merged
merged 2 commits into from
Nov 8, 2022

Conversation

violetagg
Copy link
Member

In reactor-core, Operators.MonoSubscriber has stopped implementing ASYNC fusion as a base. It continues to be compatible with Fuseable publishers but now by default only negotiates Fuseable.NONE.

Some RxJava adapter classes don't really have a way of propagating the fusion up to RxJava and used to rely on the default ASYNC capability of MonoSubscriber, testing that requestFusion would indeed negotiate that. Now that it negotiates NONE, said tests fail.

This commit removes the tests and adds a FIXME as a more in depth follow up to this issue (where we can evaluate if it makes sense to keep the publishers Fuseable).

Also update to latest 3.4.x core snapshot.

See reactor/reactor-core#3245.

In reactor-core, `Operators.MonoSubscriber` has stopped implementing
ASYNC fusion as a base. It continues to be compatible with Fuseable
publishers but now by default only negotiates `Fuseable.NONE`.

Some RxJava adapter classes don't really have a way of propagating the
fusion up to RxJava and used to rely on the default ASYNC capability
of MonoSubscriber, testing that `requestFusion` would indeed negotiate
that. Now that it negotiates NONE, said tests fail.

This commit removes the tests and adds a FIXME as a more in depth follow
up to this issue (where we can evaluate if it makes sense to keep the
publishers Fuseable).

Also update to latest 3.4.x core snapshot.

See reactor/reactor-core#3245.
@violetagg violetagg added the type/bug A general bug label Nov 8, 2022
@violetagg violetagg requested a review from a team November 8, 2022 13:46
@violetagg violetagg added this to the 1.1.8 milestone Nov 8, 2022
Comment on lines 100 to 110
// FIXME
// @Test
// fun `Single to Mono`() {
// Single.just(1)
// .toMono()
// .test()
// .expectFusion(Fuseable.ANY, Fuseable.ASYNC)
// .expectNext(1)
// .expectComplete()
// .verify()
// }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the test can be kept around to validate onNext/onComplete are translated, but simply removing the assertion of fusion negotiation:

Suggested change
// FIXME
// @Test
// fun `Single to Mono`() {
// Single.just(1)
// .toMono()
// .test()
// .expectFusion(Fuseable.ANY, Fuseable.ASYNC)
// .expectNext(1)
// .expectComplete()
// .verify()
// }
@Test
fun `Single to Mono`() {
Single.just(1)
.toMono()
.test()
.expectNext(1)
.expectComplete()
.verify()
}

Note also that the Fuseable trait removal will be dealt with via the reactor-addons issue.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@violetagg violetagg merged commit a283e2b into 1.1.x Nov 8, 2022
@violetagg violetagg deleted the release-hotfix branch November 8, 2022 13:56
violetagg added a commit that referenced this pull request Nov 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/bug A general bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants