General release is closer than it seems

The second release candidate for JDK 12 is here

JAXenter Editorial Team
© Shutterstock / Makstorm (modified)

The general availability is less than a month away and the second release candidate brings just a single bug fix. The stabilization repository, jdk/jdk12, remains open for P1 bug fixes but for now, let’s have a look at the second release candidate.

The Release Candidate Phase for JDK 12 opened earlier this month and we already have the second RC going live.

As we are less than a month away from general availability, this release candidate features only a single bug fix.

Let’s have a look.

  • JDK-8219151: Illegal instruction exception on JDK 12 due to incorrect CPU feature bits

The VNNI optimizations patch inadvertently sets the VPCLMULQDQ cpu feature bit even on platforms where VPCLMULQDQ is not available. When the CRC32 update intrinsics kick in, it then uses the VPCLMULQDQ instruction which results in illegal instruction exception. With this release, the bug has been fixed.

Here is the release schedule for JDK12, if you need to refresh your memory:

2018/12/13          Rampdown Phase One (fork from main line)
2019/01/17          Rampdown Phase Two
2019/02/07         Release-Candidate Phase
2019/03/19         General Availability


Update February 12, 2019

We are almost a month away from the general availability for JDK 12 and that can mean only one thing – we have officially entered the Release Candidate phase!

The stabilization repository, jdk/jdk12, is now open for P1 bug fixes according to the JDK Release Process (JEP 3).

You should keep in mind that all changes require approval via the Fix-Request Process and if you are responsible for any bugs that appear on the RC candidate-bug list, you should have a look at that JEP 3 for guidance on how to handle them.

Here are the bugs we have so far:

  • JDK-8177960: Deprecate the Swing Motif Look and Feel and document it as unsupported on macOS
  • JDK-8218469: JSlider display issue with slider for GTKLookAndFeel
  • JDK-8218472: JProgressBar display issue with GTKLookAndFeel
  • JDK-8218470: JScrollBar display issue with GTKLookAndFeel
  • JDK-8218473: JOptionPane display issue with GTKLookAndFeel
  • JDK-8218479: JTextPane display issue with GTKLookAndFeel



Update January 21, 2019

More than a month ago, JDK 12 entered Rampdown Phase One which basically means that the overall feature set is frozen and no further JEPs will be targeted to this release.

Last week, we entered Rampdown Phase Two. The feature set is still frozen, however, the stabilization repository, jdk/jdk12, is open to select bug fixes and, with approval, late enhancements.

Here are the fixes introduced since Phase One:



Update December 14, 2018

JDK 12 is certain to have 8 features and one that is proposed to get dropped from the JDK. Let’s have a quick look at the features list.

JDK 12 features

JEP proposed to drop from JDK 12

326: Raw String Literals (Preview)  — Review ends: 2018/12/18

Add raw string literals to the Java programming language. A raw string literal can span multiple lines of source code and does not interpret escape sequences, such as \n, or Unicode escapes, of the form \uXXXX. This will be a preview language feature.

JEPs targeted to JDK 12

189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)

Add a new garbage collection (GC) algorithm named Shenandoah which reduces GC pause times by doing evacuation work concurrently with the running Java threads. Pause times with Shenandoah are independent of heap size, meaning you will have the same consistent pause times whether your heap is 200 MB or 200 GB.

230: Microbenchmark Suite

Add a basic suite of microbenchmarks to the JDK source code, and make it easy for developers to run existing microbenchmarks and create new ones.

325: Switch Expressions (Preview)

Extend the switch statement so that it can be used as either a statement or an expression, and that both forms can use either a “traditional” or “simplified” scoping and control flow behavior. These changes will simplify everyday coding, and also prepare the way for the use of pattern matching (JEP 305) in switch. This will be a preview language feature.

334: JVM Constants API

Introduce an API to model nominal descriptions of key class-file and run-time artifacts, in particular constants that are loadable from the constant pool.

340: One AArch64 Port, Not Two

Remove all of the sources related to the arm64 port while retaining the 32-bit ARM port and the 64-bit aarch64 port.

341: Default CDS Archives

Enhance the JDK build process to generate a class data-sharing (CDS) archive, using the default class list, on 64-bit platforms.

344: Abortable Mixed Collections for G1

Make G1 mixed collections abortable if they might exceed the pause target.

346: Promptly Return Unused Committed Memory from G1

Enhance the G1 garbage collector to automatically return Java heap memory to the operating system when idle.

Inline Feedbacks
View all comments