-
CSR
-
Resolution: Approved
-
P4
-
None
-
behavioral
-
minimal
-
Expected API evolution for a new release.
-
Java API
-
SE
Summary
Update core libraries for JDK 26 by adding an enum constant to ClassFileFormatVersion
and a constant to ClassFile
.
Problem
With a new release, ClassFileFormatVersion
and ClassFile
need constants to model that release.
Solution
Add the new constants. As a consequence of defining new constants, the behavior of the ClassFile.latestMajorVersion()
and ClassFileFormatVersion.latest()
methods is updated accordingly.
Specification
diff --git a/src/java.base/share/classes/java/lang/classfile/ClassFile.java b/src/java.base/share/classes/java/lang/classfile/ClassFile.java
index 4b529c39099..216facbdddf 100644
--- a/src/java.base/share/classes/java/lang/classfile/ClassFile.java
+++ b/src/java.base/share/classes/java/lang/classfile/ClassFile.java
@@ -1030,6 +1030,14 @@ default List<VerifyError> verify(Path path) throws IOException {
*/
int JAVA_25_VERSION = 69;
+ /**
+ * The class major version introduced by Java SE 26, {@value}.
+ *
+ * @see ClassFileFormatVersion#RELEASE_26
+ * @since 26
+ */
+ int JAVA_26_VERSION = 70;
+
/**
* A minor version number {@value} indicating a class uses preview features
* of a Java SE release since 12, for major versions {@value
@@ -1041,7 +1049,7 @@ default List<VerifyError> verify(Path path) throws IOException {
* {@return the latest class major version supported by the current runtime}
*/
static int latestMajorVersion() {
- return JAVA_25_VERSION;
+ return JAVA_26_VERSION;
}
/**
diff --git a/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java b/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java
index 70eb921a124..4a63dd157f8 100644
--- a/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java
+++ b/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java
@@ -371,6 +371,18 @@ public enum ClassFileFormatVersion {
* <cite>The Java Virtual Machine Specification, Java SE 25 Edition</cite></a>
*/
RELEASE_25(69),
+
+ /**
+ * The version introduced by the Java Platform, Standard Edition
+ * 26.
+ *
+ * @since 26
+ *
+ * @see <a
+ * href="https://docs.oracle.com/javase/specs/jvms/se26/html/index.html">
+ * <cite>The Java Virtual Machine Specification, Java SE 26 Edition</cite></a>
+ */
+ RELEASE_26(70),
; // Reduce code churn when appending new constants
// Note to maintainers: when adding constants for newer releases,
@@ -386,7 +398,7 @@ private ClassFileFormatVersion(int major) {
* {@return the latest class file format version}
*/
public static ClassFileFormatVersion latest() {
- return RELEASE_25;
+ return RELEASE_26;
}
/**
- csr of
-
JDK-8355746 Start of release updates for JDK 26
-
- Open
-
- relates to
-
JDK-8343029 Start of release updates for JDK 25
-
- Closed
-