Hey David,

Since it's been a while, I'll confirm all is well on Hibernate projects:

Hibernate ORM: Version 6.6 tested against JDK 23 (EA 26) / 24 (EA 1). No
problems to report.

Hibernate Validator: Version 8.0 tested against JDK 23 (EA 26) / 24 (EA 1).
No problems to report.

Hibernate Search: Version 7.2 tested against JDK 23 (EA 26) / 24 (EA 1). No
problems to report.

Hibernate Reactive: Version 2.3 tested against JDK 23 (EA 26) / 24 (EA 1).
No problems to report.


Have a nice day,


Yoann Rodière
Hibernate Team
yo...@hibernate.org


On Mon, Jun 10, 2024 at 11:05 AM David Delabassee via hibernate-dev <
hibernate-dev@lists.jboss.org> wrote:

> Welcome to the latest OpenJDK Quality Outreach update!
>
> JDK 23, scheduled for General Availability on September 17, 2024, is now
> in Rampdown Phase One (RDP1) [1]. At this point, the overall JDK 23 feature
> set is frozen (see the final list of JEPs integrated into JDK 23 below) and
> only low-risk enhancements might still be considered. The coming weeks
> should be leveraged to identify and resolve as many issues as possible,
> i.e. before JDK 23 enters the Release Candidates phase in early August [2].
> We count on you to test your projects and help us make JDK 23 another solid
> release!
>
> This time, we are covering several heads-up related to JDK 23 : Deprecate
> the Memory-Access Methods in sun.misc.Unsafe for Removal and default
> annotation processing policy change. Also, make sure to check the new Loom
> early-access builds which have an improved Java monitors implementation to
> work better with virtual threads.
>
> [1] https://mail.openjdk.org/pipermail/jdk-dev/2024-June/009053.html
> [2] https://openjdk.org/projects/jdk/23/
>
>
> ## Heads-Up - JDK 23: Deprecate the Memory-Access Methods in
> sun.misc.Unsafe for Removal
>
> As mentioned in a previous communication [3], there’s a plan to ultimately
> remove the sun.misc.Unsafe memory-access methods as the platform offers
> safer alternatives. JEP 471 (Deprecate the Memory-Access Methods in
> sun.misc.Unsafe for Removal) [4] outlines in more detail this plan
> including the initial step which is happening in JDK 23, i.e., all of the
> sun.misc unsafe memory-access methods are now marked as deprecated for
> removal. This will cause, in JDK 23, compile-time deprecation warnings for
> code that refers to these methods, alerting library developers to their
> forthcoming removal. A new command-line option also enables application
> developers and users to receive runtime warnings when those methods are
> used.
>
> Developers relying on those sun.misc.Unsafe APIs for access memory are
> strongly encouraged to start, if they haven't done so yet, the migration
> from the sun.misc.Unsafe APIs to supported replacements. For more details,
> make sure to read JEP 471 (Deprecate the Memory-Access Methods in
> sun.misc.Unsafe for Removal).
>
> [3]
> https://mail.openjdk.org/pipermail/quality-discuss/2024-January/001132.html
> [4] https://openjdk.org/jeps/471
>
>
> ## Heads-Up - JDK 23: Changes Default Annotation Processing Policy
>
> Annotation processing is a compile-time feature, where javac scans the
> to-be-compiled source files for annotations and then the class path for
> matching annotation processors, so they can generate source code. Up to JDK
> 22, this feature is enabled by default, which may have been reasonable when
> it was introduced in JDK 6 circa 2006, but from a current perspective, in
> the interest of making build output more robust against annotation
> processors being placed on the class path unintentionally, this is much
> less reasonable. Hence, starting with JDK 23, javac requires an additional
> command-line option to enable annotation processing.
>
> ### New `-proc` Value
> To that end, the pre-existing option `-proc:$policy` was extended, where
> `$policy` can now have the following values:
> - `none`: compilation _without_ annotation processing, this policy exists
> since JDK 6
> - `only`: annotation processing _without_ compilation, this policy exists
> since JDK 6
> - `full`: annotation processing followed by compilation, this policy is
> the default in JDK ≤22 but the value itself is new (see next section for
> versions that support it)
>
> Up to and including JDK 22, code bases that require annotation processing
> before compilation could rely on javac's default behavior to process
> annotations but that is no longer the case. Starting with JDK 23, at least
> one annotation-processing command line option needs to be present. If
> neither `-processor`, `--processor-path`, now `--processor-module-path` is
> used, `-proc:only` or `-proc:full` has to be provided. In other words,
> absent other command line options, `-proc:none` is the default on JDK 23.
>
> ### Migration to `-proc:full`
>
> Several measures were undertaken to help projects prepare for the switch
> to `-proc:full`:
> - As of the April 2024 JDK security updates, support for `-proc:full` has
> been backported to 17u (17.0.11) and 11u (11.0.23) for both Oracle JDK and
> OpenJDK distributions. Additionally, Oracle's 8u release (8u411) also
> supports `-proc:full`.
> - Starting in JDK 21, javac prints an informative message if implicit
> usage of annotation processing under the default policy is detected.
>
> With `-proc:full` backported, it is possible to configure a build that
> will work the same before and after the change in javac's default policy.
>
> Additional details can be found in the original proposal [5].
>
> [5] https://mail.openjdk.org/pipermail/jdk-dev/2024-May/009028.html
>
>
> ## Heads-up - Loom: New EA builds with improved Java monitors
> implementation to work better with virtual threads
>
> Project Loom published new early-access builds [6]. These builds have an
> improved object monitor implementation that should prevent virtual threads
> from pinning their carrier thread in the following situations:
> - when blocking on entering a synchronized method/statement because the
> object's associated monitor is held by another thread,
> - when parking (e.g. when doing socket I/O) while in a synchronized method,
> - when calling `Object.wait` while in a synchronized method.
> The changes for `Object.wait`/timed-`wait` is the main change since the
> previous Loom EA build.
>
> The Loom team is looking for help to test the changes, i.e., trying out
> these builds with code that is known to use virtual threads and with
> libraries that are "very synchronized". The primary goal is to gauge both
> reliability and performance. Right now, the focus is on being functional
> and reliable. Please note that the performance for some cases isn't yet
> fully on par with blocking on j.u.concurrent locks and condition objects.
>
> As before, JFR events can be used to identify remaining cases of pinning,
> parking or blocking in a class initializer for example. The system property
> `jdk.tracePinnedThreads`, which used to print stack traces when threads are
> pinned, no longer outputs anything.
>
> Please send feedback via email to the Loom mailing list [7] (subscription
> required).
>
> [6] https://jdk.java.net/loom/
> [7] http://mail.openjdk.org/mailman/listinfo/loom-dev
>
>
> ## JDK 23 Early-Access Builds
>
> JDK 23 early-access builds 26 are now available [8] with the Release Notes
> here [9] and the javadocs here[10]. Those builds are provided under the GNU
> GPL v2, with the Classpath Exception.
>
> ### JEPs integrated into JDK 23:
> - JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
> - JEP 466: Class-File API (2nd Preview)
> - JEP 467: Markdown Documentation Comments
> - JEP 469: Vector API (8th Incubator)
> - JEP 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for
> Removal
> - JEP 473: Stream Gatherers (2nd Preview)
> - JEP 474: ZGC: Generational Mode by Default
> - JEP 476: Module Import Declarations (Preview)
> - JEP 477: Implicitly Declared Classes and Instance Main Methods (3rd
> Preview)
> - JEP 480: Structured Concurrency (3rd Preview)
> - JEP 481: Scoped Values (3rd Preview)
> - JEP 482: Flexible Constructor Bodies (2nd Preview)
>
> ### Changes in recent JDK 23 builds that may be of interest:
> - JDK-8331670: Deprecate the Memory-Access Methods in sun.misc.Unsafe for
> Removal
> - JDK-8051959: Add thread and timestamp options to java.security.debug
> system property
> - JDK-8321428: Deprecate for removal the package java.beans.beancontext
> - JDK-8319990: Update CLDR to Version 45.0
> - JDK-8331975: Enable case-insensitive check in ccache and keytab entry
> lookup
> - JDK-8328083: degrade virtual thread support for GetObjectMonitorUsage
> - JDK-8326666: Remove the Java Management Extension (JMX) Subject
> Delegation feature
> - JDK-8295111: dpkg appears to have problems resolving symbolically linked
> native libraries
> - JDK-8330077: Allow max number of events to be buffered to be
> configurable to avoid OVERFLOW_EVENT
> - JDK-8332476: j.u.r.RandomGeneratorFactor.create(long|byte[]) should
> throw rather than silently fallback to no-arg create()
> - JDK-8329113: Deprecate -XX:+UseNotificationThread
> - JDK-8331202: Support for Duration until another Instant
> - JDK-8316138: Add GlobalSign 2 TLS root certificates
> - JDK-8330276: Console methods with explicit Locale
> - JDK-8330005: RandomGeneratorFactory.getDefault() throws exception when
> the runtime image only has java.base module
> - JDK-6968351: httpserver clashes with delayed TCP ACKs for low
> Content-Length
> - JDK-8331021: Deprecate and then obsolete the DontYieldALot flag
> - JDK-8330607: Deprecate -XX:+UseEmptySlotsInSupers
> - JDK-8320522: Remove code related to `RegisterFinalizersAtInit`
> - JDK-8329636: Deprecate -XX:+PreserveAllAnnotations
> - JDK-8322234: Remove obsolete desktop integration from Linux installers
> - JDK-8328649: Disallow enclosing instances for local classes in
> constructor prologues
> - JDK-8330734: JFR: Re-engineer mirror class mechanism
> - JDK-8300148: Consider using a StoreStore barrier instead of Release
> barrier on ctor exit
> - JDK-8329997: Add provisions for checking memory segment alignment
> constraints
> - JDK-8305457: Implement java.io.IO
> - JDK-8321314: Reinstate disabling the compiler's default active
> annotation processing
> - JDK-6942632: Hotspot should be able to use more than 64 logical
> processors on Windows
> - JDK-8332614: Type-checked ConstantPool.entryByIndex and
> ClassReader.readEntryOrNull
> - JDK-8206447: InflaterInputStream.skip receives long but it's limited to
> Integer.MAX_VALUE
>
> Note: A more exhaustive list of changes can be found here [11].
>
> [8] https://jdk.java.net/23/
> [9] https://jdk.java.net/23/release-notes
> [10] https://download.java.net/java/early_access/jdk23/docs/api/
> [11] https://github.com/openjdk/jdk/compare/jdk-23+17...jdk-23+26
>
>
> ## New Jextract Early-Access Builds
>
> New Jextract early-access builds have been made available [12]. These
> builds are based on JDK 22 and bring multiple enhancements. For additional
> details, make sure to check [13]. Moreover, a new jextract guide [14] has
> been published.
>
> [12] https://jdk.java.net/jextract/
> [13] https://mail.openjdk.org/pipermail/jextract-dev/2024-May/001699.html
> [14] https://github.com/openjdk/jextract/blob/master/doc/GUIDE.md
>
>
> ## JavaFX Early-Access Builds
>
> These are early access builds of the JavaFX 23 Runtime built from
> openjdk/jfx [15]. These builds enable JavaFX application developers to
> build and test their applications with JavaFX 23 on JDK 23. Although these
> builds are designed to work with JDK 23EA, they are also known to work with
> JDK 21 and later versions.
>
> The latest early access builds of JavaFX 23 are available here [16], under
> the GNU General Public License, version 2, with the Classpath Exception.
> JavaFX 23 API Javadocs [17] are also available.
>
> [15] https://github.com/openjdk/jfx
> [16] https://jdk.java.net/javafx23/
> [17]
> https://download.java.net/java/early_access/javafx23/docs/api/overview-summary.html
>
>
> ## Topics of Interest
>
> - All Java 23 Features - Inside Java Newscast
> https://inside.java/2024/06/06/newscast-70/
>
> - Module Imports in Java 23 - Inside Java Newscast
> https://inside.java/2024/05/16/newscast-69/
>
> - Java 23: JavaDoc Hits the Markdown on Comments - Inside Java Newscast
> https://inside.java/2024/05/01/newscast-68/
>
> - Java 23: Restoring the Balance with Primitive Patterns - Inside Java
> Newscast
> https://inside.java/2024/04/04/newscast-66/
>
> - Java in 2024 - Constant evolution, delivered.
> https://inside.java/2024/06/01/java-in-2024-keynote/
>
> - Introduction to JDK Mission Control
> https://inside.java/2024/05/18/jmc-intro/
>
> - What's New in JMC 9? - Sip of Java
> https://inside.java/2024/04/21/sip096/
>
> - Programmer's Guide to JDK Flight Recorder
> https://inside.java/2024/04/12/programmer-guide-to-jfr/
>
> - A Decade of JDK Updates in OpenJDK
> https://inside.java/2024/04/09/a-decade-of-jdk-updates/
>
> - Data-Oriented Programming - Version 1.1
> https://inside.java/2024/05/23/dop-v1-1-introduction/
>
>
> ~
>
> As usual, let us know if you find any issues while testing your project(s)
> with the latest JDK early-access builds.
>
> Thank you!
>
> --David
> _______________________________________________
> hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
> To unsubscribe send an email to hibernate-dev-le...@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/message/JL4QRWPHCEXSLZSALNC5TMKS5HT5LECQ/
>
_______________________________________________
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@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/message/BBQPVKRNPND4OGBJUNF4434X4RZRFBAG/

Reply via email to