Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java 22 #5722

Open
monperrus opened this issue Apr 3, 2024 · 1 comment
Open

java 22 #5722

monperrus opened this issue Apr 3, 2024 · 1 comment

Comments

@monperrus
Copy link
Collaborator

For the record

Java 22 was just released along with JavaFX 22 [1][2]. Thank you to all the projects who contributed to those releases by testing and providing feedback using their respective early-access builds. And to celebrate that, the Java DevRel Team hosted a +4h live-stream with guests such as Brian Goetz, Viktor Klang, Alan Bateman, etc. You can watch the launch stream replay here [3].

The JDK 23 schedule is now known [4] with rampdown starting early June and general availability sets for mid-September. So far, 2 JEPs have been targeted to JDK 23:

  • JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview) [5]
  • JEP 466: Class-File API (2nd Preview) [6]

The focus should now be shifted to testing your project(s) on JDK 23. And don't forget that the Oracle setup-java github action [7] supports, amongst others, the latest OpenJDK 23 Early-Access builds. So, JDK 23 EA testing is literally one pipeline away.

[1] https://mail.openjdk.org/pipermail/jdk-dev/2024-March/008827.html
[3] https://jdk.java.net/javafx22/
[3] https://www.youtube.com/live/AjjAZsnRXtE?feature=shared&t=278
[4] https://openjdk.org/projects/jdk/23/
[5] https://openjdk.org/jeps/455
[6] https://openjdk.org/jeps/466
[7] https://github.com/oracle-actions/setup-java

Heads-up: JDK 20-23: Support for Unicode CLDR Version 42

The JDK update to CLDR version 42 included a change where regular spaces in date/time formats (and some other formatted values) were replaced with (narrow) non-breaking spaces. This lead to issues for existing code that relied on parsing such strings. To address that, JDK 23 allows loose matching of spaces when parsing date/time strings. Loose matching is performed in the lenient parsing style for both date/time parsers in java.time.format and java.text packages. In the default strict parsing style, those spaces are considered distinct as before.

Please read this updated heads-up [9] for details on how to configure strict/lenient parsing in the java.time.format (strict by default) and java.text (lenient by default) packages.

[9] https://inside.java/2024/03/29/quality-heads-up/

Heads-up: macOS 14 users running on Apple silicon systems should update directly to macOS 14.4.1

An issue introduced by macOS 14.4 caused some Java processes, regardless of the Java version, to terminate unexpectedly on Apple silicon (AArch64). On March 25 Apple released macOS 14.4.1 and indicated on their support site that it addresses this issue. Oracle can confirm that after applying macOS 14.4.1 we are unable to reproduce the problem. So, Java users on macOS 14 running on Apple silicon systems should skip macOS 14.4 and update directly to macOS 14.4.1.

More details can be found on https://blogs.oracle.com/java/post/java-on-macos-14-4

JDK 23 Early-Access Builds

The JDK 23 EA builds 16 are available [10], and are provided under the GNU General Public License v2, with the Classpath Exception. The Release Notes [11] are also available.

Changes in recent JDK 23 builds that may be of interest:

  • JDK-8324774: Add DejaVu web fonts (reported by AssertJ)
  • JDK-8327385: Add JavaDoc option to exclude web fonts from generated documentation (reported by AssertJ)
  • JDK-8328638: Fallback option for POST-only OCSP requests
  • JDK-8320362: Load anchor certificates from Keychain keystore
  • JDK-8327875: ChoiceFormat should advise throwing UnsupportedOperationException for unused methods
  • JDK-8296244: Alternate implementation of user-based authorization Subject APIs that doesn’t depend on Security Manager APIs
  • JDK-8327818: Implement Kerberos debug with sun.security.util.Debug
  • JDK-7036144: GZIPInputStream readTrailer uses faulty available() test for end-of-stream
  • JDK-8319251: Change LockingMode default from LM_LEGACY to LM_LIGHTWEIGHT
  • JDK-8327651: Rename DictionaryEntry members related to protection domain
  • JDK-8321408: Add Certainly roots R1 and E1
  • JDK-8164094: javadoc allows to create a @link to a non-existent method
  • JDK-8325496: Make TrimNativeHeapInterval a product switch
  • JDK-8174269: Remove COMPAT locale data provider from JDK
  • JDK-8322750: Test "api/java_awt/interactive/SystemTrayTests.html" failed because …
  • JDK-8139457: Relax alignment of array elements
  • JDK-8256314: JVM TI GetCurrentContendedMonitor is implemented incorrectly
  • JDK-8326908: DecimalFormat::toPattern throws OutOfMemoryError when pattern is empty string
  • JDK-8247972: incorrect implementation of JVM TI GetObjectMonitorUsage
  • JDK-8325580: Remove "alternatives --remove" call from Java rpm installer
  • JDK-8326838: JFR: Native mirror events
  • JDK-8326106: Write and clear stack trace table outside of safepoint
  • JDK-8323183: ClassFile API performance improvements
  • JDK-8324829: Uniform use of synchronizations in NMT
  • JDK-8326586: Improve Speed of System.map
  • JDK-8318761: MessageFormat pattern support for CompactNumberFormat, ListFormat, and DateTimeFormatter
  • JDK-8265372: Simplify PKCS9Attribute
  • JDK-8317431: Implement simpler Comparator when building certification paths
  • JDK-8327093: Add truncate function to BitMap API

Note: A more detailed list of changes can be found here [12].

[10] https://jdk.java.net/23/
[11] https://jdk.java.net/23/release-notes
[12] openjdk/jdk@jdk-23+10...jdk-23+16

JavaFX 23 Early-Access Builds

These are early access builds of the JavaFX 23 Runtime built from openjdk/jfx [13]. 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 23, they are also known to work with JDK 17 and later versions.

The latest early access builds of JavaFX 23 Builds 10 (2024/3/26) are available [14], under the GNU General Public License, version 2, with the Classpath Exception.

[13] https://github.com/openjdk/jfx
[14] https://jdk.java.net/javafx23/

@SirYwell
Copy link
Collaborator

SirYwell commented Apr 4, 2024

Java 22 includes multiple new features (https://openjdk.org/projects/jdk/22/), but only one is out of preview and changes the language itself: JEP 456: Unnamed Variables & Patterns.

A JLS diff for that feature can be found here (this is how the feature was previewed in Java 21, there were no changes to it in Java 22 other than making it non-preview).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants