Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8343029

Start of release updates for JDK 25

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P4 P4
    • 25
    • core-libs
    • None
    • behavioral
    • minimal
    • Expected API evolution for a new release.
    • Java API
    • SE

      Summary

      Update core libraries for JDK 24 by adding an enum constant to ClassFileFormatVersion and a constant to ClassFile.

      Problem

      With a new release, ClassFileFormatVersion and ClassFile need a constants to model that release.

      Solution

      Add the new constants.

      Specification

      diff a/src/java.base/share/classes/java/lang/classfile/ClassFile.java b/src/java.base/share/classes/java/lang/classfile/ClassFile.java
      --- a/src/java.base/share/classes/java/lang/classfile/ClassFile.java
      +++ b/src/java.base/share/classes/java/lang/classfile/ClassFile.java
      @@ -658,10 +658,16 @@
            * The class major version of JAVA_24.
            * @since 24
            */
           int JAVA_24_VERSION = 68;
      
      +    /**
      +     * The class major version of JAVA_25.
      +     * @since 25
      +     */
      +    int JAVA_25_VERSION = 69;
      +
           /**
            * A minor version number indicating a class uses preview features
            * of a Java SE version since 12, for major versions {@value
            * #JAVA_12_VERSION} and above.
            */
      @@ -669,11 +675,11 @@
      
           /**
            * {@return the latest major Java version}
            */
           static int latestMajorVersion() {
      -        return JAVA_24_VERSION;
      +        return JAVA_25_VERSION;
           }
      
           /**
            * {@return the latest minor Java version}
            */
      diff a/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java b/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java
      --- a/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java
      +++ b/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java
      @@ -316,10 +316,22 @@
            * @see <a
            * href="https://docs.oracle.com/javase/specs/jvms/se24/html/index.html">
            * <cite>The Java Virtual Machine Specification, Java SE 24 Edition</cite></a>
            */
           RELEASE_24(68),
      +
      +    /**
      +     * The version introduced by the Java Platform, Standard Edition
      +     * 25.
      +     *
      +     * @since 25
      +     *
      +     * @see <a
      +     * href="https://docs.oracle.com/javase/specs/jvms/se25/html/index.html">
      +     * <cite>The Java Virtual Machine Specification, Java SE 25 Edition</cite></a>
      +     */
      +    RELEASE_25(69),
           ; // Reduce code churn when appending new constants
      
           // Note to maintainers: when adding constants for newer releases,
           // the implementation of latest() must be updated too.
      
      @@ -331,11 +343,11 @@
      
           /**
            * {@return the latest class file format version}
            */
           public static ClassFileFormatVersion latest() {
      -        return RELEASE_24;
      +        return RELEASE_25;
           }
      
           /**
            * {@return the major class file version as an integer}
            * @jvms 4.1 The {@code ClassFile} Structure

            darcy Joe Darcy
            darcy Joe Darcy
            Chen Liang, Iris Clark
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: