Fix #599: handle skipping of CBOR string refs #627
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.
Summary
Problem:
When using CBOR with string references enabled, deserialization failed if a string value was skipped (e.g., when a property is ignored via @JsonIgnoreProperties). The parser would skip over the string without adding it to the string reference table, causing later string references to fail with "String reference out of range" errors.
Root Cause:
The _skipIncomplete() method in CBORParser was designed to skip over string/bytes content without actually reading it. However, when in a stringref namespace, the parser needs to read and potentially store these values in the reference table for later use.
Solution:
Modified _skipIncomplete() in CBORParser.java (lines 3418-3432) to: