Fix deserialization of messages with null IDs #465
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.
JSON-RPC allows
null
as a request id value (bizarrely enough). And while we might not care to support interop with folks who usenull
as a value, it can legitimately come in response to a request where the server failed to parse in our request. I can't imagine a situation where that would happen, but there are pretty strange JSON-RPC servers out there, and I've heard from one user of this library that this came up.The goal of this change is to update the code to acknowledge the validity of the
null
value at the schema level so that instead of a rather bizarre error when the situation is encountered, the oddity gets further in our pipeline where a more helpful error can be produced.I add several tests including mocked up interop tests to demonstrate the intended behavior.