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

Start of release updates for JDK 24

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P4 P4
    • 24
    • core-libs
    • None
    • behavioral
    • minimal
    • Java API
    • SE

      Summary

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

      Problem

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

      Solution

      Add the new constant.

      Specification

      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 16c57a9463e..72abe96a559 100644
      --- a/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java
      +++ b/src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java
      @@ -1,5 +1,5 @@
       /*
      - * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
      + * Copyright (c) 2022, 2024, 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
      @@ -306,6 +306,18 @@ public enum ClassFileFormatVersion {
            * <cite>The Java Virtual Machine Specification, Java SE 23 Edition</cite></a>
            */
           RELEASE_23(67),
      +
      +    /**
      +     * The version introduced by the Java Platform, Standard Edition
      +     * 24.
      +     *
      +     * @since 24
      +     *
      +     * @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),
           ; // Reduce code churn when appending new constants
      
           // Note to maintainers: when adding constants for newer releases,
      @@ -321,7 +333,7 @@ private ClassFileFormatVersion(int major) {
            * {@return the latest class file format version}
            */
           public static ClassFileFormatVersion latest() {
      -        return RELEASE_23;
      +        return RELEASE_24;
           }
      
           /**
      
      
      --- a/src/java.base/share/classes/java/lang/classfile/ClassFile.java
      +++ b/src/java.base/share/classes/java/lang/classfile/ClassFile.java
      @@ -1,5 +1,5 @@
       /*
      - * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
      + * Copyright (c) 2022, 2024, 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
      @@ -1478,6 +1478,12 @@ default List<VerifyError> verify(Path path) throws IOException {
           /** 67 */
           int JAVA_23_VERSION = 67;
      
      +    /**
      +     * The class major version of JAVA_24.
      +     * @since 24
      +     */
      +    int JAVA_24_VERSION = 68;
      +

            darcy Joe Darcy
            darcy Joe Darcy
            Adam Sotona, Iris Clark, Jonathan Gibbons
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: