chore(deps): bump fastjson2 to 2.0.63 - #2
Merged
Conversation
Upgrades the JSON engine from 2.0.62 to 2.0.63. The release is security hardening plus robustness fixes with no API changes: - stricter AutoType validation (URL-special characters rejected before class loading; whitelist hash matches now text-verified) - number literal digit limit guarding against BigInteger DoS - JSONB BC_BIGINT / BC_BINARY declared-length OOM fixes - Metaspace leak fix for uncached ObjectWriter instances Also refreshes the fastjson2 row in the README dependency table, which had drifted (still listed 2.0.61 while the pom was on 2.0.62). Verified: full reactor `mvn clean install` green (482 tests, 0 failures) and `./allocation-check.sh` within budget on all 8 benchmarks — no allocation regression on the hot encode paths. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TEnyP2T2hu5ymBfYKEKUoo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Upgrades the JSON engine from 2.0.62 → 2.0.63 (latest release on Maven Central; the
.android5/.android8classifiers on the same tag are Android-only variants and are not used here).What changed
pom.xml—<fastjson2.version>2.0.62→2.0.63README.md— the fastjson2 row in the dependency table had drifted (still listed2.0.61while the pom was on2.0.62); refreshed to2.0.63No source changes were needed — 2.0.63 introduces no API changes, and every fastjson2 entry point buff-json depends on (
writeNameRaw(byte[]/char[]),writeString(long),writeBase64(byte[]),isUTF8(),JSONWriter/JSONReaderconstruction) is unchanged.Why
2.0.63 is primarily security hardening and robustness:
BC_BIGINTandBC_BINARYdeclared-length OOM fixes (crafted payloads declaring huge lengths)ObjectWriterinstancesCollectionelements such asHashSetgetInt/setInthoisted out of lambdasThe decoder-facing items are the relevant ones for buff-json, since
BuffJsonDecoderparses caller-supplied JSON.Verification
mvn clean installon the full reactor — green, 482 tests, 0 failures / 0 errors / 0 skipped (covers all three encode paths: codegen, typed-accessor, pure reflection, plus schema, buf.validate, Jackson and memory-leak reachability tests). The build runs with-Xlint:all,-processing -Werror, so any new deprecation or warning from the upgrade would have failed it../allocation-check.sh— all 8 benchmarks within budget, no allocation regression on the hot encode paths:ComplexMessageBenchmark.buffJsonCompiledComplexMessageBenchmark.buffJsonRuntimeDoubleHeavyBenchmark.compiledUtf16DoubleHeavyBenchmark.compiledUtf8SimpleMessageBenchmark.compiledUtf16SimpleMessageBenchmark.compiledUtf8SimpleMessageBenchmark.runtimeUtf16SimpleMessageBenchmark.runtimeUtf8Dependency resolution confirmed as
2.0.63in every consuming module (buff-jsonprovided,buff-json-schemacompile,buff-json-jacksonprovided).The official protobuf proto3 JSON conformance suite was not run locally — it needs the C++
conformance_test_runnerbuilt from protobuf source. The CIconformancejob runs it (enforced, once per path: codegen / runtime / reflection) on this PR.Generated by Claude Code