Upstream Tracking Status — May 2026
What We Were Tracking
What Happened
On 2026-02-05, commit b956ae0 ("preview -> incubator") moved the entire JSON API from java.base/java.util.json to a new incubator module jdk.incubator.json with package jdk.incubator.json. The internal impl moved from jdk.internal.util.json to jdk.incubator.json.impl.
The Transition Was Purely Structural
Diff between c1a4f80 (last pre-incubator) and b956ae0 (incubator move) shows:
- 37 files changed — all renames + package/import updates
- Zero logic changes — only package names, import paths, and
@PreviewFeature removal
- The API method names stayed the same at the transition point
Subsequent Incubator Changes (after the move)
The incubator branch then evolved with significant API changes:
- Method renames:
bool()→asBoolean(), toLong()→asLong(), string()→asString(), elements()→asList(), members()→asMap(), element(int)→get(int), getOrAbsent()→tryGet(), valueOrNull()→tryValue()
- New method:
asInt() on JsonValue/JsonNumber
- Removed:
equals()/hashCode() on all JsonValue subtypes
- Renamed:
JsonAssertionException → JsonValueException
JsonParseException made final, added input validation
Our Current State
- Our backport tracks the pre-
toInt() era (based on 2025-09-04 sync)
- The
toInt() prototype was added in commit 682d268 (2026-02-03)
- Two more commits followed before the incubator move:
c1a4f80 and 6640eb3 (2026-02-05)
Plan
- Update to the last
java.util.json state (commit c1a4f80) — this is the "final sandbox release"
- Tag and release that milestone
- Create a
jdk.incubator.json branch from main for the full incubator upgrade
Upstream Tracking Status — May 2026
What We Were Tracking
jsonjava.util.json(injava.basemodule)jdk.internal.util.jsonWhat Happened
On 2026-02-05, commit
b956ae0("preview -> incubator") moved the entire JSON API fromjava.base/java.util.jsonto a new incubator modulejdk.incubator.jsonwith packagejdk.incubator.json. The internal impl moved fromjdk.internal.util.jsontojdk.incubator.json.impl.The Transition Was Purely Structural
Diff between
c1a4f80(last pre-incubator) andb956ae0(incubator move) shows:@PreviewFeatureremovalSubsequent Incubator Changes (after the move)
The incubator branch then evolved with significant API changes:
bool()→asBoolean(),toLong()→asLong(),string()→asString(),elements()→asList(),members()→asMap(),element(int)→get(int),getOrAbsent()→tryGet(),valueOrNull()→tryValue()asInt()on JsonValue/JsonNumberequals()/hashCode()on all JsonValue subtypesJsonAssertionException→JsonValueExceptionJsonParseExceptionmadefinal, added input validationOur Current State
toInt()era (based on 2025-09-04 sync)toInt()prototype was added in commit682d268(2026-02-03)c1a4f80and6640eb3(2026-02-05)Plan
java.util.jsonstate (commitc1a4f80) — this is the "final sandbox release"jdk.incubator.jsonbranch from main for the full incubator upgrade