JSR 337 Maintenance Release 2: Java SE 8
Change Summary
Iris Clark
2019/1/31

This document describes additional changes to the specification of JSR 337 which is defined by the Final Release in March 2014 and Maintenance Release 1 in March 2015. When specification text is provided, insertions are shown on a light green background and deletions are shown struck through on a light red background.

Send comments to java-se-mr-spec-comments@openjdk.java.net.

Contents
1Version Identification
2Japanese Eras
3Unicode Characters
4Cryptographic Algorithm Names
1
Version Identification  

There is no change to the values returned by the system properties java.specification.version and java.vm.specification.version. They continue to report "1.8". If an application needs to identify the release, the system property java.version may be used.

2
Japanese Eras  

Eras in the Japanese imperial calendar are tied to the reign of the emperor. On 1 May 2019, a new era will be introduced with the ascension of the new emperor. The specification of java.time.chrono.JapaneseEra was modified so that the singleton instances of JapaneseEra returned by values() (representing all the eras supported by the Java SE Platform) do not necessarily correspond to the static fields declared in JapaneseEra for convenience.

The enhancements associated with this change are 8215926.

3
Unicode Characters  

In the Java SE Platform, support for the Unicode Standard is vested mainly in the java.lang.Character class. The specification of Character was modified to permit use of the "Currency Symbols" block (U+20A0 - U+20CF) from Unicode 10.0. The block had evolved materially since Unicode 6.2 (the version supported by the Final Release and Maintenance Release 1 of Java SE 8), to include currencies such as the Russian Ruble and Bitcoin.

In addition, the specification of Character was modified to permit use of the new Japanese Era code point, U+32FF, from the first version of the Unicode Standard after 6.2 that assigns the code point. An exception was made for the methods of Character that determine valid identifiers in the Java programming language; those methods were required to support Unicode 6.2 exactly, to maintain source compatibility of identifiers in Java programs.

Additionally, minor corrections were made to the following method descriptions:

The enhancement associated with this change is 8216396.

4
Cryptographic Algorithm Names  

As industry-wide cryptographic standards evolve, the set of algorithms and protocols supported by the security APIs needs to change. The Java Security Standard Algorithm Names specification defines the set of String names referencing these standards (e.g. "SHA-256", "TLSv1.3"). The specification was modified to explicitly allow the addition of names for algorithms/protocols defined in later releases. The following text describes revisions to the beginning of the "Standard Names" section.

The JDK Java SE Security API requires and uses a set of standard names for algorithms, certificate and keystore types. This specification establishes the following names as standard names.

Note that an SE implementation may support additional algorithms that are not defined in this specification. As a best practice, if an algorithm is defined in a subsequent version of this specification and an implementation of an earlier specification supports that algorithm, the implementation should use the standard name of the algorithm that is defined in the subsequent specification. Each SE implementation should also document the algorithms that it supports or adds support for in subsequent update releases. The algorithms may be documented in release notes or in a separate document such as the JDK Security Providers document.

In some cases naming conventions are given for forming names that are not explicitly listed, to facilitate name consistency across provider implementations. Items in angle brackets (such as <digest> and <encryption>) are placeholders to be replaced by a specific message digest, encryption algorithm, or other name.

Note: Standard names are not case-sensitive.

The enhancements associated with this change are 8215320 and 8216071.