GROOVY-11200: JsonSlurper should throw exception when parsing invalid String ended with a right curly brace #1972
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.
Analysis
As mentioned by Paul's comment in the jira, this is a bug in
JsonParserCharArray. The problem does not exist inJsonParserUsingCharacterSource.After debugging through both classes, both parser methods look exactly the same, except that
CharacterSourcewould automatically add a10(line feed) char at the end, which triggers an exception. But forJsonParserCharArrayit ends right at the last curly brace so the exception is overlooked.Fix
To keep the behavior consistent across
JsonParserCharArrayandJsonParserUsingCharacterSource, a line feed character is added to the end of the char array on initialization ofJsonParserCharArray.Concern
Performance