refactor Jackson code to hardcode buffer-recycler #999
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.
Pull Request Checklist
Fixes
partial fix for #998
Purpose
What does this PR do?
Background Context
Why did you take this approach?
JsonFactory should be used to create ObjectMappers - not the other way around.
ThreadLocal buffer-recycler is the default up to and including Jackson 2.16. Default was changed in Jackson 2.17 but the way play-json uses Jackson is likely to suffer performance wise with the new default.
You might want to make the buffer-recycler configurable like in apache/pekko-http#519
Upgrading to Jackson 2.15 and above also brings in Jackson's StreamReadConstraints and StreamWriteConstraints.
play-json has its own number parsing checks so I disabled the Jackson check. There are other checks in StreamReadConstraints and StreamWriteConstraints and play-json needs to decide if you want to make them configurable or if you want to disable the Jackson checks.
References
Are there any relevant issues / PRs / mailing lists discussions?