Fix issue where proto3 clients could not subscribe to $all #1886
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.
Fixes: #1677
An empty string to SubscribeToStream() is interpreted as subscribing to $all by EventStore.
We currently use proto2 on server side.
In proto3, default values (empty string for strings) are omitted and not serialized on the wire (also explained by @prolic in the above issue):
https://developers.google.com/protocol-buffers/docs/proto3#default
This means that a proto3 client trying to subscribe to $all with a proto2 server will result in a
null
value for the stream id when deserialized on the server side.The patch simply sets the stream id back to an empty string if it's null.