On Mon, 21 Jul 2025 02:50:48 GMT, Chen Liang <li...@openjdk.org> wrote:
>> Do you mean something like this? >> >> >> @Override >> public Optional<ClassFileFormatVersion> formatVersion() { >> if (majorVersion < 54 || minorVersion != 0) { >> return Optional.empty(); >> } >> try { >> return >> Optional.of(ClassFileFormatVersion.fromMajor(majorVersion)); >> } catch (IllegalArgumentException e) { >> return Optional.empty(); >> } >> } > > No, this logic is wrong. It's more like the check in > https://github.com/openjdk/jdk/blob/441dbde2c3c915ffd916e39a5b4a91df5620d7f3/src/java.base/share/classes/jdk/internal/misc/VM.java#L174-L180 > > > public Optional<ClassFileFormatVersion> formatVersion() { > if (majorVersion < ClassFile.JAVA_1_VERSION || majorVersion > > ClassFile.latestMajorVersion()) return Optional.empty(); > // for major version is between 45 and 55 inclusive, the minor version > may be any value > if (majorVersion >= ClassFile.JAVA_12_VERSION && minorVersion != 0) > return Optional.empty(); > // otherwise, only minor version 0 is a defined, persistent format > return Optional.of(ClassFileFormatVersion.fromMajor(majorVersion)); > } Got it. Could you have this hook in a private class method or a static public method? Maybe it can be reused in another points? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/26406#discussion_r2219638656