Fix null
handling in proto3 JSON deserializer
#763
Merged
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.
proto3 JSON spec says this about
null
values:proto3 spec does not talk about presence, but in an internal spec we have this about proto3 JSON null values:
So we shouldn't be initializing the fields with
null
values. The "interpreted as default value" part in the public spec is already handled by the getters.With this #760 is no longer an issue as we don't generate empty message for the field value when we have a message-field.
We will still accept proto3 JSON message encodings with missing
required
fields, but that's by design. We don't check forrequired
fields untilGeneratedMessage.check
is called.Closes #760
cl/480829988 tests this internally and reports no breakage.