You are here

JDK 11: First and last Release Candidate?

Gabriela Motroc
JDK 11
© Shutterstock / imassimo82

One more milestone has been achieved: JDK 11 has entered the Release Candidate phase. The stabilization repository, jdk/jdk11, is open for P1 bug fixes per the JDK Release Process. JDK 11 is on track for a general release in September.

The schedule for JDK 11 is running its predetermined course

The Release Candidate phase is going smoothly but the good news is that it might not be a “phase” at all.

As Mark Reinhold, the Chief Architect of the Java Platform Group at Oracle mentioned in a recent message announcing that there are no unresolved P1 bugs in build 28, “that is our first JDK 11 Release Candidate – and if we’re lucky, our last!”


Update August 20, 2018

We’re one step closer to the finish line! JDK 11 is now in the Release Candidate phase.

The stabilization repository, jdk/jdk11, is open for P1 bug fixes per the JDK Release Process.


Update: July 30, 2018

JDK 11 entered Rampdown Phase One one month ago so now it’s time for the second phase. As of June 28, the overall feature set is frozen. No further JEPs will be targeted to this release.

The stabilization repository, jdk/jdk11, is open for P1–P2 bug fixes and, with approval, late enhancements per the JDK Release Process (JEP 3).

Let’s have a quick look at the milestones that need to be reached before the JDK 11 release. 

  • Rampdown — Phases in which increasing levels of scrutiny are applied to incoming changes. In phase 1, only P1-P3 bugs can be fixed. In phase 2 only showstopper bugs can be fixed.

  • API/Interface Freeze — After this point APIs and other interfaces, including those defined in component JSRs, can be changed only in order to fix showstopper bugs.

  • Zero Bug Bounce (ZBB) — The bug backlog is completely addressed. No open bug with a fix targeted to the release is older than 24 hours, and other bugs have been deferred to a future release.

  • Final Release Candidate — The date by which the final release candidate must be declared and submitted for testing. One or more release candidates will be declared after the planned ZBB date; if another is necessary after this milestone then the GA date will be at risk.

  • General Availability — Final release, ready for production use.

JDK 11 features

181: Nest-Based Access Control

Introduce nests, an access-control context that aligns with the existing notion of nested types in the Java programming language. Nests allow classes that are logically part of the same code entity, but which are compiled to distinct class files, to access each other’s private members without the need for compilers to insert accessibility-broadening bridge methods.

309: Dynamic Class-File Constants

Extend the Java class-file format to support a new constant-pool form, CONSTANT_Dynamic. Loading a CONSTANT_Dynamic will delegate creation to a bootstrap method, just as linking an invoke dynamic call site delegates linkage to a bootstrap method.

315: Improve Aarch64 Intrinsics

Improve the existing string and array intrinsics, and implement new intrinsics for the java.lang.Math sin, cos and log functions, on AArch64 processors.

318: Epsilon: A No-Op Garbage Collector

Develop a GC that handles memory allocation but does not implement any actual memory reclamation mechanism. Once the available Java heap is exhausted, the JVM will shut down.

320: Remove the Java EE and CORBA Modules

Remove the Java EE and CORBA modules from the Java SE Platform and the JDK. These modules were deprecated in Java SE 9 with the declared intent to remove them in a future release.

321: HTTP Client (Standard)

Standardize the incubated HTTP Client API introduced in JDK 9, via JEP 110, and updated in JDK 10.

323: Local-Variable Syntax for Lambda Parameters

Allow var to be used when declaring the formal parameters of implicitly typed lambda expressions.

324: Key Agreement with Curve25519 and Curve448

Implement key agreement using Curve25519 and Curve448 as described in RFC 7748.

327: Unicode 10

Upgrade existing platform APIs to support version 10.0 of the Unicode Standard.

328: Flight Recorder

Provide a low-overhead data collection framework for troubleshooting Java applications and the HotSpot JVM.

329: ChaCha20 and Poly1305 Cryptographic Algorithms

Implement the ChaCha20 and ChaCha20-Poly1305 ciphers as specified in RFC 7539. ChaCha20 is a relatively new stream cipher that can replace the older, insecure RC4 stream cipher.

330: Launch Single-File Source-Code Programs

Enhance the java launcher to run a program supplied as a single file of Java source code, including usage from within a script by means of “shebang” files and related techniques.

331: Low-Overhead Heap Profiling

Provide a low-overhead way of sampling Java heap allocations, accessible via JVMTI.

332: Transport Layer Security (TLS) 1.3

Implement version 1.3 of the Transport Layer Security (TLS) Protocol.

333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)

The Z Garbage Collector, also known as ZGC, is a scalable low-latency garbage collector.

335: Deprecate the Nashorn JavaScript Engine

Deprecate the Nashorn JavaScript script engine and APIs, and the jjs tool, with the intent to remove them in a future release.

336: Deprecate the Pack200 Tools and API

Deprecate the pack200 and unpack200 tools, and the Pack200 API in java.util.jar.

Gabriela Motroc
Gabriela Motroc was editor of and JAX Magazine. Before working at Software & Support Media Group, she studied International Communication Management at the Hague University of Applied Sciences.

Inline Feedbacks
View all comments