On Fri, Dec 10, 2021 at 8:58 AM David Delabassee <david.delabas...@oracle.com> wrote: > > Mark, > > Thank you for being part of the OpenJDK Quality Outreach Program. As > year-end 2021 approaches, I'd like to share some updates on JDK 18, > which is scheduled for General Availability on March 22, 2022. > > JDK 18 has now entered Rampdown Phase One (RDP1) [1], which means that > the main-line has been forked into a dedicated JDK 18 stabilization > repository. At this point, the overall JDK 18 feature set is now frozen > and no additional JEPs will be targeted to JDK 18. Only low-risk > enhancements that add small bits of missing functionality or improve > usability might still be considered. The next few weeks should be > leveraged to try to identify and resolve as many issues as possible > (i.e. before JDK 18 enters the Release Candidates phase). > > And as you can see below, JDK 18 EA Builds 26 & 27 include fixes for > issues that were reported by you! So thank you for your help > contributing to the overall quality of OpenJDK! > > [1] > https://mail.openjdk.java.net/pipermail/jdk-dev/2021-December/006287.html > > > ## JEP 400 - UTF-8 by Default > > All JEPs are now integrated, but we would like to draw your attention to > JEP 400 especially if you are deploying on Windows as it might induce > some incompatible behavior on that platform. > > JEP 400 [2] is changing the default charset to UTF-8. This aligns with > the existing `newBufferedReader`/`Writer` methods of the > `java.nio.file.Files` class where UTF-8 is the default when no explicit > charset is set. By making UTF-8 the default charset, the JDK I/O APIs > will now always work in the same, predictable manner, with no need to > pay attention to the host and or user’s environment! > > Further, we encourage you to test your project(s) with the latest JDK 18 > Early Access builds. We don't expect issues on macOS and Linux as their > default encoding is already UTF-8. On Windows, especially for East Asian > locales such as Chinese/Japanese/Korean, some incompatible behavior > could be anticipated. If that’s the case, please consider a mitigation > strategy [3]. > > [2] https://openjdk.java.net/jeps/400 > [3] https://inside.java/2021/10/04/the-default-charset-jep400/ > > > ## JDK 18 > > JDK 18 Early-Access builds 27 are now available [4], and are provided > under the GNU General Public License v2, with the Classpath Exception. > Make sure to check the Release Notes [5]. As usual, we encourage you to > test your project(s) using those EA builds and provide us feedback. > > [4] https://jdk.java.net/18/ > [5] https://jdk.java.net/18/release-notes > > ### JEPs integrated to JDK 18: > > - JEP 400: UTF-8 by Default > - JEP 408: Simple Web Server > - JEP 413: Code Snippets in Java API Documentation > - JEP 416: Reimplement Core Reflection with Method Handles > - JEP 417: Vector API (Third Incubator) > - JEP 418: Internet-Address Resolution SPI > - JEP 419: Foreign Function & Memory API (Second Incubator)
So this was a significant build for this one. No issues found, now hoping for a smooth transition to java.base (in Java 19 ?). Rémy > - JEP 420: Pattern Matching for switch (Second Preview) > - JEP 421: Deprecate Finalization for Removal > > ### Changes in recent builds that maybe of interest: > > #### Build 27: > > - JDK-8266435: WBMPImageReader.read() should not truncate the input > stream [Reported by PDFBox] > - JDK-8278078: Cannot reference super before supertype constructor has > been called > - JDK-8177819: DateTimeFormatterBuilder zone parsing should recognise DST > - JDK-8277965: Enclosing instance optimization affects serialization > - JDK-8275821: Optimize random number generators developed in > JDK-8248862 using Math.unsignedMultiplyHigh() > - JDK-8225181: KeyStore should have a getAttributes method > - JDK-8275082: Update XML Security for Java to 2.3.0 > - JDK-8278270: ServerSocket is not thread safe > - JDK-8277863: Deprecate sun.misc.Unsafe methods that return offsets > > #### Build 26: > > - JDK-8277451: j.l.r.Field::set on static field with invalid argument > type should throw IAE [Reported by Hibernate & ByteBuddy] > - JDK-8258117: jar tool sets the time stamp of module-info.class entries > to the current time [Reported by Apache Maven] > - JDK-8268743: Require a better way for copying data between > MemorySegments and on-heap arrays [Reported by Apache Lucene] > - JDK-8277986: Typo in javadoc of java.util.zip.ZipEntry#setTime > [Reported by Apache Ant] > - JDK-8277861: Terminally deprecate Thread.stop > - JDK-8276665: ObjectInputStream.GetField.get(name, object) should throw > ClassNotFoundException > - JDK-8271623: Omit enclosing instance fields from inner classes that > don't use it > - JDK-8231107: Allow store password to be null when saving a PKCS12 KeyStore > - JDK-8193682: Infinite loop in ZipOutputStream.close() > - JDK-8277459: Add `jwebserver` tool [see Topics of Interest] > > #### Build 25: > > - JDK-8259643: ZGC can return metaspace OOM prematurely > - JDK-8277212: GC accidentally cleans valid megamorphic vtable inline caches > - JDK-8276970: Default charset for PrintWriter that wraps PrintStream > - JDK-8272773: Configurable card table card size > - JDK-4337793: Mark non-serializable fields of > java.security.cert.Certificate and CertPath > > #### Build 24: > > - JDK-8275056: Allow G1 heap regions up to 512MB [see Topics of Interest] > - JDK-8271515: Integration of JEP 417: Vector API (Third Incubator) > - JDK-8267108: Alternate Subject.getSubject and doAs APIs that do not > depend on Security Manager APIs > - JDK-8244202: Implementation of JEP 418: Internet-Address Resolution SPI > - JDK-8276186: Require getAvailableLocales() methods to include Locale.ROOT > - JDK-8276184: Exclude lambda proxy class from the CDS archive if its > caller class is excluded > > > ## Project Loom Update > > New Loom Early-Access builds are also available [6]. Those EA builds are > based on JDK18 EA build 25 and offer a new structured concurrency API > [7]. These EA builds are provided under the GNU General Public License, > version 2, with the Classpath Exception and are produced for the purpose > of gathering feedback. Use for any other purpose is at your own risk. > Feedback should be send to the `loom-dev` mailing list [8]. > > On that note, you might also want to check this 'On Parallelism and > Concurrency' piece [9]. > > [6] https://jdk.java.net/loom/ > [7] > https://mail.openjdk.java.net/pipermail/loom-dev/2021-November/003072.html > [8] https://mail.openjdk.java.net/mailman/listinfo/loom-dev > [9] https://inside.java/2021/11/30/on-parallelism-and-concurrency/ > > > ## Topics of Interest: > > - JDK 18: Working with the Simple Web Server > https://inside.java/2021/12/06/working-with-the-simple-web-server/ > > - JDK 18: Quality Outreach Heads-up: JEP 411 > https://inside.java/2021/12/06/quality-heads-up/ > > - JDK 18: Quality Outreach Heads-up: JEP 416 > https://inside.java/2021/11/29/quality-heads-up/ > > - JDK 18 will bump heap region size limit to 512MB (Vs. 32Mb today) > https://tschatzl.github.io/2021/11/15/heap-regions-x-large.html > > - JDK 18: JEP 400 and the Default Charset > https://inside.java/2021/10/04/the-default-charset-jep400/ > > - Panama/Foreign Status Update > https://mail.openjdk.java.net/pipermail/panama-dev/2021-December/015895.html > > - GC progress from JDK 8 to JDK 17 > https://kstefanj.github.io/2021/11/24/gc-progress-8-17.html > > - JDK Migration Guide > https://docs.oracle.com/en/java/javase/17/migrate/getting-started.html > > > In closing, I'd like to thank you again for being a welcomed part of the > Quality Outreach program! We look forward to your continued > participation. Please enjoy the holiday season and have a happy new year! > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org