<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<div style="direction: ltr; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
Welcome to the first OpenJDK Quality Outreach update of 2026.</div>
<div id="ms-outlook-mobile-signature">
<p style="margin: 0cm;"><span style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);"><br>
</span></p>
<p style="margin: 0cm;"><span style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">The first Release Candidate builds of JDK 26 are now available[1]. At this stage, only P1 issues will be considered for evaluation. The focus is now
 rapdily shifting to early access testing of JDK 27.</span></p>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
JDK 26 will officially launch at JavaOne[2] in California next month. If you’re attending or considering attending, please let me know, as I am planning an informal Quality Outreach gathering. I also have a very limited number of complimentary passes available
 for active QO project members. If you are interested, please email me to request one.</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
And as usual, don't forget to review the heads-up below.</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[1] https://jdk.java.net/26/</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[2] https://javaone.com/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
# Heads-Up - JDK 26: DecimalFormat Uses the Double.toString(double) Algorithm</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Since JDK 21, `java.text.DecimalFormat::format` and `java.util.Formatter::toString` produce slightly different outcomes on some double values. This rare situation occurs due to the fact that `java.util.Formatter`, together with `Double.toString()`, got its
 algorithm enhanced in JDK 21. A fix was introduced in JDK 26 for the `java.text.DecimalFormat` implementation to use the same algorithm as `java.util.Formatter` and `Double.toString()`, thus producing the same outcome.</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
For more details, please check article[3].</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[3] https://inside.java/2026/02/09/quality-heads-up/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
# Heads-Up - JDK 27: Removal of `ThreadPoolExecutor.finalize()`</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Finalization was unreliable, introduced security risks, and negatively impacted performance. For these reasons, it was deprecated for removal in JDK 18, and both the JDK and the broader Java ecosystem have been gradually reducing and removing its use in favor
 of modern alternatives such as try-with-resources and the Cleaner API. See JEP 421[4] for details. This effort continues in JDK 27 as the removal of `finalize()` progresses.</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
`ThreadPoolExecutor` is a non-final implementation of `ExecutorService` that may serve as a superclass for executor services in frameworks, libraries, and applications. Its `finalize` method was deprecated in JDK 9, re-specified to do nothing (thus left empty)
 in JDK 11, and deprecated for removal as part of JEP 421 in JDK 18. Now, JDK 27 is removing the empty method[5], which can lead to compile errors in existing code.</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
While `Object.finalize()` declares that it `throws Throwable`, `ThreadPoolExecutor.finalize()` does not. This means that calls to `ThreadPoolExecutor.finalize()`, either directly or by an extending class through `super.finalize()`, will now implicitly call
 `Object.finalize()` and these calls may encounter a `Throwable` where they did not before, which is likely to result in a compile-time error.</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Projects encountering this situation are strongly encouraged to remove this (and any other) use of `finalize()`. If absolutely necessary, a workaround would be to enclose the invocation of `finalize()` in a `try` block. Since this ultimately calls `Object.finalize()`,
 which is empty, the `catch` block can likewise be empty.</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
For more details, please check this article[6].</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[4] https://openjdk.org/jeps/421</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[5] https://bugs.openjdk.org/browse/JDK-8371856</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[6] https://inside.java/2026/02/10/quality-heads-up/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
# JDK 27</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
 </div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
The JDK 27 early-access builds 8 are now available[7]. You can review the release notes here[8]. So far, one JEP (JEP 527: Post-Quantum Hybrid Key Exchange for TLS 1.3) has been targeted for this release. </div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
## Changes in recent JDK 27 builds that may be of interest:</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8347938: Add Support for the Latest ML-KEM & ML-DSA Private Key Encodings</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8373018: Update OpenSSL version to 3.5.4</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8210336: DateTimeFormatter predefined formatters should support short TZ offsets</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8369736: Add management interface for AOT cache creation</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8369282: Distrust TLS server certificates anchored by Chunghwa ePKI RootCA</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8355522: Remove the `java.locale.useOldISOCodes` system property</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8373476: (tz) Update Timezone Data to 2025c</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8373710: Improve jpackage error reporting</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8328046: Need to keep leading zeros in TlsPremasterSecret of TLS1.3 DHKeyAgreement<br>
- JDK-8371748: Remove the (empty) ThreadPoolExecutor.finalize() method</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8341272: Factory to create wide iinc instruction with small arguments</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8373867: Improve robustness of Attach API for finding tmp directory</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8373208: Make Atomic class template constant initializable</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8369564: Provide a MemorySegment API to read strings with known lengths</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8373068: Revisit details of Float16 to decimal conversion algorithm</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- JDK-8375063: Update Libpng to 1.6.54</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Note: A more comprehensive list of changes can be found here[9].</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[7] https://jdk.java.net/27/</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[8] https://jdk.java.net/27/release-notes</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[9] https://github.com/openjdk/jdk/compare/jdk-27+1...jdk-27+8</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
# JavaFX 27 Early-Access Builds </div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
These are early-access builds of the JavaFX 27 Runtime, built from openjdk/jfx. They allow JavaFX application developers to build and test their applications with JavaFX 27 on JDK 27. Although these builds are designed to work with JDK 27-ea, they are also
 known to work with JDK 25 and later versions.</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
The latest early-access builds of JavaFX 27 are now available [10], along with the corresponding JavaFX 27 API Javadocs [11].</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[10] https://jdk.java.net/javafx27/</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[11] https://download.java.net/java/early_access/javafx27/docs/api/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
# Topics of Interest</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Optimizing Java Class Metadata in Project Valhalla</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
https://joelsiks.com/posts/valhalla-inlinelayoutinfo-array-optimization/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- LazyConstants in JDK 26</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
https://inside.java/2026/02/05/newscast-106/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Data-Oriented Programming for Java: Beyond Records</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
https://openjdk.org/projects/amber/design-notes/beyond-records</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Carrier Classes; Beyond Records</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
https://inside.java/2026/01/22/newscast-105/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- One Giant Leap: 95% Less Sampling Cost</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
https://norlinder.nu/posts/User-CPU-Time-JVM/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- The Static Dynamic JVM – A Many Layered Dive #JVMLS</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
https://inside.java/2026/01/11/jvmls-static-dynamic-jvm/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Java's Plans for 2026</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
https://inside.java/2026/01/08/newscast-104/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- “Predictability or Innovation? Both!” with Georges Saab</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
https://inside.java/2025/12/26/podcast-043/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Java's 2025 in Review</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
https://inside.java/2025/12/18/newscast-103/</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
~</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I’d like to thank everyone who has already provided feedback on the JDK 26 builds. Your input is incredibly valuable, especially when received early in the development cycle.</div>
<div style="direction: ltr; font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
P.S. I hope to see some of you at JavaOne!</div>
<div style="font-family: Aptos, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
P.P.S. Please let me know if you don't want to receive these OpenJDK Quality Outreach updates anymore.</div>
</div>
</body>
</html>