jdk17u-dev icon indicating copy to clipboard operation
jdk17u-dev copied to clipboard

8341779: [REDO BACKPORT] type annotations are not visible to javac plugins across compilation boundaries (JDK-8225377)

Open cushon opened this issue 3 weeks ago • 13 comments
trafficstars

JDK-8341779 is a redo of the backport of JDK-8323093, see also discussion in CSR JDK-8346471.

JDK-8341779 was backported to JDK 21u and released in 21.0.8, as discussed in the CSR this PR proposes integrating it into a future 17u release now that 21.0.8 has been released.

Similar to JDK-8360406 for 21u, a future backport will disable this logic for 17u by default, and optionally allow the fix to be enabled with -XDaddTypeAnnotationsToSymbol.


Progress

  • [ ] Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • [ ] JDK-8340024 needs maintainer approval
  • [ ] JDK-8341779 needs maintainer approval
  • [x] Change must not contain extraneous whitespace
  • [x] Commit message must refer to an issue
  • [x] Change requires CSR request JDK-8346471 to be approved

Issues

  • JDK-8341779: [REDO BACKPORT] type annotations are not visible to javac plugins across compilation boundaries (JDK-8225377) (Bug - P3 - Requested)
  • JDK-8340024: In ClassReader, extract a constant for the superclass supertype_index (Enhancement - P4 - Requested)
  • JDK-8346471: [REDO BACKPORT] type annotations are not visible to javac plugins across compilation boundaries (CSR)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk17u-dev.git pull/4124/head:pull/4124
$ git checkout pull/4124

Update a local copy of the PR:
$ git checkout pull/4124
$ git pull https://git.openjdk.org/jdk17u-dev.git pull/4124/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 4124

View PR using the GUI difftool:
$ git pr show -t 4124

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk17u-dev/pull/4124.diff

Using Webrev

Link to Webrev Comment

cushon avatar Oct 28 '25 11:10 cushon

:wave: Welcome back cushon! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

bridgekeeper[bot] avatar Oct 28 '25 11:10 bridgekeeper[bot]

❗ This change is not yet ready to be integrated. See the Progress checklist in the description for automated requirements.

openjdk[bot] avatar Oct 28 '25 11:10 openjdk[bot]

This backport pull request has now been updated with issue from the original commit.

openjdk[bot] avatar Oct 28 '25 11:10 openjdk[bot]

At least one of the issues associated with this backport has a resolved CSR for a different version. As this means that this backport may also need a CSR, the csr label is being added to this pull request to signal this potential requirement. The command /csr unneeded can be used to remove the label in case a CSR is not needed.

openjdk[bot] avatar Oct 28 '25 12:10 openjdk[bot]

Webrevs

mlbridge[bot] avatar Oct 28 '25 12:10 mlbridge[bot]

/issue add JDK-8341779

cushon avatar Nov 01 '25 20:11 cushon

@cushon This issue is referenced in the PR title - it will now be updated.

openjdk[bot] avatar Nov 01 '25 20:11 openjdk[bot]

/issue add JDK-8340024

cushon avatar Nov 01 '25 21:11 cushon

@cushon Adding additional issue to issue list: 8340024: In ClassReader, extract a constant for the superclass supertype_index.

openjdk[bot] avatar Nov 01 '25 21:11 openjdk[bot]

/approval JDK-8341779 request for backport. Fixes a bug in javac's implementation of TypeMirror to allow accessing type-use annotations on types loaded from class files.

Risk: The feature will be disabled by default behind an -XD flag, similar to 21u (see JDK-8360406). See also discussion in CSR JDK-8346471.

Testing: Tier 1 tests pass. The changes were backported to 21u and released in 21.0.8. The fix is also present in JDK 22 and newer releases.

Dependencies: If approved, the following related fixes should also be backported: JDK-8337795, JDK-8340024, JDK-8337998, JDK-8354893, JDK-8360406

cushon avatar Nov 02 '25 10:11 cushon

@cushon JDK-8341779: The approval request has been created successfully.

openjdk[bot] avatar Nov 02 '25 10:11 openjdk[bot]

/approval JDK-8340024 request for backport. No-risk clean-up change for code hygiene, which also also included in JDK 21 as part of the JDK-8341779 redo, see https://git.openjdk.org/jdk21u-dev/pull/1671.

cushon avatar Nov 02 '25 10:11 cushon

@cushon JDK-8340024: The approval request has been created successfully.

openjdk[bot] avatar Nov 02 '25 10:11 openjdk[bot]