JDK 25 feature set is now frozen!

David Delabassee via Jython-dev <[email protected]> Fri, 6 Jun 2025 07:35:44 +0000
Newsgroups gmane.comp.lang.jython.devel
Message-ID <SA1PR10MB76996E0205162B5C78F9EA29FC6EA@SA1PR10MB7699.namprd10.prod.outlook.com>
--===============0335508882040364396==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_SA1PR10MB76996E0205162B5C78F9EA29FC6EASA1PR10MB7699namp_"

--_000_SA1PR10MB76996E0205162B5C78F9EA29FC6EASA1PR10MB7699namp_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

Greetings and welcome to the June installment of the OpenJDK Quality Outrea=
ch update.

JDK 25, scheduled for General Availability on September 16, 2025, has enter=
ed Rampdown Phase One (RDP1)[1]. The JDK 25 feature set is now frozen (see =
JDK 25 details below), and only low-risk enhancements will be considered. P=
lease help us identify potential issues in the coming weeks by testing your=
 projects on JDK 25 EA builds. With enough lead time, we can resolve them b=
efore JDK 25 transitions to the Release Candidate phase in early August[2].

Be make sure to review the JDK 25 heads-ups below; two of them pertain to c=
hanges in file operations on Windows.

Last but certainly not least, you are invited to attend next week=92s JCP E=
C online public meeting, where Alex Buckley will give a presentation on Tip=
 & Tail Development=97a topic particularly relevant for open-source project=
 maintainers. See [3] for details, the meeting will be recorded.

[1] https://mail.openjdk.org/pipermail/jdk-dev/2025-June/010191.html
[2] https://openjdk.org/projects/jdk/25/
[3] https://jcp.org/aboutJava/communityprocess/ec-public/materials/2025-06-=
10/JCP-EC-Public-Agenda-June-2025.html


# Heads-up - JDK 25: java.io.File.delete no longer deletes read-only files =
on Windows

`File.delete` has been changed on Windows so that it now fails and returns =
`false` for regular files when the DOS read-only attribute is set. Prior to=
 JDK 25, `File.delete` would delete read-only files by first removing the D=
OS read-only attribute before attempting deletion. However, because removin=
g the attribute and deleting the file are not a single atomic operation, th=
is could result in the file remaining but with modified attributes if the d=
eletion failed. Applications that depend on the previous behavior should be=
 updated to clear the file attributes before deleting files.

To ease the transition, a system property has been introduced to restore th=
e previous behavior. Running with `-Djdk.io.File.allowDeleteReadOnlyFiles=
=3Dtrue` will cause `File.delete` to remove the DOS read-only attribute bef=
ore attempting deletion, restoring the legacy behavior.

See https://bugs.openjdk.org/browse/JDK-8355954 for more details.


# Heads-up - JDK 25: File operations on Windows now always fail if the used=
 name ends with a space

File operations on a path with a trailing space in a directory or file name=
, e.g. "C:\\SomeFolder\\SomeFile ", now fail consistently on Windows. For e=
xample. `File::mkdir` will return `false`, or `File::createNewFile` will th=
row `IOException` if an element in the path has a trailing space. Such path=
names are not legal on Windows. Prior to JDK 25, operations on a `File` cre=
ated from such an illegal abstract pathname could appear to succeed when in=
 fact they did not.

See https://bugs.openjdk.org/browse/JDK-8354450 for more details.


# Heads-up - JDK 25: Separate Metaspace and GC Printing

Historically the printing of Metaspace and GC logs have been combined; this=
 was a result of permanent generation (PermGen) being a part of the GC Heap=
. However, Metaspace has replaced PermGen and resides in its own native mem=
ory location outside of the GC Heap. With Metaspace no longer a part of the=
 GC Heap, the reason for combining the messaging no longer makes sense and =
could lead to confusion.

Starting with JDK 25, the way logging is tagged in the HotSpot JVM will cha=
nge: although the content of the logs will remain the same, messages relate=
d to Metaspace will now use the existing Metaspace tag.

As part of this update, there are also some user-facing changes to `jcmd`. =
To better clarify that Metaspace is not part of the GC Heap, Metaspace info=
rmation is no longer displayed with the `GC.heap_info` command. Instead, de=
tails about Metaspace memory usage have been moved to the `VM.metaspace` co=
mmand.

See https://bugs.openjdk.org/browse/JDK-8356848 for more details.


# JDK 25

The JDK 25 early-access builds 25 are available[4] and are provided under t=
he GNU General Public License v2, with the Classpath Exception. The Release=
 Notes are available here[5].

Please refer to the =93Topics of Interest=94 section at the end of this upd=
ate for additional information on JDK 25.

## JEPs integrated in JDK 25:
- JEP 470: PEM Encodings of Cryptographic Objects (Preview)
- JEP 502: Stable Values (Preview)
- JEP 503: Remove the 32-bit x86 Port
- JEP 505: Structured Concurrency (5th Preview)
- JEP 506: Scoped Values
- JEP 507: Primitive Types in Patterns, instanceof, and switch (3rd Preview=
)
- JEP 508: Vector API (10th Incubator)
- JEP 509: JFR CPU-Time Profiling (Experimental)
- JEP 510: Key Derivation Function API
- JEP 511: Module Import Declarations
- JEP 512: Compact Source Files and Instance Main Methods
- JEP 513: Flexible Constructor Bodies
- JEP 514: Ahead-of-Time Command-Line Ergonomics
- JEP 515: Ahead-of-Time Method Profiling
- JEP 518: JFR Cooperative Sampling
- JEP 519: Compact Object Headers
- JEP 520: JFR Method Timing & Tracing
- JEP 521: Generational Shenandoah

## Changes in recent JDK 25 builds that may be of interest:
- JDK-8340321: Disable SHA-1 in TLS/DTLS 1.2 handshake signatures
- JDK-8354276: Strict HTTP header validation
- JDK-8356848: Separate Metaspace and GC printing
- JDK-8355954: java.io.File.delete no longer deletes read-only files on Win=
dows
- JDK-8353440: Disable FTP fallback for non-local file URLs by default
- JDK-8354908: javac mishandles supplementary character in character litera=
l
- JDK-8355360: -d option of jwebserver command should accept relative paths
- JDK-8354084: Streamline XPath API's extension function control
- JDK-8354305: SHAKE128 and SHAKE256 MessageDigest algorithms
- JDK-8343110: Add getChars(int, int, char[], int) to CharSequence and Char=
Buffer
- JDK-8356154: Respecify java.net.Socket constructors that allow creating U=
DP sockets to throw IllegalArgumentException
- JDK-8322810: Lambda expression types can't be classes
- JDK-8352612: No way to add back lint categories after "none"
- JDK-8348732: SunJCE and SunPKCS11 have different PBE key encodings
- JDK-8350498: Remove two Camerfirma root CA certificates
- JDK-8350441: ZGC: Overhaul Page Allocation
- JDK-8347337: ZGC: String dedups short-lived strings
- JDK-8350279: HttpClient: Add a new HttpResponse method to identify connec=
tions
- JDK-8350753: Deprecate UseCompressedClassPointers
- JDK-8254622: Hide superclasses from conditionally exported packages
- JDK-8346465: Add a check in setData() to restrict the update of Built-In =
ICC_Profiles
- JDK-8347472: Correct Attribute traversal and writing for Code attributes
- JDK-8351654: Agent transformer bytecodes should be verified
- JDK-8348967: Deprecate security permission classes for removal
- JDK-8353642: Deprecate URL::getPermission method and networking permissio=
n classes for removal
- JDK-8353856: Deprecate FlighRecorderPermission class for removal
- JDK-8353614: JFR: jfr print --exact
- JDK-8346109: Create JDK taglet for additional preview notes
- JDK-8285888: Clarify that java.net.http.HttpClient do NOT support Digest =
authentication
- JDK-8350542: Optional.orElseThrow(Supplier) does not specify behavior whe=
n supplier returns null
- JDK-8342206: Convenience method to check if a constant pool entry matches=
 nominal descriptors

Note: For a more exhaustive list of changes, please see here[6].

[4] https://jdk.java.net/25/
[5] https://jdk.java.net/25/release-notes
[6] https://github.com/openjdk/jdk/compare/jdk-25+17...jdk-25+25


# JavaFX 25 Early-Access Builds

These are early access builds of the JavaFX 25 Runtime, built from the open=
jdk/jfx repository. They 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, they are also compatible with JDK 22 and =
later versions.

The latest early access builds of JavaFX 25 Builds 18 (2025/5/23) are avail=
able[7], under the GNU General Public License, version 2, with the Classpat=
h Exception. JavaFX 25 API Javadocs[8] are available too.

[7] https://jdk.java.net/javafx25/
[8] https://download.java.net/java/early_access/javafx25/docs/api/overview-=
summary.html


# JavaFX Direct3D 12 Early-Access Builds

These are early access builds of JavaFX from the "direct3d12" branch of the=
 openjdk/jfx-sandbox repository[9], which implement the new Direct3D 12 gra=
phics rendering pipeline for Windows x64. The goal of these EA builds is to=
 solicit feedback as we work toward integrating this functionality into Jav=
aFX. Binaries[10] are provided for convenience, so users do not need to bui=
ld from source.

Feedback can be reported to the openjfx-dev mailing list[11]. These builds =
are provided under the GNU General Public License, version 2, with the Clas=
spath Exception, and are based on an incomplete version of JavaFX 25.

[9] https://github.com/openjdk/jfx-sandbox/tree/direct3d12
[10] https://jdk.java.net/javafxdirect3d12/
[11] https://mail.openjdk.org/pipermail/openjfx-dev/


# Topics of Interest

- Java 25 Brings 18 JEPs - Inside Java Newscast
https://inside.java/2025/06/05/newscast-92/

- Strings Just Got Faster in JDK 25
https://inside.java/2025/05/01/strings-just-got-faster/

- What's new for JFR in JDK 25
https://egahlin.github.io/2025/05/31/whats-new-in-jdk-25.html

- Structured Concurrency Revamp in Java 25 - Inside Java Newscast
https://inside.java/2025/05/08/newscast-91/

- Where Is the Java Language Going?
https://inside.java/2025/04/20/javaone-future-java/

- Java for AI
https://inside.java/2025/05/03/javaone-java-ai/

- Pattern Matching in Java: Better Code, Better APIs
https://inside.java/2025/05/24/javaone-pattern-matching/

- Towards a JSON API for the JDK
https://mail.openjdk.org/pipermail/core-libs-dev/2025-May/145905.html

- Modern Java Development with Tip & Tail
https://inside.java/2025/05/17/javaone-tip-tail/

- Java 24, Faster Than Ever
https://inside.java/2025/05/17/javaone-faster-jdk24/

- =93Ahead of Time Computation=94 with Dan Heidinga - Inside Java Podcast
https://inside.java/2025/05/16/podcast-036/

- =93Stream Gatherers=94 with Viktor Klang - Inside Java Podcast
https://inside.java/2025/05/05/podcast-035/

- Garbage Collection in Java: The Performance Benefits of Upgrading
https://inside.java/2025/05/14/javaone-garbage-collection/

- JavaFX 24 and Beyond
https://inside.java/2025/05/10/javaone-javafx/

- JDK 24 Security Enhancements
https://seanjmullan.org/blog/2025/04/07/jdk24


~


This concludes the update for now. Should you experience any difficulties w=
hile testing your projects with the latest JDK early-access builds, just pi=
ng me.

PS: If you no longer wish to receive OpenJDK Quality Outreach updates, plea=
se let me know.

--David

--_000_SA1PR10MB76996E0205162B5C78F9EA29FC6EASA1PR10MB7699namp_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:sc=
hemas-microsoft-com:office:word" xmlns:m=3D"http://schemas.microsoft.com/of=
fice/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Aptos;
	panose-1:2 11 0 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:11.0pt;
	font-family:"Aptos",sans-serif;
	mso-ligatures:standardcontextual;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Aptos",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:11.0pt;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style>
</head>
<body lang=3D"en-BE" link=3D"#467886" vlink=3D"#96607D" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Greetings and </span><span lang=
=3D"EN-US" style=3D"mso-ligatures:none;mso-fareast-language:EN-GB">w</span>=
<span style=3D"mso-ligatures:none;mso-fareast-language:EN-GB">elcome to the=
 June installment of the OpenJDK Quality Outreach
</span><span lang=3D"EN-US" style=3D"mso-ligatures:none;mso-fareast-languag=
e:EN-GB">update</span><span style=3D"mso-ligatures:none;mso-fareast-languag=
e:EN-GB">.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">JDK 25, scheduled for General Availability on September 16, 2025,=
 has entered Rampdown Phase One (RDP1)[1]. The JDK 25 feature set is now fr=
ozen (see JDK 25 details below), and
 only low-risk enhancements will be considered. Please help us identify pot=
ential issues in the coming weeks by testing your projects on JDK 25 EA bui=
lds. With enough lead time, we can resolve them before JDK 25 transitions t=
o the Release Candidate phase in
 early August[2].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Be make sure to review the JDK 25 heads-ups below; two of them pe=
rtain to changes in file operations on Windows.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Last but certainly not least, you are invited to attend next week=
=92s JCP EC online public meeting, where Alex Buckley will give a presentat=
ion on Tip &amp; Tail Development=97a topic
 particularly relevant for open-source project maintainers. See [3] for det=
ails, the meeting will be recorded.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[1]
<a href=3D"https://mail.openjdk.org/pipermail/jdk-dev/2025-June/010191.html=
"><span style=3D"color:#467886">https://mail.openjdk.org/pipermail/jdk-dev/=
2025-June/010191.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[2]
<a href=3D"https://openjdk.org/projects/jdk/25/"><span style=3D"color:#4678=
86">https://openjdk.org/projects/jdk/25/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[3]
<a href=3D"https://jcp.org/aboutJava/communityprocess/ec-public/materials/2=
025-06-10/JCP-EC-Public-Agenda-June-2025.html">
<span style=3D"color:#467886">https://jcp.org/aboutJava/communityprocess/ec=
-public/materials/2025-06-10/JCP-EC-Public-Agenda-June-2025.html</span></a>=
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-indent:36.0pt"><span style=3D"mso-liga=
tures:none;mso-fareast-language:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># Heads-up - JDK 25: java.io.File.delete no longer deletes read-o=
nly files on Windows<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">`File.delete` has been changed on Windows so that it now fails an=
d returns `false` for regular files when the DOS read-only attribute is set=
. Prior to JDK 25, `File.delete` would
 delete read-only files by first removing the DOS read-only attribute befor=
e attempting deletion. However, because removing the attribute and deleting=
 the file are not a single atomic operation, this could result in the file =
remaining but with modified attributes
 if the deletion failed. Applications that depend on the previous behavior =
should be updated to clear the file attributes before deleting files.<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">To ease the transition, a system property has been introduced to =
restore the previous behavior. Running with `-Djdk.io.File.allowDeleteReadO=
nlyFiles=3Dtrue` will cause `File.delete`
 to remove the DOS read-only attribute before attempting deletion, restorin=
g the legacy behavior.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">See
<a href=3D"https://bugs.openjdk.org/browse/JDK-8355954"><span style=3D"colo=
r:#467886">https://bugs.openjdk.org/browse/JDK-8355954</span></a> for more =
details.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># Heads-up - JDK 25: File operations on Windows now always fail i=
f the used name ends with a space<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">File operations on a path with a trailing space in a directory or=
 file name, e.g. &quot;C:\\SomeFolder\\SomeFile &quot;, now fail consistent=
ly on Windows. For example. `File::mkdir` will
 return `false`, or `File::createNewFile` will throw `IOException` if an el=
ement in the path has a trailing space. Such pathnames are not legal on Win=
dows. Prior to JDK 25, operations on a `File` created from such an illegal =
abstract pathname could appear to
 succeed when in fact they did not. <o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">See
<a href=3D"https://bugs.openjdk.org/browse/JDK-8354450"><span style=3D"colo=
r:#467886">https://bugs.openjdk.org/browse/JDK-8354450</span></a> for more =
details.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># Heads-up - JDK 25: Separate Metaspace and GC Printing<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Historically the printing of Metaspace and GC logs have been comb=
ined; this was a result of permanent generation (PermGen) being a part of t=
he GC Heap. However, Metaspace has replaced
 PermGen and resides in its own native memory location outside of the GC He=
ap. With Metaspace no longer a part of the GC Heap, the reason for combinin=
g the messaging no longer makes sense and could lead to confusion.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Starting with JDK 25, the way logging is tagged in the HotSpot JV=
M will change: although the content of the logs will remain the same, messa=
ges related to Metaspace will now use
 the existing Metaspace tag.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">As part of this update, there are also some user-facing changes t=
o `jcmd`. To better clarify that Metaspace is not part of the GC Heap, Meta=
space information is no longer displayed
 with the `GC.heap_info` command. Instead, details about Metaspace memory u=
sage have been moved to the `VM.metaspace` command.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">See
<a href=3D"https://bugs.openjdk.org/browse/JDK-8356848"><span style=3D"colo=
r:#467886">https://bugs.openjdk.org/browse/JDK-8356848</span></a> for more =
details.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># JDK 25<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">The JDK 25 early-access builds 25 are available[4] and are provid=
ed under the GNU General Public License v2, with the Classpath Exception. T=
he Release Notes are available here[5].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Please refer to the =93Topics of Interest=94 section at the end o=
f this update for additional information on JDK 25.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">## JEPs integrated in JDK 25:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 470: PEM Encodings of Cryptographic Objects (Preview)<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 502: Stable Values (Preview)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 503: Remove the 32-bit x86 Port<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 505: Structured Concurrency (5th Preview)<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 506: Scoped Values<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 507: Primitive Types in Patterns, instanceof, and switch (3=
rd Preview)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 508: Vector API (10th Incubator)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 509: JFR CPU-Time Profiling (Experimental)<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 510: Key Derivation Function API<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 511: Module Import Declarations<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 512: Compact Source Files and Instance Main Methods<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 513: Flexible Constructor Bodies<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 514: Ahead-of-Time Command-Line Ergonomics<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 515: Ahead-of-Time Method Profiling<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 518: JFR Cooperative Sampling<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 519: Compact Object Headers<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 520: JFR Method Timing &amp; Tracing<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JEP 521: Generational Shenandoah<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">## Changes in recent JDK 25 builds that may be of interest:<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8340321: Disable SHA-1 in TLS/DTLS 1.2 handshake signatures=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8354276: Strict HTTP header validation<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8356848: Separate Metaspace and GC printing<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8355954: java.io.File.delete no longer deletes read-only fi=
les on Windows<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8353440: Disable FTP fallback for non-local file URLs by de=
fault<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8354908: javac mishandles supplementary character in charac=
ter literal<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8355360: -d option of jwebserver command should accept rela=
tive paths<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8354084: Streamline XPath API's extension function control<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8354305: SHAKE128 and SHAKE256 MessageDigest algorithms<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8343110: Add getChars(int, int, char[], int) to CharSequenc=
e and CharBuffer<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8356154: Respecify java.net.Socket constructors that allow =
creating UDP sockets to throw IllegalArgumentException<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8322810: Lambda expression types can't be classes<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8352612: No way to add back lint categories after &quot;non=
e&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8348732: SunJCE and SunPKCS11 have different PBE key encodi=
ngs<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8350498: Remove two Camerfirma root CA certificates<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8350441: ZGC: Overhaul Page Allocation<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8347337: ZGC: String dedups short-lived strings<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8350279: HttpClient: Add a new HttpResponse method to ident=
ify connections<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8350753: Deprecate UseCompressedClassPointers<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8254622: Hide superclasses from conditionally exported pack=
ages<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8346465: Add a check in setData() to restrict the update of=
 Built-In ICC_Profiles<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8347472: Correct Attribute traversal and writing for Code a=
ttributes<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8351654: Agent transformer bytecodes should be verified<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8348967: Deprecate security permission classes for removal
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8353642: Deprecate
<a href=3D"URL::getPermission"><span style=3D"color:#467886">URL::getPermis=
sion</span></a> method and networking permission classes for removal<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8353856: Deprecate FlighRecorderPermission class for remova=
l<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8353614: JFR: jfr print --exact<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8346109: Create JDK taglet for additional preview notes<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8285888: Clarify that java.net.http.HttpClient do NOT suppo=
rt Digest authentication<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8350542: Optional.orElseThrow(Supplier) does not specify be=
havior when supplier returns null<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8342206: Convenience method to check if a constant pool ent=
ry matches nominal descriptors<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Note: For a more exhaustive list of changes, please see here[6].<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[4]
<a href=3D"https://jdk.java.net/25/"><span style=3D"color:#467886">https://=
jdk.java.net/25/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[5]
<a href=3D"https://jdk.java.net/25/release-notes"><span style=3D"color:#467=
886">https://jdk.java.net/25/release-notes</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[6]
<a href=3D"https://github.com/openjdk/jdk/compare/jdk-25+17...jdk-25+25"><s=
pan style=3D"color:#467886">https://github.com/openjdk/jdk/compare/jdk-25+1=
7...jdk-25+25</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># JavaFX 25 Early-Access Builds<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">These are early access builds of the JavaFX 25 Runtime, built fro=
m the openjdk/jfx repository. They 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 2=
5 EA, they are also compatible with JDK 22 and later versions.<o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">The latest early access builds of JavaFX 25 Builds 18 (2025/5/23)=
 are available[7], under the GNU General Public License, version 2, with th=
e Classpath Exception. JavaFX 25 API
 Javadocs[8] are available too.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[7]
<a href=3D"https://jdk.java.net/javafx25/"><span style=3D"color:#467886">ht=
tps://jdk.java.net/javafx25/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[8]
<a href=3D"https://download.java.net/java/early_access/javafx25/docs/api/ov=
erview-summary.html">
<span style=3D"color:#467886">https://download.java.net/java/early_access/j=
avafx25/docs/api/overview-summary.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># JavaFX Direct3D 12 Early-Access Builds<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">These are early access builds of JavaFX from the &quot;direct3d12=
&quot; branch of the openjdk/jfx-sandbox repository[9], which implement the=
 new Direct3D 12 graphics rendering pipeline for
 Windows x64. The goal of these EA builds is to solicit feedback as we work=
 toward integrating this functionality into JavaFX. Binaries[10] are provid=
ed for convenience, so users do not need to build from source.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Feedback can be reported to the openjfx-dev mailing list[11]. The=
se builds are provided under the GNU General Public License, version 2, wit=
h the Classpath Exception, and are based
 on an incomplete version of JavaFX 25.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[9]
<a href=3D"https://github.com/openjdk/jfx-sandbox/tree/direct3d12"><span st=
yle=3D"color:#467886">https://github.com/openjdk/jfx-sandbox/tree/direct3d1=
2</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[10]
<a href=3D"https://jdk.java.net/javafxdirect3d12/"><span style=3D"color:#46=
7886">https://jdk.java.net/javafxdirect3d12/</span></a><o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[11]
<a href=3D"https://mail.openjdk.org/pipermail/openjfx-dev/"><span style=3D"=
color:#467886">https://mail.openjdk.org/pipermail/openjfx-dev/</span></a><o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># Topics of Interest<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Java 25 Brings 18 JEPs - Inside Java Newscast<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/06/05/newscast-92/"><span sty=
le=3D"color:#467886">https://inside.java/2025/06/05/newscast-92/</span></a>=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Strings Just Got Faster in JDK 25<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/01/strings-just-got-faster=
/"><span style=3D"color:#467886">https://inside.java/2025/05/01/strings-jus=
t-got-faster/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- What's new for JFR in JDK 25<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://egahlin.github.io/2025/05/31/whats-new-in-jdk-=
25.html"><span style=3D"color:#467886">https://egahlin.github.io/2025/05/31=
/whats-new-in-jdk-25.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Structured Concurrency Revamp in Java 25 - Inside Java Newscast=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/08/newscast-91/"><span sty=
le=3D"color:#467886">https://inside.java/2025/05/08/newscast-91/</span></a>=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Where Is the Java Language Going?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/04/20/javaone-future-java/"><=
span style=3D"color:#467886">https://inside.java/2025/04/20/javaone-future-=
java/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Java for AI<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/03/javaone-java-ai/"><span=
 style=3D"color:#467886">https://inside.java/2025/05/03/javaone-java-ai/</s=
pan></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Pattern Matching in Java: Better Code, Better APIs<o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/24/javaone-pattern-matchin=
g/"><span style=3D"color:#467886">https://inside.java/2025/05/24/javaone-pa=
ttern-matching/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Towards a JSON API for the JDK<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://mail.openjdk.org/pipermail/core-libs-dev/2025-=
May/145905.html"><span style=3D"color:#467886">https://mail.openjdk.org/pip=
ermail/core-libs-dev/2025-May/145905.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Modern Java Development with Tip &amp; Tail<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/17/javaone-tip-tail/"><spa=
n style=3D"color:#467886">https://inside.java/2025/05/17/javaone-tip-tail/<=
/span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Java 24, Faster Than Ever<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/17/javaone-faster-jdk24/">=
<span style=3D"color:#467886">https://inside.java/2025/05/17/javaone-faster=
-jdk24/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- =93Ahead of Time Computation=94 with Dan Heidinga - Inside Java=
 Podcast<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/16/podcast-036/"><span sty=
le=3D"color:#467886">https://inside.java/2025/05/16/podcast-036/</span></a>=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- =93Stream Gatherers=94 with Viktor Klang - Inside Java Podcast<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/05/podcast-035/"><span sty=
le=3D"color:#467886">https://inside.java/2025/05/05/podcast-035/</span></a>=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- Garbage Collection in Java: The Performance Benefits of Upgradi=
ng<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/14/javaone-garbage-collect=
ion/"><span style=3D"color:#467886">https://inside.java/2025/05/14/javaone-=
garbage-collection/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JavaFX 24 and Beyond<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/05/10/javaone-javafx/"><span =
style=3D"color:#467886">https://inside.java/2025/05/10/javaone-javafx/</spa=
n></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK 24 Security Enhancements<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://seanjmullan.org/blog/2025/04/07/jdk24"><span s=
tyle=3D"color:#467886">https://seanjmullan.org/blog/2025/04/07/jdk24</span>=
</a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">~<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">This concludes the update for now. Should you experience any diff=
iculties while testing your projects with the latest JDK early-access build=
s, just ping me.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">PS: If you no longer wish to receive OpenJDK Quality Outreach upd=
ates, please let me know.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">--David</span><o:=
p></o:p></p>
</div>
</body>
</html>

--_000_SA1PR10MB76996E0205162B5C78F9EA29FC6EASA1PR10MB7699namp_--


--===============0335508882040364396==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============0335508882040364396==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Jython-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jython-dev

--===============0335508882040364396==--