RFR: 8321248: ClassFile API ClassModel::verify is inconsistent with the rest of the API

Adam Sotona asotona at openjdk.org
Mon Dec 4 11:18:54 UTC 2023


ClassFile API `ClassModel::verify` accepts `ClassHierarchyResolver` as an optional argument and does not respect `ClassFile.ClassHierarchyResolverOption` of the actual context.
Parsing, building and transforming take options from the actual `ClassFile` context and verification should follow the same API pattern.

This patch removes `ClassModel::verify` methods and introduces new top level methods:

List<VerifyError> ClassFile::verify(ClassModel model);
List<VerifyError> ClassFile::verify(byte[] bytes);
List<VerifyError> ClassFile::verify(Path path);


ClassFile API has been recently opened as a preview feature, so this bug technically requires a CSR (temporary unable to create).
Impact of the API change is none as the API has not been released yet.

Please review.

Thanks,
Adam

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

Commit messages:
 - tests fix
 - dependent code fix
 - implementation
 - 8321248: ClassFile API ClassModel::verify is inconsistent with the rest of the API

Changes: https://git.openjdk.org/jdk/pull/16947/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16947&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8321248
  Stats: 122 lines in 11 files changed: 44 ins; 62 del; 16 mod
  Patch: https://git.openjdk.org/jdk/pull/16947.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16947/head:pull/16947

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


More information about the core-libs-dev mailing list