Skip to content

Latest commit

 

History

History

12

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

What's New in JDK 12 - New Features and Enhancements

core-libs/java.lang

Support for Unicode 11

POSIX_SPAWN Option on Linux

core-libs/java.lang.invoke

JEP 334 JVM Constants API

core-libs/java.text

Support for Compact Number Formatting. i.e.:

NumberFormat fmt = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
String result = fmt.format(1000);  // 1K

core-libs/java.util:i18n

Square Character Support for Japanese New Era

hotspot/gc

ZGC Concurrent Class Unloading

Allocation of Old Generation of Java Heap on Alternate Memory Devices

hotspot/runtime

HotSpot Windows OS Detection Correctly Identifies Windows Server 2019

Command-Line Flag -XX+ExtensiveErrorReports

security-libs/java.security

disallow and allow Options for java.security.manager System Property

-groupname Option Added to keytool Key Pair Generation

For example, keytool -genkeypair -keyalg EC -groupname secp384r1 will generate an EC key pair by using the secp384r1 curve. Because there might be multiple curves with the same size, using the -groupname option is preferred over the -keysize option.

New Java Flight Recorder (JFR) Security Events

These events are disabled by default and can be enabled via the JFR configuration files or via standard JFR options.

  • jdk.SecurityPropertyModification
  • jdk.TLSHandshake
  • jdk.X509Validation
  • jdk.X509Certificate

Customizing PKCS12 keystore Generation

security-libs/javax.net.ssl

ChaCha20 and Poly1305 TLS Cipher Suites

Refer to the "Java Secure Socket Extension (JSSE) Reference Guide" for details on these new TLS cipher suites. See (JDK-8140466](https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8140466)

security-libs/org.ietf.jgss:krb5

Support for dns_canonicalize_hostname in krb5.conf

The dns_canonicalize_hostname flag in the krb5.conf configuration file is now supported by the JDK Kerberos implementation. When set to true, a short hostname in a service principal name will be canonicalized to a fully qualified domain name if available. Otherwise, no canonicalization is performed. The default value is true.

tools

jdeps --print-module-deps Reports Transitive Dependences

The --no-recursive option can be used to request non-transitive dependence analysis.

The --ignore-missing-deps option can be used to suppress missing dependence errors.

tools/javac

JEP 325 Switch Expressions (Preview)

Removed Features and Options

client-libs/java.awt

Removal of com.sun.awt.SecurityWarning Class

core-libs/java.io

Removal of finalize Methods from FileInputStream and FileOutputStream

core-libs/java.util.jar

Removal of finalize Method in java.util.ZipFile/Inflator/Deflator

infrastructure/build

Dropped the YY.M Vendor Version String from Oracle-Produced Builds

As of JDK 12, JDK builds from Oracle will no longer include a vendor version string

security-libs/java.security

Removal of GTE CyberTrust Global Root

tools/javac

Removal of javac Support for 6/1.6 source, target, and release Values

Deprecated Features and Options

hotspot/runtime

Obsoleted -XX+/-MonitorInUseLists

security-libs/java.security

Deprecated Default Keytool -keyalg Value

Other Notes

client-libs/javax.swing

GTK+ 3.20 and Later Unsupported by Swing

core-libs/java.lang

Initial Value of user.timezone System Property Changed

The initial value of the user.timezone system property is undefined unless set using a command line argument, for example, -Duser.timezone="America/New_York". The first time the default timezone is needed, if user.timezone is undefined or empty the timezone provided by the operating system is used. Previously, the initial value was the empty string. In JDK 12, System.getProperty("user.timezone") may return null.

core-libs/java.net

Better HTTP Redirection Support

Changed URLPermission Behavior with Query or Fragments in URL String

core-libs/java.time

Support New Japanese Era in java.time.chrono.JapaneseEra

core-libs/java.util

Changed Properties.loadFromXML to Comply with Specification

core-libs/javax.naming

LDAPS Communication Failure

hotspot/gc

G1 May Uncommit Memory During Marking Cycle

hotspot/jvmti

can_pop_frame and can_force_early_return Capabilities are Disabled if JVMCI Compiler is Used

Being tracked here: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8218885

infrastructure/build

Linux Native Code Checks

Additional safeguards to protect against buffer overruns in native code have been enabled on Linux. If a buffer overrun is encountered, the system will write the message "stack smashing detected" and the program will exit. Issues of this type should be reported to your vendor.

security-libs/java.security

Added Additional TeliaSonera Root Certificate

Removal of AOL and Swisscom Root Certificates

security-libs/javax.crypto

Change to X25519 and X448 Encoded Private Key Format

security-libs/javax.net.ssl

Removed TLS v1 and v1.1 from SSLContext Required Algorithms

Disabled TLS anon and NULL Cipher Suites

Disabled All DES TLS Cipher Suites

Distrust TLS Server Certificates Anchored by Symantec Root CAs