On Fri, Jan 26, 2024 at 12:17 PM David Delabassee
<david.delabas...@oracle.com> wrote:
>
> Greetings!
>
> We are starting 2024 with JDK 22 as it has just entered Rampdown Phase 2 [1]. 
> And with the initial JDK 22 Release Candidates now less than 2 weeks away 
> (Feb. 8th) [2], it is time to shift our attention to JDK 23.
>
> After multiple rounds of incubations and preview, the Foreign Function & 
> Memory API is becoming standard and permanent in JDK 22. If we put its 
> 'Function' angle aside, this API also offers a standard and secure way to 
> access off-heap API. And that brings us to the heads-up below 'Deprecate the 
> memory-access methods in sun.misc.Unsafe for removal in a future release' as 
> developers still using sun.misc.Unsafe for accessing memory are strongly 
> encouraged to start preparing their plans to migrate away from those unsafe 
> methods.
>
> [1] https://mail.openjdk.org/pipermail/jdk-dev/2024-January/008675.html
> [2] https://openjdk.org/projects/jdk/22/
>
>
> ## Heads-up: Deprecate the Memory-Access Methods in sun.misc.Unsafe for 
> Removal in a Future Release
>
> The effort focused on enforcing the integrity of the Java platform [3] 
> continues! The next phase in that long but important initiative will most 
> likely target the sun.misc.Unsafe API used for accessing memory. Those 
> methods alone represent 79 methods out of the 87 sun.misc.Unsafe methods!
>
> This draft JEP [4] outlines the plan to deprecate for removal the 
> sun.misc.Unsafe Memory-Access methods, the reasons, and the standard 
> alternatives. As the draft plan suggests, the first step will be to deprecate 
> all memory-access methods (on-heap, off-heap, and bimodal) for removal. This 
> will cause compile-time deprecation warnings for code that refers to the 
> methods, alerting library developers to their forthcoming removal. In 
> addition, a new command-line option will allow users to receive runtime 
> warnings when those methods are used. This command-line will help users to 
> assess if their codebase uses those unsafe API to access memory. It should be 
> mentioned that other tools such as JFR and jdeprscan can also be used to 
> detect the use of those deprecated APIs.
>
> Library developers are strongly encouraged to migrate from sun.misc.Unsafe to 
> the supported replacements, so that applications can migrate smoothly to 
> modern JDKs. The initial step will be to conduct investigations to understand 
> if, how, and where sun.misc.Unsafe methods are used to access memory.
>
> [3] https://openjdk.org/jeps/8305968
> [4] https://openjdk.org/jeps/8323072
>
>
> ## Heads-up: Java Array Element Alignment - Weakening of Some Methods 
> Guarantees ?
>
> Some methods make promises about Java array element alignment that are too 
> strong. There are some ongoing reflexions to change the implementation (and 
> the specification) of `MethodHandles::byteArrayViewVarHandle`, 
> `MethodHandles::byteBufferViewVarHandle`, `ByteBuffer::alignedSlice`, and 
> `ByteBuffer::alignmentOffset` to weaken the guarantees they make about the 
> alignment of Java array elements, in order to bring them in line with the 
> guarantees made by an arbitrary JVM implementation.
>
> For more details, make sure to check JDK-8320247 [5] and the related PR [6] 
> but in a nutshell, the new behaviour would be :
> - The `VarHandle` returned by `MethodHandles::byteArrayViewVarHandle` would 
> only support `get` and `set` methods, and all other access methods would 
> throw an exception.
> - The `VarHandle` returned by `MethodHandles::byteBufferViewHandle` would 
> only support the `get` and `set` access methods when a heap buffer is used, 
> and all other access methods would throw an exception when used with a heap 
> buffer. Direct byte buffers will continue to work the same way.
> - The `ByteBuffer::alignmentOffset` and `ByteBuffer::alignedSlice` methods 
> would throw an exception if the buffer is a heap buffer, and the given 
> `unitSize` is greater than 1.
>
> If you have relevant feedback about this potential change, please make sure 
> to bring it to the core-libs-dev mailing list [7], or comment on the PR [6].
>
> [5] https://bugs.openjdk.org/browse/JDK-8320247
> [6] https://github.com/openjdk/jdk/pull/16681
> [7] https://mail.openjdk.org/pipermail/core-libs-dev/
>
>
> ## JDK 22 Early-Access Builds
>
> JDK 22 Early-Access builds 33 are now available [8], and are provided under 
> the GNU General Public License v2, with the Classpath Exception. The Release 
> Notes [9] and the javadocs [10] are also available.
>
> ### Changes in recent JDK 22 builds that may be of interest:
>
> - JDK-8320597: RSA signature verification fails on signed data that does not 
> encode params correctly [Reported by Apache POI]
> - JDK-8322214: Return value of XMLInputFactory.getProperty() changed from 
> boolean to String in JDK 22 early access builds [Reported by Apache POI]
> - JDK-8322725: (tz) Update Timezone Data to 2023d
> - JDK-8321480: ISO 4217 Amendment 176 Update
> - JDK-8314468: Improve Compiler loops
> - JDK-8314295: Enhance verification of verifier
> - JDK-8316976: Improve signature handling
> - JDK-8317547: Enhance TLS connection support
> - JDK-8318971: Better Error Handling for Jar Tool When Processing 
> Non-existent Files
> - JDK-8323659: LinkedTransferQueue add and put methods call overridable offer
>
> Note: A complete list of changes can be found here [11].
>
> [8] https://jdk.java.net/22/
> [9] https://jdk.java.net/22/release-notes
> [10] https://download.java.net/java/early_access/jdk22/docs/api/
> [11] https://github.com/openjdk/jdk/compare/jdk-22+27...jdk-22+33
>
>
> ## JDK 23 Early-Access builds
>
> JDK 23 Early-Access builds 7 are available [12] for testing. These EA builds 
> are provided under the GNU General Public License v2, with the Classpath 
> Exception. The Release Notes [13] are also available.
>
> ### Changes in recent JDK 23 builds that may be of interest:
>
> - JDK-8320597: RSA signature verification fails on signed data that does not 
> encode params correctly [Reported by Apache POI]
> - JDK-8322214: Return value of XMLInputFactory.getProperty() changed from 
> boolean to String in JDK 22 early access builds [Reported by Apache POI]
> - JDK-8321545: Override toString() for Format subclasses
> - JDK-8322366: Add IEEE rounding mode corruption check to JNI checks
> - JDK-8322383: G1: Only preserve marks on objects that are actually moved
> - JDK-8275338: Add JFR events for notable serialization situations
> - JDK-8320458: Improve structural navigation in API documentation
> - JDK-8320786: Remove ThreadGroup.stop
> - JDK-8320532: Remove Thread/ThreadGroup suspend/resume
> - JDK-8312150: Remove -Xnoagent option
> - JDK-8322829: Refactor nioBlocker to avoid blocking while holding Thread's 
> interrupt lock
> - JDK-8322725: (tz) Update Timezone Data to 2023d
> - JDK-8321480: ISO 4217 Amendment 176 Update
> - JDK-8318971: Better Error Handling for Jar Tool When Processing 
> Non-existent Files
> - JDK-8321594: NativeThreadSet should use placeholder for virtual threads
> - JDK-8321940: Improve CDSHeapVerifier in handling of interned strings
> - JDK-8321802: (zipfs) Add validation of incorrect LOC signature in 
> ZipFileSystem
> - JDK-8322841: Parallel: Remove unused using-declaration in MutableNUMASpace
> - JDK-8319626: Override toString() for ZipFile
> - JDK-8322878: Including sealing information Class.toGenericString()
>
> Note: A more exhaustive changes list can be found here [14].
>
> [12] https://jdk.java.net/23/
> [13] https://jdk.java.net/23/release-notes
> [14] https://github.com/openjdk/jdk/compare/jdk-23+1...jdk-23+7
>
>
> ## JavaFX 22 & 23 Early-Access Builds
>
> These are early access builds of the JavaFX 22 Runtime built from openjdk/jfx 
> [14]. These builds enable JavaFX application developers to build and test 
> their applications with JavaFX 22 on JDK 22. Although JavaFX 22 is designed 
> to work with JDK 22, it is also known to work with JDK 17 and later versions.
>
> The latest early access builds of JavaFX 22 Builds 26 (2024/1/20) are 
> available [15], under the GNU General Public License, version 2, with the 
> Classpath Exception. JavaFX 22 API Javadocs [16] are also available.
>
> The first early access builds (2024/1/19) of JavaFX 23 are now also available 
> [17].
>
> [14] https://github.com/openjdk/jfx
> [15] https://jdk.java.net/javafx22/
> [16] 
> https://download.java.net/java/early_access/javafx22/docs/api/overview-summary.html
> [17] https://jdk.java.net/javafx23/
>
>
> ## Topics of Interest
>
> - Podcast “The Panama Effect” with Jorn Vernee
> https://inside.java/2024/01/08/podcast-032/

Tomcat got quoted ;)

Also many additional changes to jextract are expected, it seems.

Rémy

> - Java's Plans for 2024 - Inside Java Newscast
> https://inside.java/2024/01/18/newscast-61/
>
> - Java 22 Unpacking - Inside Java Newscast
> https://inside.java/2023/12/07/newscast-59/
>
> - Java Highlights of 2023 - Inside Java Newscast
> https://inside.java/2023/12/21/newscast-60/
>
> - JDK 21: The GCs keep getting better
> https://kstefanj.github.io/2023/12/13/jdk-21-the-gcs-keep-getting-better.html
>
> - Java SE Security Developer’s Guide
> https://docs.oracle.com/en/java/javase/21/security/index.html#Java-Platform%2C-Standard-Edition
>
> - Another VS Code Extension for Java
> https://inside.java/2023/12/03/java-vscode-extension/
>
>
> ## January 2024 Critical Patch Update Released
>
> As part of the January 2024 CPU, Oracle released OpenJDK 21.0.2, JDK 21.0.2 
> LTS, JDK 17.0.10 LTS, 11.0.22 LTS, 8u401, and 8u401-perf.
>
>
> ~
>
> As usual, let us know if you find any quirks while testing your project(s) 
> with the latest JDK early-access builds.
>
> --David

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to