We need to look into this now that scoped variables are present.

Ralph

> On Mar 28, 2023, at 5:46 AM, David Delabassee <david.delabas...@oracle.com> 
> wrote:
> 
> Welcome to the latest OpenJDK Quality Outreach update!
> 
> Last week was busy as we released both Java 20 and JavaFX 20. To celebrate 
> the launch, we hosted a live event focused on Java 20, i.e. Level Up Java 
> Day. All the sessions recordings will be made available shortly on the 
> YouTube Java channel.
> 
> Some recent events shown us that it is useful to conduct tests using the 
> latest early-access OpenJDK builds. This will benefit the OpenJDK codebase 
> but also your own codebase. Sometime, a failure could be due to an actual 
> regression introduced in OpenJDK. In that case, we obviously want to hear 
> about it while we can still address it. But sometime, a failure could also be 
> due to a subtle behaviour change… that works as expected. Regardless of if 
> it's a bug or a test that is now broken due to a behaviour change, we want to 
> hear from you. In the latter case, it might also mean that we should probably 
> communicate more about those changes even if they might seem subtle. On that 
> note, please make sure to check all the 2 Heads-Up below: "Support for 
> Unicode CLDR Version 42" and "New network interface names on Windows".
> 
> So please, let us know if you observe anything using the latest early-access 
> builds of JDK 21.
> 
> 
> ## Heads-Up - JDK 20 - Support for Unicode CLDR Version 42
> 
> The JDK's locale data is based on the Unicode Consortium's Unicode Common 
> Locale Data Repository (CLDR). As mentioned in the December 2022 Quality 
> Outreach newsletter [1], JDK 20 upgraded CLDR [2] to version 42 [3], which 
> was released in October 2022. This version includes a "more sophisticated 
> handling of spaces" [4] that replaces regular spaces with non-breaking spaces 
> (NBSP / `\u00A0`) or narrow non-breaking spaces (NNBSP / `\u202F`):
> - in time formats between `a` and time
> - in unit formats between {0} and unit
> - in Cyrillic date formats before year marker such as `г`
> 
> Other noticeable changes include:
> * " at " is no longer used for standard date/time format ’ [5]
> * fix first day of week info for China (CN) [6]
> * Japanese: Support numbers up to 9999京 [7]
> 
> As a consequence, production and test code that produces or parses 
> locale-dependent strings like formatted dates and times may change behavior 
> in potentially breaking ways (e.g. when a handcrafted datetime string with a 
> regular space is parsed, but the parser now expects an NBSP or NNBSP). Issues 
> can be hard to analyze because expected and actual strings look very similar 
> or even identical in various text representations. To detect and fix these 
> issues, make sure to use a text editor that displays different kinds of 
> spaces differently.
> 
> If the required fixes can't be implemented when upgrading to JDK 20, consider 
> using the JVM argument `-Djava.locale.providers=COMPAT` to use legacy locale 
> data. Note that this limits some locale-related functionality and treat it as 
> a temporary workaround, not a proper solution. Moreover, the `COMPAT` option 
> will be eventually removed in the future.
> 
> It is also important to keep in mind that this kind of locale data evolves 
> regularly so programs parsing/composing the locale data by themselves should 
> be routinely checked with each JDK release.
> 
> [1] 
> https://mail.openjdk.org/pipermail/quality-discuss/2022-December/001100.html
> [2] https://bugs.openjdk.org/browse/JDK-8284840
> [3] https://cldr.unicode.org/index/downloads/cldr-42
> [4] https://unicode-org.atlassian.net/browse/CLDR-14032
> [5] https://unicode-org.atlassian.net/browse/CLDR-14831
> [6] https://unicode-org.atlassian.net/browse/CLDR-11510
> [7] https://unicode-org.atlassian.net/browse/CLDR-15966
> 
> 
> ## Heads-Up - JDK 21 - New network interface names on Windows
> 
> Network Names that the JDK assigns to network interfaces on Windows are 
> changing in JDK 21 [8].
> 
> The JDK historically synthesized names for network interfaces on Windows. 
> This has changed to use the names assigned by the Windows operating system. 
> For example, the JDK may have historically assigned a name such as “eth0” for 
> an ethernet interface and “lo” for the loopback. The equivalent names that 
> Windows assigns may be names such as “ethernet_32768” and “loopback_0".
> 
> This change may impact code that does a lookup of network interfaces with the 
> `NetworkInterace.getByName(String name)` method. It also may also be 
> surprising to code that enumerates all network interfaces with the 
> `NetworkInterfaces.networkInterfaces()` or 
> `NetworkInterface.getNetworkInterfaces()` methods as the names of the network 
> interfaces will look different to previous releases. Depending on 
> configuration, it is possible that enumerating all network interfaces will 
> enumerate network interfaces that weren’t previously enumerated because they 
> didn’t have an Internet Protocol address assigned. The display name returned 
> by `NetworkInterface::getDisplayName` has not changed so this should 
> facilitate the identification of network interfaces when using Windows native 
> tools.
> 
> [8] https://bugs.openjdk.org/browse/JDK-8303898
> 
> 
> ## JDK 20 General Availability
> 
> JDK 20, the reference implementation of Java 20, is now Generally Available 
> [9]. The GA builds 36 are available [10], and are provided under the GNU 
> General Public License v2, with the Classpath Exception. The Release Notes 
> are available here [11] and the javadocs here [12].
> 
> This release includes 7 JEPs, all in various stages of incubation and preview:
> - JEP 429: Scoped Values (Incubator)
> - JEP 432: Record Patterns (2nd Preview)
> - JEP 433: Pattern Matching for switch (4th Preview)
> - JEP 434: Foreign Function & Memory API (2nd Preview)
> - JEP 436: Virtual Threads (2nd Preview)
> - JEP 437: Structured Concurrency (2nd Incubator)
> along with hundreds of smaller enhancements and thousands of bug fixes.
> 
> Thank you to everyone who contributed to this release, including participants 
> in this program who provided feedback on JDK 20.
> 
> [9] https://mail.openjdk.org/pipermail/jdk-dev/2023-March/007517.html
> [10] https://jdk.java.net/20/
> [11] https://jdk.java.net/20/release-notes
> [12] https://docs.oracle.com/en/java/javase/20/docs/api/
> 
> 
> ## JavaFX 20 General Availability
> 
> Open-source builds of JavaFX 20 are now Generally Available [13], under the 
> GNU General Public License, version 2, with the Classpath Exception.
> The JavaFX runtime is delivered as an SDK and as a set of jmods for each 
> platform. You can use the SDK to compile and run JavaFX applications. You can 
> use the jmods with jlink to create a JDK that includes the JavaFX modules, 
> and optionally, your modular application. JavaFX 20 is designed to work with 
> JDK 20, but it is known to work with JDK 17 and later versions.
> 
> The Release Notes are available here [14], JavaFX 20 API javadocs are also 
> available [15].
> 
> [13] https://jdk.java.net/javafx20/
> [14] https://github.com/openjdk/jfx/blob/jfx20/doc-files/release-notes-20.md
> [15] 
> https://download.java.net/java/GA/javafx20/bdc68b4b9cbc4ebcb30745c85038d91d/docs/api/overview-summary.html
> 
> 
> ## JDK 21 Early-Access builds
> 
> The latest early-access, i.e., builds 15 are available [16], and are provided 
> under the GNU General Public License v2, with the Classpath Exception.
> The Release Notes are available here [17].
> 
> [16] https://jdk.java.net/21/
> [17] https://jdk.java.net/21/release-notes
> 
> ### Changes in recent builds that may be of interest:
> 
> JDK 21 build 15
> - JDK-8303018: Unicode Emoji Properties
> - JDK-8298469: Obsolete legacy parallel class loading workaround for 
> non-parallel-capable class loaders
> - JDK-8191565: Last-ditch Full GC should also move humongous objects
> - JDK-8292818: replace 96-bit representation for field metadata with 
> variable-sized streams
> - JDK-8304303: implement VirtualThread class notifyJvmti methods as C2 
> intrinsics
> - JDK-8303648: Add String.indexOf(String str, int beginIndex, int endIndex)
> - JDK-8304139: Add <init> and <clinit> method constants to ConstantDescs
> - JDK-8015831: Add lint check for calling overridable methods from a 
> constructor
> 
> JDK 21 build 14:
> - JDK-8303410: Remove ContentSigner APIs and jarsigner -altsigner and 
> -altsignerpath options
> - JDK-8302659: Modernize Windows native code for NetworkInterface
> - JDK-8298966: Deprecate JMX Subject Delegation and the method 
> JMXConnector.getMBeanServerConnection(Subject) for removal.
> - JDK-8294982: Implementation of Classfile API
> - JDK-8303820: Simplify type metadata
> 
> JDK 21 build 13:
> - JDK-8303413: (fs) Ignore polling interval sensitivity modifiers in 
> PollingWatchService
> - JDK-8303175: (fs) Deprecate com.sun.nio.file.SensitivityWatchEventModifier 
> for removal
> - JDK-8295425: Match the default priv exp length between SunPKCS11 and other 
> JDK providers
> - JDK-8303409: Add Windows AArch64 ABI support to the Foreign Function & 
> Memory API
> - JDK-8302590: Add String.indexOf(int ch, int fromIndex, int toIndex)
> 
> JDK 21 build 12:
> - JDK-8301119: Support for GB18030-2022
> - JDK-8026369: javac potentially ambiguous overload warning needs an improved 
> scheme
> - JDK-8293667: Align jlink's --compress option with jmod's --compress option
> - JDK-8282319: java.util.Locale method to stream available Locales
> 
> JDK 21 build 11:
> - JDK-8302385: Remove MetaspaceReclaimPolicy=none
> - JDK-8300575: JVMTI support when using alternative virtual thread 
> implementation
> - JDK-8301992: Embed SymbolTable CHT node
> - JDK-8301749: Tracking malloc pooled memory size
> 
> JDK 21 build 10:
> - JDK-8301700: Increase the default TLS Diffie-Hellman group size from 
> 1024-bit to 2048-bit
> - JDK-8301260: Add system property to toggle XML Signature secure validation 
> mode
> - JDK-8297632: InputStream.transferTo() method should specify what the return 
> value should be when the number of bytes …
> - JDK-8245654: Add Certigna Root CA
> - JDK-8301819: Enable continuations code by default
> - JDK-8300914: Allow `@` as an escape in documentation comments
> - JDK-8225409: G1: Remove the Hot Card Cache
> 
> 
> ## JavaFX 21 Early-Access Builds
> 
> These are early access builds of the JavaFX 21 Runtime, built from 
> openjdk/jfx [18]. It is intended to allow JavaFX application developers to 
> build and test their applications with JavaFX 21 on JDK 21.
> 
> The latest builds 9 (2023/3/20) are now available [19] and are provided under 
> the GNU General Public License, version 2, with the Classpath Exception.
> Please report feedback on the openjfx-dev mailing list [20].
> 
> [18] https://github.com/openjdk/jfx
> [19] https://jdk.java.net/javafx21/
> [20] http://mail.openjdk.org/mailman/listinfo/openjfx-dev
> 
> 
> ## New Generational ZGC Early-Access Builds
> 
> The latest builds 21-genzgc+5-33 (2023/3/9) are available [21]. These 
> open-source binaries of Generational ZGC [22] are based on an incomplete 
> version of JDK 21 and are provided under the GNU General Public License, 
> version 2, with the Classpath Exception.
> Please send feedback on the zgc-dev mailing list [23].
> 
> [21] https://jdk.java.net/genzgc/
> [22] https://openjdk.org/jeps/439
> [23] http://mail.openjdk.org/mailman/listinfo/zgc-dev
> 
> 
> ## Topics of Interest:
> 
> The Arrival of Java 20!
> https://inside.java/2023/03/21/the-arrival-of-java-20/
> 
> Video: Java First. Java Always. | Level Up Keynote
> https://inside.java/2023/03/22/levelup-keynote/
> 
> Video: Java 20 Unboxing - Inside Java Newscast
> https://inside.java/2023/03/23/newscast-44/
> 
> JDK 20 Security Enhancements
> https://seanjmullan.org/blog/2023/03/22/jdk20
> 
> G1/Parallel/Serial GC improvements in JDK 20
> https://tschatzl.github.io/2023/03/14/jdk20-g1-parallel-gc-changes.html
> 
> Podcast: “Preview Features: A Look Back and A Look Ahead” with Alex Buckley
> https://inside.java/2023/03/21/podcast-030/
> 
> Video: Write performant Java code with the Vector API - JEP Café
> https://inside.java/2023/03/14/jepcafe18/
> 
> Video: Data-Oriented Programming in Java
> https://inside.java/2023/03/09/data-oriented-programming/
> 
> Video: ZGC - Java’s Highly Scalable Low-Latency Garbage Collector
> https://inside.java/2023/03/05/stackwalker-01/
> 
> Video: The Holy Grail of Java Performance - Inside Java Newscast
> https://inside.java/2023/03/02/newscast-43/
> 
> Video: Programmer's Guide to JDK Flight Recorder
> https://inside.java/2023/02/27/programmer-guide-to-jfr/
> 
> Video: Foreign Function & Memory API Live
> https://inside.java/2023/02/16/ffm-api/
> 
> JEP targeted to JDK 21: 430: String Templates (Preview)
> https://openjdk.org/jeps/430
> 
> JEP targeted to JDK 21: 431: Sequenced Collections
> https://openjdk.org/jeps/431
> 
> 
> ~
> 
> Thanks for participating in the OpenJDK Quality Outreach program. And as 
> always, if you find an issue, please let us know through the usual channels.
> 
> --
> David
> 

Reply via email to