Re: OpenJDK Quality Outreach: Java 24 Is Now Available
by Christian Beikov
Hey David,
Thank you for the updates. Everything looking good on our end:
Hibernate ORM: Version 6.6 and 7.0 tested against JDK 23.0.2 / 24.0.0+36
/ 25 (EA 17). No problems to report.
Hibernate Validator: Version 9.0 tested against JDK 23.0.2 / 24.0.0+36 /
25 (EA 17). No problems to report.
Hibernate Search: Version 8.0 tested against JDK 23.0.2 / 24.0.0+36 / 25
(EA 17). No problems to report.
Hibernate Reactive: Version 2.4 tested against JDK 23.0.2 / 24.0.0+36 /
25 (EA 17). No problems to report.
Have a nice weekend,
Christian
Hibernate team
Am 07.04.2025 um 18:31 schrieb David Delabassee via hibernate-dev:
> 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://www.youtube.com/watch?v=mk_2MIWxLI0&t=12s
> [2] https://www.youtube.com/live/GwR7Gvi80Xo?si=gxdqAhVbnNV0JZGt&t=2795
> [3] https://www.youtube.com/playlist?list=PLX8CzqL3ArzVV1xRJkRbcM2tOgVwytJAi
>
>
> # 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-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-8351266: JFR: -XX:StartFlightRecording:report-on-exit
> - JDK-8350638: Make keyboard navigation more usable in API docs
> - 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://jdk.java.net/25/
> [6] https://jdk.java.net/25/release-notes
> [7] https://github.com/openjdk/jdk/compare/jdk-25+10...jdk-25+17
>
>
> # 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://github.com/openjdk/jfx
> [9] https://jdk.java.net/javafx25/
> [10] https://download.java.net/java/early_access/javafx25/docs/api/overview-su...
>
>
> # 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://inside.java/2025/03/19/performance-improvements-in-jdk24/
>
> - Java 24 - Better Language, Better APIs, Better Runtime
> https://inside.java/2025/03/01/jfokus-better-jdk24/
>
> - JDK 24 Release Notes Overview - Security Update
> https://inside.java/2025/04/05/java-24-security-notes/
>
> - JDK 24 Release Notes Review for Developers
> https://inside.java/2025/03/13/newscast-87/
>
> - JDK 24 Release Notes Overview for Operations
> https://inside.java/2025/03/29/java-24-for-ops/
>
> - JDK 24 G1/Parallel/Serial GC Changes
> https://tschatzl.github.io/2025/04/01/jdk24-g1-serial-parallel-gc-changes...
>
> - Scoped Values in Java 24
> https://inside.java/2025/02/27/newscast-86/
>
> - Stable Values in Java 25
> https://inside.java/2025/03/27/newscast-88/
>
> - New Write Barriers for G1
> http://tschatzl.github.io/2025/02/21/new-write-barriers.html
>
> - SuperWord (Auto-Vectorization) - Scheduling
> https://eme64.github.io/blog/2023/05/16/SuperWord-Scheduling.html
>
> ~
>
> 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
> _______________________________________________
> hibernate-dev mailing list -- hibernate-dev(a)lists.jboss.org
> To unsubscribe send an email to hibernate-dev-leave(a)lists.jboss.org
> Privacy Statement: https://www.redhat.com/en/about/privacy-policy
> List Archives: https://lists.jboss.org/archives/list/hibernate-dev@lists.jboss.org/messa...
2 weeks, 1 day
Fwd: [quarkus-dev] Jandex 3.3
by Yoann Rodiere
Hey,
FYI, indexes created by Jandex 3.3 cannot be read by Jandex 3.2 and earlier
(see below).
In practice, since we're mainly *consumers* of Jandex indexes, this
probably means we want to upgrade to Jandex 3.3 ASAP.
*If* there are places where we produce and publish Jandex indexes, those
should probably stick to 3.2 for the time being.
Cheers,
Yoann Rodière
Hibernate team
---------- Forwarded message ---------
From: Ladislav Thon <ladicek(a)gmail.com>
Date: Mon, Apr 7, 2025 at 3:50 PM
Subject: [quarkus-dev] Jandex 3.3
To: Quarkus Development mailing list <quarkus-dev(a)googlegroups.com>
Hi,
I've just released Jandex 3.3.0, see the release notes here:
https://smallrye.io/blog/jandex-3-3-0/
Why I'm writing this? This version increments the persistent index format
version, so indices produced by Jandex 3.3 will NOT be readable by previous
Jandex versions. Since the only thing added to the persistent index in this
version is the enclosing class in case of local/anonymous classes declared
in a static/instance/field initializer, which is not commonly needed, it is
probably best for most users to stay on previous index format (either by
staying on Jandex 3.2 or by explicitly configuring the format version).
Hope this helps avoiding yet another bunch of problems :-)
LT
--
You received this message because you are subscribed to the Google Groups
"Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to quarkus-dev+unsubscribe(a)googlegroups.com.
To view this discussion visit
https://groups.google.com/d/msgid/quarkus-dev/CALbocOkB_2bMfFk4iAh0SSnVpx...
<https://groups.google.com/d/msgid/quarkus-dev/CALbocOkB_2bMfFk4iAh0SSnVpx...>
.
3 weeks, 1 day
OpenJDK Quality Outreach: Java 24 Is Now Available
by David Delabassee
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://www.youtube.com/watch?v=mk_2MIWxLI0&t=12s
[2] https://www.youtube.com/live/GwR7Gvi80Xo?si=gxdqAhVbnNV0JZGt&t=2795
[3] https://www.youtube.com/playlist?list=PLX8CzqL3ArzVV1xRJkRbcM2tOgVwytJAi
# 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-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-8351266: JFR: -XX:StartFlightRecording:report-on-exit
- JDK-8350638: Make keyboard navigation more usable in API docs
- 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://jdk.java.net/25/
[6] https://jdk.java.net/25/release-notes
[7] https://github.com/openjdk/jdk/compare/jdk-25+10...jdk-25+17
# 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://github.com/openjdk/jfx
[9] https://jdk.java.net/javafx25/
[10] https://download.java.net/java/early_access/javafx25/docs/api/overview-su...
# 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://inside.java/2025/03/19/performance-improvements-in-jdk24/
- Java 24 - Better Language, Better APIs, Better Runtime
https://inside.java/2025/03/01/jfokus-better-jdk24/
- JDK 24 Release Notes Overview - Security Update
https://inside.java/2025/04/05/java-24-security-notes/
- JDK 24 Release Notes Review for Developers
https://inside.java/2025/03/13/newscast-87/
- JDK 24 Release Notes Overview for Operations
https://inside.java/2025/03/29/java-24-for-ops/
- JDK 24 G1/Parallel/Serial GC Changes
https://tschatzl.github.io/2025/04/01/jdk24-g1-serial-parallel-gc-changes...
- Scoped Values in Java 24
https://inside.java/2025/02/27/newscast-86/
- Stable Values in Java 25
https://inside.java/2025/03/27/newscast-88/
- New Write Barriers for G1
http://tschatzl.github.io/2025/02/21/new-write-barriers.html
- SuperWord (Auto-Vectorization) - Scheduling
https://eme64.github.io/blog/2023/05/16/SuperWord-Scheduling.html
~
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
3 weeks, 1 day