From ab67e4987296f9b8be18e08074d45fd0f4a3e0de Mon Sep 17 00:00:00 2001 From: Gustavo Simon Date: Sun, 20 Jul 2025 19:17:08 -0300 Subject: [PATCH 1/3] 8355652: add new method to return ClassFileFormatVersion from ClassFileVersion. --- .../classes/java/lang/classfile/ClassFileVersion.java | 6 ++++++ .../internal/classfile/impl/ClassFileVersionImpl.java | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/java.base/share/classes/java/lang/classfile/ClassFileVersion.java b/src/java.base/share/classes/java/lang/classfile/ClassFileVersion.java index 5a795b9486533..ff4d1fdae28d4 100644 --- a/src/java.base/share/classes/java/lang/classfile/ClassFileVersion.java +++ b/src/java.base/share/classes/java/lang/classfile/ClassFileVersion.java @@ -25,6 +25,7 @@ package java.lang.classfile; import java.lang.reflect.ClassFileFormatVersion; +import java.util.Optional; import jdk.internal.classfile.impl.ClassFileVersionImpl; @@ -76,6 +77,11 @@ public sealed interface ClassFileVersion */ int minorVersion(); + /** + * {@return a {@link ClassFileFormatVersion} element}. + */ + Optional formatVersion(); + /** * {@return a {@link ClassFileVersion} element} * @param majorVersion the major version diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java index ba2605296cb69..4891881551ca5 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java @@ -25,6 +25,8 @@ package jdk.internal.classfile.impl; import java.lang.classfile.ClassFileVersion; +import java.lang.reflect.ClassFileFormatVersion; +import java.util.Optional; public final class ClassFileVersionImpl extends AbstractElement @@ -46,6 +48,15 @@ public int minorVersion() { return minorVersion; } + @Override + public Optional formatVersion() { + try { + return Optional.of(ClassFileFormatVersion.fromMajor(majorVersion)); + } catch (IllegalArgumentException e) { + return Optional.empty(); + } + } + @Override public void writeTo(DirectClassBuilder builder) { builder.setVersion(majorVersion, minorVersion); From 7134042ca919ca8ca89e6f916c4101997c5e06d9 Mon Sep 17 00:00:00 2001 From: Gustavo Simon Date: Mon, 21 Jul 2025 17:49:13 -0300 Subject: [PATCH 2/3] 8355652: update copyright year to 2025 in ClassFileVersionImpl.java --- .../jdk/internal/classfile/impl/ClassFileVersionImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java index 4891881551ca5..320b28d1e3908 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it From d4ff0b6db875717185f7f4da379b22b118a7a498 Mon Sep 17 00:00:00 2001 From: Gustavo Simon Date: Mon, 21 Jul 2025 17:51:15 -0300 Subject: [PATCH 3/3] 8355652: update copyright year to 2025 in ClassFileVersionImpl.java --- .../jdk/internal/classfile/impl/ClassFileVersionImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java index 320b28d1e3908..0f9c9084182d2 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/ClassFileVersionImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it