BeforeFinallyHttpOperator
: support re-subscribe to the message body
#2409
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation:
BeforeFinallyHttpOperator
has a singlestate
insideResponseCompletionSubscriber
that is shared betweenSingle
andPublisher
of the message body. If users re-subscribe to the message body, the state is already inTERMINATED
position and does not propagate signals.Modifications:
MessageBodySubscriber
class;MessageBodySubscriber
and their states are managed independently;IdleTimeoutConnectionFilterTest
to always create a new response object (otherwise, the response payload body can be transformed multiple times);Result:
Users of
BeforeFinallyOperator
always see all terminal events, even for re-subscribe. Terminal signal will always be delivered to the second subscriber, even whendiscardEventsAfterCancel
is set.