Skip to main content

Recent JEP Updates: Fence Intrinsics, DocLint, Retire 3 GC Combinations, Nashorn

Posted by editor on January 20, 2013 at 2:51 PM PST

JDK Enhancement Proposals (JEPs) are a public record of proposals for updating and enhancing the OpenJDK. JEP 1, the JDK Enhancement-Proposal and Roadmap Process, created in 2011, describes the "process for collecting, reviewing, sorting, and recording the results of proposals for enhancements to the JDK and for related efforts, such as process and infrastructure improvements." If you're interested in tracking what's happening with respect to JDK enhancement via a compact, formal set of documents, following JEPs as they're updated is a good way to do it.

The four latest JEPs (171-174), all created in November, provide an interesting look at some of the thinking that's going into OpenJDK planning and development right now.

JEP 171: Fence Intrinsics

JEP 171: Fence Intrinsics was created by Doug Lea. This JEP proposes to "Add three memory-ordering intrinsics to the sun.misc.Unsafe class." So, what's this really about? If you read further into JEP 171, you find that this enhancement is largely related to the evolution of memory and hardware, both recent innovations and the cumulative changes that have taken place since Java was created a couple decades ago. Specifically, the JEP will address the problem that "JVMs don't have advertised mechanisms providing memory orderings that were not envisioned originally or in the JSR 133 memory model specs." Just for reference, JSR 133 was finalized in 2004. Indeed, a lot has changed since then.

JEP 172: DocLint

JEP 172: DocLint was authored by Jonathan Gibbons. Its purpose is to "Provide a means to detect errors in Javadoc comments early in the development cycle and in a way that is easily linked back to the source code." Essentially, intelligence will be added to the javadoc tool to detect some of the more common errors in Javadoc comments entered by developers (for example, bad syntax, bad HTML, bad references). The result will be improved Javadoc documentation, and reduced propagation of erroneous documentation forward into new releases.

JEP 173: Retire Some Rarely-Used GC Combinations

JEP 173: Retire Some Rarely-Used GC Combinations, authored by Bengt Rutisson, seeks to "Remove three rarely-used combinations of garbage collectors in order to reduce ongoing development, maintenance, and testing costs." Specifically, garbage collection combinations DefNew + CMS, ParNew + SerialOld, and Incremental CMS will be removed, because they "add extra complexity to the GC code base and consume valuable testing resources while adding very little value to the users."

JEP 174: Nashorn JavaScript Engine

JEP 174: Nashorn JavaScript Engine, created by Jim Laskey, is one of the most talked about OpenJDK enhancements in recent months. The objective is to "Design and implement a new lightweight, high-performance implementation of JavaScript, and integrate it into the JDK." Nashorn is a significant enhancement to the JDK. The motivation behind Nashorn is:

The performance of Rhino has fallen far behind that of other JavaScript engines. In order to improve performance, at this point Rhino would have to be rewritten to replace its interpreter with a code generator designed to fully utilize the JVM. Rather than undertake a major rewrite of the very old Rhino code, we have chosen instead to start from scratch.

Significant Nashorn features will include:

  • based on the ECMAScript-262 Edition 5.1 language specification
  • javax.script (JSR 223) API support
  • support for invoking Java code from JavaScript and for Java to invoke JavaScript code, including direct mapping to JavaBeans
  • a new command-line tool, jjs, for evaluating JavaScript code

jep-changes email list

If you'd like to know when a new JEP is created, or when a JEP is updated, subscribe to the jep-changes OpenJDK email list. Weblogs

Since my last blog post, there have been several new blogs:


Our latest article from Manning Publications is Operator Overloading by Chris Buckett, author of the Manning book Dart in Action.


Our current poll asks you to respond to the prompt, In 2013, my own work will be most affected by new developments related to... Voting will be open until Friday, January 25.


Here are our latest Spotlights.

  • Tori Wieldt - Oracle User Group Leaders' Summit:

    Several Java User Group (JUG) leaders participated in the Oracle User Group Leaders' Summit this week at Oracle HQ. The International Oracle User Group Community (IOUC) is a community of leaders representing Oracle users groups worldwide. Members include leaders from over 900 Oracle user groups, and leaders from communities focused on Java, MySQL and Solaris...

  • GNU/Andrew - Security and Browser Plugins:

    I don’t like to go into too much detail about security updates, but I think it’s necessary to point out a few facts about the one we released yesterday, given some of the inaccuracies I’ve seen been spread on Twitter and elsewhere. Patches were belatedly approved for OpenJDK 7u. OpenJDK 6 is not affected...

  • Roger Brinkley - Java Spotlight Episode 116: Dr. Heinz Kabutz on Java concurrency @heinzkabutz:

    Interview with Dr. Heinz Kabutz, Java Champion, on Java concurrency. Heinz is a Java programmer living on the beaches of the Island of Crete, where he publishes his entertaining "Java Specialists' Newsletter", read by about 70000 Java experts in at least 130 countries. Warning: for advanced Java programmers and those with a sense of humor...

  • Oracle Security Alert for CVE-2013-0422:

    This Security Alert addresses security issues CVE-2013-0422 (US-CERT Alert TA13-010A - Oracle Java 7 Security Manager Bypass Vulnerability) and another vulnerability affecting Java running in web browsers. These vulnerabilities are not applicable to Java running on servers, standalone Java desktop applications or embedded Java applications. They also do not affect Oracle server-based software...

  • Markus Eisele - Selecting Your Java EE 6 Application Server:

    The number one question I get asked is: "Which Java EE Application server should we use?". With the growing adoption of Java EE 6, new compatible application servers get certified. The current official compatibility and certification matrix lists 12 different products certified for the Full Profile, the Web Profile or both. Here is what I do to narrow the solution space down...

Java News

Here are the stories we've recently featured in our Java News section:

Subscriptions and Archives: You can subscribe to this blog using the Editor's Blog Feed. You can also subscribe to the Java Today RSS feed and the blogs feed.

-- Kevin Farnham (@kevin_farnham)

Related Topics >>