Noted, thank you Rick. --David
From: Rick Hillegas <rick.hille...@gmail.com> Date: Tuesday, 8 April 2025 at 01:49 To: David Delabassee <david.delabas...@oracle.com>, derby-dev@db.apache.org <derby-dev@db.apache.org> Subject: [External] : Re: OpenJDK Quality Outreach: Java 24 Is Now Available! Thanks for the heads-up, David. Derby builds and tests cleanly against Open JDK build 25-ea+17-1966. For more information, see https://urldefense.com/v3/__https://issues.apache.org/jira/browse/DERBY-7175__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-KPNElFY$<https://urldefense.com/v3/__https:/issues.apache.org/jira/browse/DERBY-7175__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-KPNElFY$> On 4/7/25 9:18 AM, David Delabassee wrote: > Greetings and welcome to the latest OpenJDK Quality Outreach update! > > JDK 24 was officially released (General Availability) on March 18th during > JavaOne. You can rewatch the Java 24 launch and the J1 keynote here [1]. Be > sure to also check out the Quality Outreach section here [2]. JavaOne was > amazing, and if you couldn't attend, make sure to watch the JavaOne 2025 > playlist [3] regularly as sessions are gradually being added. > > With the release of JDK 24, the focus now moves to JDK 25 testing. On that > note, be sure to check out the heads-up below, with more to follow. And as > always, if you experience any issues with your project running on a JDK 25 > early-access builds, please don't hesitate to reach out. > > [1] > https://urldefense.com/v3/__https://www.youtube.com/watch?v=mk_2MIWxLI0&t=12s__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-FMqFH4c$<https://urldefense.com/v3/__https:/www.youtube.com/watch?v=mk_2MIWxLI0&t=12s__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-FMqFH4c$> > [2] > https://urldefense.com/v3/__https://www.youtube.com/live/GwR7Gvi80Xo?si=gxdqAhVbnNV0JZGt&t=2795__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-CTieejW$<https://urldefense.com/v3/__https:/www.youtube.com/live/GwR7Gvi80Xo?si=gxdqAhVbnNV0JZGt&t=2795__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-CTieejW$> > [3] > https://urldefense.com/v3/__https://www.youtube.com/playlist?list=PLX8CzqL3ArzVV1xRJkRbcM2tOgVwytJAi__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-OR8FePD$<https://urldefense.com/v3/__https:/www.youtube.com/playlist?list=PLX8CzqL3ArzVV1xRJkRbcM2tOgVwytJAi__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-OR8FePD$> > > > # Heads-up - JDK 25: New Null Checks in Inner Class Constructors > > The Java Language Specification prescribes that various use sites of inner > class constructors should include null checks of the immediately enclosing > instance and from then on assumes that the reference is non-null. However, it > does not mandate such checks of the incoming instance at the declaration site > of these constructors and so core reflection, method handles, and direct > bytecode invocation can pass null as enclosing instance, which can lead to > NullPointerExceptions down the road. > > Since a null enclosing instance is outside of the JLS and the future > evolution of inner classes may lead to unexpected NPEs, Java 25 will start > ensuring that references to the immediately enclosing instance are always > non-null. > > Starting with JDK 25, when javac is targeting release 25 or higher, it will > emit null checks for the enclosing instances in inner class constructors. > > This behavioral change will lead to new NPEs in code that uses core > reflection, method handles, or direct bytecode invocation to pass null as > enclosing instance. Such code is rare and usually found in libraries or > frameworks (as opposed to in applications). It should be changed to no longer > pass a null reference. > > In case these additional checks lead to issues, their emission can be > prevented with a flag: `-XDnullCheckOuterThis=(true|false)`. This should be > seen as a temporary workaround and no guarantees are made for how long this > flag will be available. > > For more details, check JDK-8351274 [4]. > > [4] https://bugs.openjdk.org/browse/JDK-8351274 > > > # JDK 25 > > The JDK 25 early-access builds 17 are available [5] and are provided under > the GNU General Public License v2, with the Classpath Exception. The Release > Notes are available here [6]. > > The following JEPs have been targeted to JDK 25, so far: > - JEP 502: Stable Values (Preview) > - JEP 503: Remove the 32-bit x86 Port > > ## Changes in recent JDK 25 builds that may be of interest: > - JDK-8353118: Deprecate the use of `java.locale.useOldISOCodes` system > property > - JDK-8351435: Change the default Console implementation back to the built-in > one in `java.base` module > - JDK-8350459: MontgomeryIntegerPolynomialP256 multiply intrinsic with AVX2 > on x86_64 > - JDK-8349583: Add mechanism to disable signature schemes based on their TLS > scope > - JDK-8338675: javac shouldn't silently change .jar files on the classpath > - JDK-8319447: Improve performance of delayed task handling > - JDK-8341775: Duplicate manifest files are removed by jarsigner after signing > - JDK-8303770: Remove Baltimore root certificate expiring in May 2025 > - JDK-8346948: Update CLDR to Version 47.0 > - JDK-8348829: Remove ObjectMonitor perf counters > - JDK-8164714: Constructor.newInstance creates instance of inner class with > null outer class > - JDK-8352716: (tz) Update Timezone Data to 2025b > - JDK-8347946: Add API note that caller should validate/trust signers to the > getCertificates and getCodeSigners methods of JarEntry and JarURLConnection > - JDK-8345213: JVM Prefers /etc/timezone Over /etc/localtime on Debian 12 > - JDK-8350646: Calendar.Builder.build() Throws ArrayIndexOutOfBoundsException > - JDK-8347433: Deprecate XML interchange in > java.management/javax/management/modelmbean/DescriptorSupport for removal > - JDK-8328119: Support HKDF in SunPKCS11 (Preview) > - JDK-8327378: XMLStreamReader throws EOFException instead of > XMLStreamException > - JDK-8024695: new File("").exists() returns false whereas it is the current > working directory > - JDK-8351224: Deprecate com.sun.tools.attach.AttachPermission for removal > - JDK-8351310: Deprecate com.sun.jdi.JDIPermission for removal > - JDK-8348561: Add aarch64 intrinsics for ML-DSA > - JDK-8351266: JFR: -XX:StartFlightRecording:report-on-exit > - JDK-8350638: Make keyboard navigation more usable in API docs > - JDK-8350464: The flags to set the native priority for the VMThread and Java > threads need a broader range > - JDK-8349860: Make Class.isArray(), Class.isInterface() and > Class.isPrimitive() non-native > - JDK-8347335: ZGC: Use limitless mark stack memory > - JDK-8348596: Update FreeType to 2.13.3 > > Note: A more exhaustive list of changes can be found here [7]. > > [5] > https://urldefense.com/v3/__https://jdk.java.net/25/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-FU3rAxX$<https://urldefense.com/v3/__https:/jdk.java.net/25/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-FU3rAxX$> > [6] > https://urldefense.com/v3/__https://jdk.java.net/25/release-notes__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Os-lPTy$<https://urldefense.com/v3/__https:/jdk.java.net/25/release-notes__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Os-lPTy$> > [7] > https://urldefense.com/v3/__https://github.com/openjdk/jdk/compare/jdk-25*10...jdk-25*17__;Kys!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-PpByuts$<https://urldefense.com/v3/__https:/github.com/openjdk/jdk/compare/jdk-25*10...jdk-25*17__;Kys!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-PpByuts$> > > > # JavaFX 25 Early-Access Builds > > These are early access builds of the JavaFX 25 Runtime built from openjdk/jfx > [8]. These builds enable JavaFX application developers to build and test > their applications with JavaFX 25 on JDK 25. Although these builds are > designed to work with JDK 25-EA builds, they are also known to work with JDK > 22 and later versions. > > The latest early access builds of JavaFX 25 Builds 11 (2025/4/4) are now > available [9], under the GNU General Public License, version 2, with the > Classpath Exception. JavaFX 25 API Javadocs [10] are available too. > > [8] > https://urldefense.com/v3/__https://github.com/openjdk/jfx__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-PAKZmX-$<https://urldefense.com/v3/__https:/github.com/openjdk/jfx__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-PAKZmX-$> > [9] > https://urldefense.com/v3/__https://jdk.java.net/javafx25/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Ly816yy$<https://urldefense.com/v3/__https:/jdk.java.net/javafx25/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Ly816yy$> > [10] > https://urldefense.com/v3/__https://download.java.net/java/early_access/javafx25/docs/api/overview-summary.html__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-OzNT2f4$<https://urldefense.com/v3/__https:/download.java.net/java/early_access/javafx25/docs/api/overview-summary.html__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-OzNT2f4$> > > > # Topics of Interest > > - The Arrival of Java 24 > https://blogs.oracle.com/java/post/the-arrival-of-java-24 > > - Performance Improvements in JDK 24 > https://urldefense.com/v3/__https://inside.java/2025/03/19/performance-improvements-in-jdk24/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-AbnJMtn$<https://urldefense.com/v3/__https:/inside.java/2025/03/19/performance-improvements-in-jdk24/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-AbnJMtn$> > > - Java 24 - Better Language, Better APIs, Better Runtime > https://urldefense.com/v3/__https://inside.java/2025/03/01/jfokus-better-jdk24/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-GcvHiem$<https://urldefense.com/v3/__https:/inside.java/2025/03/01/jfokus-better-jdk24/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-GcvHiem$> > > - JDK 24 Release Notes Overview - Security Update > https://urldefense.com/v3/__https://inside.java/2025/04/05/java-24-security-notes/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Ph58vVd$<https://urldefense.com/v3/__https:/inside.java/2025/04/05/java-24-security-notes/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Ph58vVd$> > > - JDK 24 Release Notes Review for Developers > https://urldefense.com/v3/__https://inside.java/2025/03/13/newscast-87/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-PaCcLdQ$<https://urldefense.com/v3/__https:/inside.java/2025/03/13/newscast-87/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-PaCcLdQ$> > > - JDK 24 Release Notes Overview for Operations > https://urldefense.com/v3/__https://inside.java/2025/03/29/java-24-for-ops/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-EXLo900$<https://urldefense.com/v3/__https:/inside.java/2025/03/29/java-24-for-ops/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-EXLo900$> > > - JDK 24 G1/Parallel/Serial GC Changes > https://urldefense.com/v3/__https://tschatzl.github.io/2025/04/01/jdk24-g1-serial-parallel-gc-changes.html__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-LsLxLtc$<https://urldefense.com/v3/__https:/tschatzl.github.io/2025/04/01/jdk24-g1-serial-parallel-gc-changes.html__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-LsLxLtc$> > > - Scoped Values in Java 24 > https://urldefense.com/v3/__https://inside.java/2025/02/27/newscast-86/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Hzgr6u5$<https://urldefense.com/v3/__https:/inside.java/2025/02/27/newscast-86/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Hzgr6u5$> > > - Stable Values in Java 25 > https://urldefense.com/v3/__https://inside.java/2025/03/27/newscast-88/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-KcF9vTV$<https://urldefense.com/v3/__https:/inside.java/2025/03/27/newscast-88/__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-KcF9vTV$> > > - New Write Barriers for G1 > https://urldefense.com/v3/__http://tschatzl.github.io/2025/02/21/new-write-barriers.html__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Oioi6jn$<https://urldefense.com/v3/__http:/tschatzl.github.io/2025/02/21/new-write-barriers.html__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-Oioi6jn$> > > - SuperWord (Auto-Vectorization) - Scheduling > https://urldefense.com/v3/__https://eme64.github.io/blog/2023/05/16/SuperWord-Scheduling.html__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-PTgI2f7$<https://urldefense.com/v3/__https:/eme64.github.io/blog/2023/05/16/SuperWord-Scheduling.html__;!!ACWV5N9M2RV99hQ!MkPy7Gqfeg-aw1tD2bZM1mSGIQnCL4NT4CAVjs6lypMwb9rmdK92ZrkqwA-B5gOT6sgtySOnhQjp4IW3AL6N-PTgI2f7$> > > ~ > > That's it for this time. Feel free to reach out if you encounter any issues > while testing your project(s) with the latest JDK early-access builds. > > --David >