<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="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:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"Apple Color Emoji";
panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ligatures:standardcontextual;
mso-fareast-language:EN-US;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
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="en-BE" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<div>
<p class="MsoNormal"><span style="mso-ligatures:none">Welcome to the OpenJDK Quality Outreach
</span><span lang="EN-US" style="mso-ligatures:none">summer </span><span style="mso-ligatures:none">update.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">JDK 21 is now in Rampdown Phase Two [1], its overall feature has been frozen a few weeks ago. Per the JDK Release Process [2] we have now turned our focus to P1 and P2 bugs, which can be fixed with approval
[3]. Late enhancements are still possible, with approval, but the bar is now extraordinarily high [4]. That also means that the JDK 21 Initial Release Candidates are fast approaching, i.e., August 10 [5]. So, and in addition to testing your projects with the
latest JDK 21 early-access builds, it is now also a good time to start testing with the JDK 22 early-access builds.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[1] https://mail.openjdk.org/pipermail/jdk-dev/2023-July/008034.html<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[2] https://openjdk.org/jeps/3<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[3] https://openjdk.org/jeps/3#Fix-Request-Process<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[4] https://openjdk.org/jeps/3#Late-Enhancement-Request-Process<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[5] https://openjdk.org/projects/jdk/21/<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">## Heads-up - JDK 21 & JDK 22: Note if implicit annotation processing is being used<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">Annotation processing by javac is enabled by default, including when no annotation processing configuration options are present. We are considering disabling implicit annotation processing by default in
a future release, possibly as early as JDK 22 [6]. To alert javac users of this possibility, as of JDK 21 b29 and JDK 22 b04, javac prints a note if implicit annotation processing is being used [7]. The reported note is:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"> Annotation processing is enabled because one or more processors were<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"> found on the class path. A future release of javac may disable
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"> annotation processing unless at least one processor is specified by<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"> name (-processor), or a search path is specified (--processor-path,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"> --processor-module-path), or annotation processing is enabled
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"> explicitly (-proc:only, -proc:full).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"> Use -Xlint:-options to suppress this message.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"> Use -proc:none to disable annotation processing.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">Good build hygiene includes explicitly configuring annotation processing. To ease the transition to a different default policy in the future, the new-in-JDK-21 `-proc:full` javac option requests the current
default behavior of looking for annotation processors on the class path.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[6] https://bugs.openjdk.org/browse/JDK-8306819<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[7] https://bugs.openjdk.org/browse/JDK-8310061<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">## Heads-up - JDK 22: JLine is now the Default Console Provider<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">In JDK 22, `System.console()` has been changed [8] to return a `Console` with enhanced editing features that improve the experience of programs that use the `Console` API. In addition, `System.console()`
now returns a `Console` object when the standard streams are redirected or connected to a virtual terminal. Prior to JDK 22, `System.console()` instead returned `null` for these cases. This change may impact code that checks the return from `System.console()`
to test if the JVM is connected to a terminal. If required, the `-Djdk.console=java.base` flag will restore the old behavior where the console is only returned when it is connected to a terminal. Starting JDK 22, one could also use the new `Console.isTerminal()`
method to test if the console is connected to a terminal.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[8] https://bugs.openjdk.org/browse/JDK-8308591<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">## JDK 21 Early-Access Builds<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">The JDK 21 early-access builds 33 are available [9], and are provided under the GNU General Public License v2, with the Classpath Exception. The Release Notes are available here [10] and the Javadoc here
[11].<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[9] https://jdk.java.net/21/<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[10] https://jdk.java.net/21/release-notes<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[11] https://download.java.net/java/early_access/jdk21/docs/api/<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">## JDK 22 Early-Access Builds<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">The JDK 22 early-access builds 8 are available [12], and are provided under the GNU General Public License v2, with the Classpath Exception. The Release Notes are available here [13].<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[12] https://openjdk.org/projects/jdk/22<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[13] https://jdk.java.net/22/release-notes<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">### Changes in recent JDK 22 builds (b2-b8) that may be of interest:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">Note that this is only a curated list of changes, make sure to check [14] for additional changes.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8309882: LinkedHashMap adds an errant serializable field [Reported by Eclipse Collections]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8312366: [arm32] Build crashes after JDK-8310233 [Reported by JaCoCo]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8167252: Some of Charset.availableCharsets() does not contain itself [Reported by IntelliJ]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8310061: Note if implicit annotation processing is being used<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8308591: JLine as the default Console provider<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8312019: Simplify and modernize java.util.BitSet.equals<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8308593: Add KEEPALIVE Extended Socket Options Support for Windows<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8227229: Deprecate the launcher -Xdebug/-debug flags that have not done anything since Java 6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-6983726: Reimplement MethodHandleProxies.asInterfaceInstance<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8281658: Add a security category to the java -XshowSettings option<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8310201: Reduce verbose locale output in -XshowSettings launcher option<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8295894: Remove SECOM certificate that is expiring in September 2023<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8027711: Unify wildcarding syntax for CompileCommand and CompileOnly<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8282797: CompileCommand parsing errors should exit VM<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8305104: Remove the old core reflection implementation<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8310460: Remove jdeps -profile option<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8309032: jpackage does not work for module projects unless --module-path is specified<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8291065: Creating a VarHandle for a static field triggers class initialization<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8312072: Deprecate for removal the -Xnoagent option<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8304885: Reuse stale data to improve DNS resolver resiliency=<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8310047: Add UTF-32 based Charsets into StandardCharsets<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8302483: Enhance ZIP performance<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8300596: New System Property to Control the Maximum Size of Signature Files<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8294323: ASLR Support for CDS Archive<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8311038: Incorrect exhaustivity computation<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8312089: Simplify and modernize equals, hashCode, and compareTo in java.nio…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8311188: Simplify and modernize equals and hashCode in java.text<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8300285: Enhance TLS data handling<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">- JDK-8302475: Enhance HTTP client file downloading<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[14] https://github.com/openjdk/jdk/compare/jdk-22%2B1...jdk-22%2B8<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">## JavaFX Early-Access Builds<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">These are early access builds of the JavaFX 21 Runtime, built from openjdk/jfx [15]. They enable JavaFX application developers to build and test their applications with JavaFX 21 on JDK 21.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">The latest JavaFX 21 early-access builds (build 27 - 2023/7/21) are now available [16] with their related Javadoc [17]. Moreover, the initial JavaFX 22 early-access builds [18] are now also available. These
early-access builds are provided under the GNU General Public License, version 2, with the Classpath Exception. Please send feedback to the openjfx-dev mailing list [19].<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[15] https://github.com/openjdk/jfx<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[16] https://jdk.java.net/javafx21/<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[17] https://download.java.net/java/early_access/javafx21/docs/api/overview-summary.html<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[18] https://jdk.java.net/javafx22/<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">[19] http://mail.openjdk.org/mailman/listinfo/openjfx-dev<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">## Topics of Interest:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">Foreign Function & Memory API Summer Update<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">https://mail.openjdk.org/pipermail/panama-dev/2023-July/019510.html<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">What's Arriving for JFR in JDK 21 - Inside Java Newscast #53<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">https://inside.java/2023/07/20/java-21-jfr/<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">Java's Startup Booster: CDS - Stack Walker<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">https://inside.java/2023/07/11/javas-startup-booster-cds/<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">## July 2023 Critical Patch Update Released<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">As part of the July 2023 CPU, Oracle released OpenJDK 20.0.2, JavaFX 20.0.2, JDK 20.0.2, JDK 17.0.8 LTS, JDK 11.0.20 LTS, JDK 8u381, as well as JDK 8u381-perf.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">~<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">We still have a few days before JDK 21 enters into the Release Candidate phase so please make sure to test your projects on the latest early-access builds and report any issue.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none">PS: Make sure to enjoy the summer and recharge your batteries!
</span><span style="font-family:"Apple Color Emoji";mso-ligatures:none">😎</span><span style="mso-ligatures:none"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span style="mso-ligatures:none">--David </span><o:p></o:p></p>
</div>
</body>
</html>