RFR: 8333377: Migrate Generic Signature parsing to ClassFile API

Chen Liang liach at openjdk.org
Fri May 31 22:29:50 UTC 2024


Core reflection's generic signature parsing uses an ancient library with outdated visitor pattern on a tree model and contains unnecessary boilerplates. This is a duplication of ClassFile API's signature model. We should just move to ClassFile API, which is more throughoutly tested as well.

To ensure compatibility, new tests are added to ensure consistent behavior when encountering malformed signatures or signatures with missing types. The reflective objects have been preserved and the only change is that lazy expansion now happens from CF objects, to reduce compatibility risks.

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

Commit messages:
 - Remove redundant try-catch in getEnclosingMethod/Constructor
 - Merge branch 'test/signature-error' into feature/new-generic-info
 - Fix everything
 - Fixxes
 - Stage
 - Stage new tests
 - Merge branch 'master' of https://github.com/openjdk/jdk into feature/new-generic-info
 - Merge branch 'master' of https://github.com/openjdk/jdk into feature/new-generic-info
 - Merge branch 'master' of https://github.com/openjdk/jdk into feature/new-generic-info
 - Merge branch 'master' of https://github.com/openjdk/jdk into feature/new-generic-info
 - ... and 5 more: https://git.openjdk.org/jdk/compare/8aeada10...4110c13f

Changes: https://git.openjdk.org/jdk/pull/19281/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19281&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8333377
  Stats: 4605 lines in 66 files changed: 1027 ins; 3483 del; 95 mod
  Patch: https://git.openjdk.org/jdk/pull/19281.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19281/head:pull/19281

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


More information about the core-libs-dev mailing list