You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by David Delabassee <da...@oracle.com> on 2022/12/13 13:07:21 UTC

Re: [External] : Re: JDK 20 EAb22, ZenGC EA builds, JavaFX 20 EAb5 and several heads-ups!

Thanks Jaikiran!

--David

On 11/12/2022 07:36, Jaikiran Pai wrote:
> Hello David,
>
> We have been a bit slow recently in running the Ant testsuite and 
> responding to the EA releases. I found some time today and triggered a 
> run against the latest JDK 20 EA available at 
> https://urldefense.com/v3/__https://jdk.java.net/20/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOery8aZ-QA$ 
> which is (build 20-ea+27-2213). That has exposed a new failure in the 
> javadoc generation against the Ant project. I've filed 
> https://bugs.openjdk.org/browse/JDK-8298525 with the details.
>
> -Jaikiran
>
> On 07/11/22 1:47 pm, David Delabassee wrote:
>> Greetings,
>>
>> With JavaOne in Las Vegas, last month was epically busy! It was great 
>> to finally have the ability to meet and discuss the Quality Outreach 
>> program with some of you... face-to-face!
>>
>> This installment of the newsletter is packed as we have several 
>> heads-ups, including new Early-Access builds being made available. 
>> The JDK 20 schedule has been proposed [1]. The next major milestone 
>> is Rampdown Phase One which should happen in just a month on December 
>> 8! The next few weeks will be particularly interesting as we will see 
>> which from the candidate JEPs recently announced (see 'Topics of 
>> Interest' section below) will be proposed to target JDK 20 [2]. And 
>> given that JDK 20 is getting closer, we are eagerly waiting for your 
>> test feedback on your projects running with the latest JDK 20 EA builds.
>>
>> [1] https://mail.openjdk.org/pipermail/jdk-dev/2022-October/007108.html
>> [2] https://openjdk.org/projects/jdk/20/
>>
>>
>> ### Heads-up - JDK 20: `java.net.URL` parsing fix & behavior change
>>
>> Before JDK 20, some of the parsing/validation performed by the JDK 
>> built-in `URLStreamHander` implementations were delayed until 
>> `URL::openConnection` or `URLConnection::connect` was called. 
>> Starting JDK 20, some of these parsing/validations are now performed 
>> early, i.e. within URL constructors.
>>
>> An exception caused by a malformed URL that would have been delayed 
>> until the connection was opened or connected may starting JDK 20, 
>> throw a `MalformedURLException` at URL construction time.
>>
>> We suggest testing your project(s) against this change. And for those 
>> who want to rely on the old behavior, a new system property has been 
>> introduced to revert, on the command line, to the previous behavior.
>>
>> For more details, please see JBS-8293590 [3] and the release notes [4].
>>
>> [3] https://bugs.openjdk.org/browse/JDK-8293590
>> [4] https://bugs.openjdk.org/browse/JDK-8295750
>>
>>
>> ### Heads-up - JDK 20: Thread.stop(), Thread.suspend() and 
>> Thread.resume() degradation
>>
>> The ability to stop, suspend, or resume a thread with the 
>> corresponding Thread.stop(), Thread.suspend() or Thread.resume() 
>> methods have been removed in JDK 20. Those methods have been degraded 
>> to throw a UOE exception (UnsupportedOperationException).
>>
>> Using those methods was inherently unsafe. That is also why they were 
>> deprecated since JDK 1.2 (1998!) and were flagged 'forRemoval' in 
>> previous features release.
>>
>> We do not expect this behavior change to cause any issues on 
>> well-maintained codebase.
>>
>> For more details please check JDK-8289610 [5], JDK-8249627 [6], and 
>> the Java Thread Primitive Deprecation FAQ [7].
>>
>> [5] https://bugs.openjdk.org/browse/JDK-8289610
>> [6] https://bugs.openjdk.org/browse/JDK-8249627
>> [7] 
>> https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/lang/doc-files/threadPrimitiveDeprecation.html
>>
>>
>> ### Heads-up - JDK 20: Deprecate and disable the legacy parallel 
>> class loading workaround for non-parallel-capable class loaders.
>>
>> Prior to JDK 7, custom class loaders using non-hierarchical class 
>> delegation model were prone to deadlock. A workaround was added in 
>> the HotSpot VM (JDK 6) to allow parallel class loading for 
>> non-parallel-capable class loaders to avoid deadlocks.
>>
>> Parallel-capable class loaders were introduced in Java SE 7 [8] to 
>> support parallel class loading to implement a deadlock-free class 
>> loader using a non-hierarchical class delegation model. [8] and [9] 
>> describe how to migrate those class loaders depending on this 
>> workaround to be multi-threaded parallel-capable class loaders.
>>
>> This workaround was intended to allow those developers to migrate to 
>> the new mechanism. JDK 7 was released 11 years ago so it is now 
>> expected that those deadlock-prone custom class loaders have been 
>> migrated to the parallel-capable class loaders. As a consequence, 
>> this workaround is removed in JDK 20 as it impedes eliminating the 
>> object monitors from pinning for virtual threads.
>>
>> We suggest confirming that your codebase is not relying on this 
>> legacy workaround. If it still is, you should migrate away from it 
>> ASAP. Please note that the legacy behavior can be temporary 
>> re-enabled using a special flag. For additional details, please check 
>> [10] and [11].
>>
>> [8] 
>> https://docs.oracle.com/javase/7/docs/technotes/guides/lang/cl-mt.html
>> [9] https://openjdk.org/groups/core-libs/ClassLoaderProposal.html
>> [10] https://bugs.openjdk.org/browse/JDK-8295848
>> [11] https://bugs.openjdk.org/browse/JDK-8296446
>>
>>
>> ### Heads-up - JavaFX builds
>>
>> Oracle is now publishing JavaFX builds, starting with early access 
>> builds of JavaFX 20, at jdk.java.net/javafx20 [12]. Developers are 
>> now able to download JavaFX and JDK builds from the same place, and 
>> use jlink to create a custom JDK that includes the JavaFX modules.
>>
>> The latest JavaFX 20 EA builds (b5-2022/10/28) are now available [12] 
>> along with the related javadoc [13]. These early-access builds are 
>> provided under the GNU General Public License, version 2, with the 
>> Classpath Exception. Feedback should be reported to the openjfx-dev 
>> [14] mailing list.
>>
>> To learn more, stay tuned for an upcoming Inside Java Podcast episode 
>> that will cover this in detail.
>>
>> [12] 
>> https://urldefense.com/v3/__https://jdk.java.net/javafx20/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOerHUW9v8w$ 
>> [13] 
>> https://urldefense.com/v3/__https://download.java.net/java/early_access/javafx20/docs/api/index.html__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOerW6PPwgY$ 
>> [14] https://mail.openjdk.org/pipermail/openjfx-dev
>>
>>
>> ### Heads-up - Generational ZGC Early-Access builds
>>
>> The first Early Access builds of Generational ZGC have been published 
>> at jdk.java.net/genzgc [15] and are also available via the 
>> oracle-actions/setup-java GitHub action [16].
>>
>> ZGC is a low latency, i.e. sub-milliseconds, Garbage Collector. This 
>> effort aims to introduce support for generations in ZGC. For more 
>> information, you can check the draft JEP [17] and listen to this 
>> recent Inside Java Podcast episode [18].
>>
>> We encourage you to try out GenZGC and provide feedback on the 
>> zgc-dev [19] mailing list.
>>
>> [15] 
>> https://urldefense.com/v3/__https://jdk.java.net/genzgc/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOeru7VIRV4$ 
>> [16] 
>> https://urldefense.com/v3/__https://github.com/oracle-actions/setup-java__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOerJwnVuUM$ 
>> [17] https://bugs.openjdk.org/browse/JDK-8272979
>> [18] 
>> https://urldefense.com/v3/__https://inside.java/2022/06/29/podcast-024/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOerdrw5oWo$ 
>> [19] https://mail.openjdk.org/pipermail/zgc-dev
>>
>>
>> ## Heads-up - New Project Loom Early-Access Builds
>>
>> The latest Loom EA builds (20-loom+20-34) are now available [20]. 
>> These EA builds are provided under the GNU General Public License, 
>> version 2, with the Classpath Exception. These EA builds include a 
>> snapshot of the ScopedValue API, being developed in JEP 429 [21]. 
>> Feedback can be sent to the loom-dev@openjdk.org mailing list [22].
>>
>> [20] 
>> https://urldefense.com/v3/__https://jdk.java.net/loom/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOerccThFrg$ 
>> [21] https://openjdk.org/jeps/429
>> [22] https://mail.openjdk.org/pipermail/loom-dev
>>
>>
>> ## JDK 20 Early-Access Builds
>>
>> JDK 20 Early-Access builds 22 are now available [23], and are 
>> provided under the GNU General Public License v2, with the Classpath 
>> Exception. The Release Notes are available here [24].
>>
>> [23] 
>> https://urldefense.com/v3/__https://jdk.java.net/20/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOery8aZ-QA$ 
>> [24] 
>> https://urldefense.com/v3/__https://jdk.java.net/20/release-notes__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOerrOBTKkc$ 
>>
>> ### Changes in recent builds that may be of interest:
>>
>> #### Build 22:
>> - JDK-8057113: (fs) Path should have a method to obtain the filename 
>> extension
>> - JDK-8256660: Disable DTLS 1.0 by default
>> - JDK-8291336: Add ideal rule to convert floating point multiply by 2 
>> into addition
>>
>> #### Build 21:
>> - JDK-8137022: Concurrent refinement thread adjustment and 
>> (de-)activation suboptimal
>> - JDK-8134303: Introduce -XX:-G1UseConcRefinement
>> - JDK-8295657: SA: Allow larger object alignments
>>
>> #### Build 20:
>> - JDK-8293590: Some syntax checks performed by URL.openConnection() 
>> could be performed earlier, at URL construction
>> - JDK-8290368: Introduce LDAP and RMI protocol-specific object 
>> factory filters to JNDI implementation
>> - JDK-6924219: (fc spec) FileChannel.write(ByteBuffer, position) 
>> behavior when file opened for append not specified
>> - JDK-8292177: InitialSecurityProperty JFR event
>> - JDK-8295173: (tz) Update Timezone Data to 2022e
>> - JDK-8292698: Improve performance of DataInputStream
>>
>> #### Build 19:
>> - JDK-8294821: Class load improvement for AES crypto engine
>> - JDK-8295013: OopStorage should derive from CHeapObjBase
>> - JDK-8283699: Improve the peephole mechanism of hotspot
>> - JDK-8289552: Make intrinsic conversions between bit representations 
>> of half precision values and floats
>> - JDK-8290036: Define and specify Runtime shutdown sequence
>>
>> #### Build 18:
>> - JDK-8294609: C2: Improve inlining of methods with unloaded 
>> signature classes
>> - JDK-8279283: BufferedInputStream should override transferTo
>> - JDK-8294626: Improve URL protocol lower casing
>>
>> #### Build 17:
>> - JDK-8289610: Thread.Stop changed to throw 
>> UnsupportedOperationException
>> - JDK-8249627: Thread.suspend/resume changed to throw 
>> UnsupportedOperationException
>> - JDK-8254711: Add java.security.Provider.getService JFR Event
>> - JDK-8294062: Improve parsing performance of j.l.c.MethodTypeDesc
>> - JDK-8255670: Improve C2's detection of modified nodes
>> - JDK-8292296: Use multiple threads to process ParallelGC deferred 
>> updates
>>
>>
>> ## Topics of Interest:
>>
>> - New candidate JEP: 431: Sequenced Collections
>> https://openjdk.org/jeps/431
>>
>> - New candidate JEP: 432: Record Patterns (2nd Preview)
>> https://openjdk.org/jeps/432
>>
>> - New candidate JEP: 433: Pattern Matching for switch (4th Preview)
>> https://openjdk.org/jeps/433
>>
>> - New candidate JEP: 434: Foreign Function & Memory API (2nd Preview)
>> https://openjdk.org/jeps/434
>>
>> - New candidate JEP: 435: Asynchronous Stack Trace VM API
>> https://openjdk.org/jeps/435
>>
>> - Selectively Shifting and Constraining Computation
>> https://openjdk.org/projects/leyden/notes/02-shift-and-constrain
>>
>> - The Age of Virtual Threads
>> https://urldefense.com/v3/__https://inside.java/2022/10/13/the-age-of-virtual-threads/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOerXLWHzBI$ 
>>
>> - Dissecting Memory Sessions
>> https://urldefense.com/v3/__https://inside.java/2022/11/04/unifying-memory-addresses-and-memory-segments/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOerDf5CJJU$ 
>>
>>
>> - GraalVM in OpenJDK and More JavaOne Announcements - Inside Java 
>> Newscast #36
>> https://urldefense.com/v3/__https://inside.java/2022/11/03/newscast-036/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOery_v5Ej8$ 
>>
>> - Inside Java | JavaOne 2022 Technical Keynote
>> https://urldefense.com/v3/__https://inside.java/2022/10/24/inside-java-technical-keynote/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOerNx_482M$ 
>>
>> - Virtual Threads: New Foundations for High-Scale Java Applications
>> https://urldefense.com/v3/__https://www.infoq.com/articles/java-virtual-threads/__;!!ACWV5N9M2RV99hQ!MwKgX2_Q0eX2thpLw1JMsqTcvx1iOj5NNJPHfaxIq50W-FEwQHCxtZOQsCjLWdAE497i3-UIQtHUDOer1EyKTco$ 
>>
>>
>> ## October 2022 Critical Patch Update Released
>>
>> As part of the October 2022 CPU, we released JDK 19.0.1, JDK 17.0.5 
>> LTS, JDK 11.0.17 LTS and JDK 8u351 as well as OpenJDK 19.0.1.
>>
>>
>>
>> That's it for this time. As usual, let us know if you find any issues 
>> while testing your project(s) on the latest JDK early-access builds. 
>> Thanks for your support!
>>
>> --David
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
>> For additional commands, e-mail: dev-help@ant.apache.org
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org