Java 9's Bug Fix Priorities, Goals Updated

The JDK 9 rampdown process is entering Phase Two, and Mark Reinhold, Chief Architect of Oracle's Java Platform Group, has proposed some goals for this phase that keep the process focused on priority bug fixes.

Reinhold offered the goals in a message to the OpenJDK mailing list. "The overall goal of this process is to ensure that we fix just the bugs that must be fixed in order to ensure a successful release," he wrote, "and that we understand why we're not going to fix some bugs that perhaps ought to be fixed."

Reinhold's priority bug fix list includes:

  • Fix all P1-P2 bugs that are new in JDK 9 and critical to the success of this release
  • Decommit from fixing any P1-P2 bugs that are not new in JDK 9 and are not critical to this release, but were previously targeted to this release;
  • Explicitly defer any P1-P2 bugs that are new in JDK 9 but are either not critical to this release or cannot, for good reason, be fixed in this release

"P3-P5 bugs whose fixes would affect product code must be left to future releases," Reinhold said. "P3-P5 bugs whose fixes only affect tests, documentation, or demos may be fixed until the first GA candidate build, on [June 22]."

Reinhold announced the start of the first phase of the rampdown process in February. Rampdown Phase One was the period during which "we aim to fix the bugs that need to be fixed and understand why we're not going to fix some bugs that perhaps ought to be fixed."

The overall feature set of JDK 9 release is "frozen" at this point in the process, though so-called low-risk enhancements that add "small bits of missing functionality or improve usability" may still be worked into the release. The bar for such adjustments is, at this point, extremely high, Reinhold said.

Reinhold's advice to JDK 9 committers: "Before you spend too much time on a fix for a P1 or P2 bug, seek advice from a Group or Area Lead, on an appropriate mailing list, to make sure that fixing the bug in this release is actually a reasonable idea."

The initial JDK 9 release candidate is scheduled for June 22, and final release candidate is set for July 7. The target date for general availability is July 27.

The final release date for the latest incarnation of the Java SE Platform has been pushed back twice. Reinhold proposed those delays, both times citing the challenges posted by Project Jigsaw. The modularization of the Java SE and the JDK is the biggest change ever for Java. Brian Goetz, Oracle's rockstar Java Language Architect, has said that support for lambdas in Java SE 8 would "change the way we program in Java every day." But JSR 376, the Java Specification Request that aims to define "an approachable yet scalable module system for the Java Platform" will bring a fundamentally new kind of programming component to Java.

This release also includes many other new features, including JShell, a Read-Eval-Print Loop (REPL) for Java that allows developers to evaluate cod snippets (declarations, statements, expressions), so they can test the code as they create it.

Reinhold emphasized that his Phase Two Rampdown bug fix list is a proposal, but time for comment on that list is short. JDK 9 Committers have been invited to offer their two cents by Thursday, March 23. If there are no serious objections, the proposed list will be adopted.

About the Author

John K. Waters is the editor in chief of a number of sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].