Allow DeserializationProblemHandler
to respond to primitive types
#1767
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.
When registering a DeserializationProblemHandler, one is allowed to override its methods to return a converted value.
DeserializationContext has a sanity check in case the problem handler returns an Object that is not assignable to the property that is currently being parsed.
However for properties that rely on primitive types, this sanity check will always fail due to autoboxing.
(As a side note: Some upper code swallows the generated exception by this check, so the user only sees the original problem that caused the Problem Handler to be invoked in the first place even though the sanity check builds and throws a proper exception)
This PR add an extra comparison for primitive type (against their wrapped versions) while moving the sanity check into its own method.
Please let me know if I'm missing anything!
Thank you