RFR: 8364751: ConstantBootstraps.explicitCast contradictory specification for null-to-primitive [v3]

Chen Liang liach at openjdk.org
Thu Aug 28 17:45:30 UTC 2025


> ConstantBootstraps.explicitCast behaves like a snippet of code in its specification. However, in the rest of the nominal spec, it incorrectly assumes a null `value` and a primitive `dstType` results in a ClassCastException instead of the zero value of that primitive type. This is inconsistent with that snippet and the actual code behavior.
> 
> The specification is fixed, the test for `explicitCast` is merged into the main `ConstantBootstraps` test, and a new unit test case for `value = null` and `dstType = char.class` is added, verifying the outcome is `'u0000'`.

Chen Liang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:

 - Update throws clause per CSR review
 - Merge branch 'master' of https://github.com/openjdk/jdk into doc/constboot-cast
 - Update wording and rendering again
 - Merge branch 'master' of https://github.com/openjdk/jdk into doc/constboot-cast
 - Update and consolidate tests
 - 8364751: ConstantBootstraps.explicitCast violates doc contracts for null-to-int

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/26714/files
  - new: https://git.openjdk.org/jdk/pull/26714/files/c0b8e5c0..e00370b9

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=26714&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26714&range=01-02

  Stats: 7071 lines in 87 files changed: 6277 ins; 317 del; 477 mod
  Patch: https://git.openjdk.org/jdk/pull/26714.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26714/head:pull/26714

PR: https://git.openjdk.org/jdk/pull/26714


More information about the core-libs-dev mailing list