java

JDK 11.0.13 Release Notes

Java™ SE Development Kit 11.0.13 (JDK 11.0.13)

October 19, 2021

The full version string for this update release is 11.0.13+10 (where "+" means "build"). The version number is 11.0.13.

IANA TZ Data 2021a

For more information, refer to Timezone Data Versions in the JRE Software.

Security Baselines

The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 11.0.13 are specified in the following table:

JRE Family Version JRE Security Baseline (Full Version String)
11 11.0.13+10
8 8u311-b11
7 7u321-b08

Keeping the JDK up to Date

Oracle recommends that the JDK is updated with each Critical Patch Update. In order to determine if a release is the latest, the Security Baseline page can be used to determine which is the latest version for each release family.

Critical patch updates, which contain security vulnerability fixes, are announced one year in advance on Critical Patch Updates, Security Alerts and Bulletins. It is not recommended that this JDK (version 11.0.13) be used after the next critical patch update scheduled for January 18, 2022.

New Features

core-libs/java.io:serialization
 Context-specific Deserialization Filters

Allow applications to configure context-specific and dynamically-selected deserialization filters via a JVM-wide filter factory that is invoked to select a filter for each deserialization stream. The behavior is a strict subset of JEP 415: Context-Specific Deserialization Filters to allow a filter factory to be configured using a property configured on the command line or in the security properties file.

The behavior is opt-in based on the presence of the jdk.serialFilterFactory system property on the command line or the jdk.serialFilterFactory security property. If set, the JVM-wide filter factory selects the filter for each stream when the stream is constructed and when a stream-specific filter is set.

The JVM-wide filter factory is a java.util.function.BinaryOperator<java.io.ObjectInputFilter> function invoked when each ObjectInputStream is constructed and when the stream-specific filter is set using ObjectInputStream.setObjectInputFilter(ObjectInputFilter). The parameters are the current filter and a requested filter and the function returns the filter to be used for the stream. When invoked from the ObjectInputStream constructors, the first parameter is null and the second parameter is the static JVM-wide filter. When invoked from ObjectInputStream.setObjectInputFilter, the first parameter is the filter currently set on the stream (which was set in the constructor), and the second parameter is the filter given to ObjectInputStream.setObjectInputFilter.

A typical filter factory should use or merge the static JVM-wide filter with other application and context specific filters and the stream-specific filter, if one is set on the stream. The filter factory implementation can also use any contextual information at its disposal, for example, extracted from the application thread context, or its call stack, to compose and combine a new filter. It is not restricted to only use its two parameters.

Refer to Context-Specific Deserialization Filter and Serialization Filtering Guide for details.

JDK-8268624 (not public)

Removed Features and Options

security-libs/java.security
 Removed IdenTrust Root Certificate

The following root certificate from IdenTrust has been removed from the cacerts keystore:

+ alias name "identrustdstx3 [jdk]"

  Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.

See JDK-8225082

hotspot/compiler
 Remove the Experimental AOT and JIT Compiler in OracleJDK 11u

The experimental Java-based JIT compiler, Graal JEP317, has been removed. Attempting to use it produces a JVMCI error: JVMCI compiler 'graal' not found.

The Java Ahead-of-Time compilation experimental tool jaotc has been removed. Using HotSpot VM AOT options defined by JEP295 produce "Unrecognized VM option" error on VM initialization.

Developers who wish to test the Graal compiler for either AOT or JIT compilation should use GraalVM.

JDK-8267704 (not public)

Other Notes

core-libs/java.lang
 Release Doesn't Correctly Recognize Windows 11

This release doesn't correctly identify Windows 11. The property os.name is set to Windows 10 on Windows 11. In HotSpot error logs, the OS is identified as Windows 10; however, the HotSpot error log does show the Build number. Windows 11 has Build 22000.194 or above.

See JDK-8274840

install
 Change to Package Names in Linux RPM/DEB Installers

On the Linux platform, the names of JDK packages provided by Java RPM and DEB installers have been changed. Names of JDK packages follow the jdk-<feature_release_version> pattern instead of the jdk-<update_release_version> pattern that was previously used. For example, the new names of JDK 11, 16, and 17 packages are jdk-11, jdk-16, and jdk-17 respectively.

The change to package names disables side-by-side installation of multiple JDKs of the same release family. Only one JDK per release family can be installed on a system with RPM and DEB installers.

If a user wants to have multiple update releases from the same family, the user must download the tar.gz bundles.

JDK-8266653 (not public)

security-libs/javax.net.ssl
 Updated the Default Enabled Cipher Suites Preference

The default priority order of the cipher suites for TLS 1.0 to TLS 1.3 has been adjusted.

For TLS 1.3, TLS_AES_256_GCM_SHA384 is now preferred over TLS_AES_128_GCM_SHA256.

For TLS 1.0 to TLS 1.2, some of the intermediate suites have been lowered in priority as follows:

  • Cipher suites that do not preserve forward secrecy have been moved lower in priority than those that do support forward secrecy.
  • Cipher suites that use SHA-1 have been moved lower in priority.

core-libs/javax.naming
 System Property to Control Reconstruction of Reference Address Objects by JDK's Built-in JNDI LDAP Implementation

The scope of the com.sun.jndi.ldap.object.trustSerialData system property has been extended to control the deserialization of java objects from the javaReferenceAddress LDAP attribute. This system property now controls the deserialization of java objects from the javaSerializedData and javaReferenceAddress LDAP attributes.

To prevent deserialization of java objects from these attributes, the system property can be set to false. By default, the deserialization of java objects from javaSerializedData and javaReferenceAddress attributes is allowed.

JDK-8267712 (not public)

hotspot/runtime
 Release Doesn't Correctly Recognize Windows Server 2022

This release doesn't correctly identify Windows Server 2022. The property os.name is set to Windows Server 2019 on Windows Server 2022. In HotSpot error logs the OS is identified as Windows Server 2019; however, the HotSpot error log does show the Build number. Windows Server 2022 has Build 20348, or above.

See JDK-8273229

security-libs/java.security
 Updated keytool to Create AKID From SKID of Issuing Certificate as Specified by RFC 5280

The gencert command of the keytool utility has been updated to create AKID from the SKID of the issuing certificate as specified by RFC 5280.

See JDK-8257497

security-libs/javax.crypto:pkcs11
 SunPKCS11 Initialization With NSS When External FIPS Modules Are in Security Modules Database

The SunPKCS11 security provider can now be initialized with NSS when FIPS-enabled external modules are configured in the Security Modules Database (NSSDB). Before this change, when such a library was configured for NSS in non-FIPS mode, the SunPKCS11 provider would throw a RuntimeException with the message "FIPS flag set for non-internal module".

This change allows the JDK to work properly with recent NSS releases in GNU/Linux operating systems when the system-wide FIPS policy is turned on.

See JDK-8238555

Bug Fixes

This release also contains fixes for security vulnerabilities described in the Oracle Critical Patch Update.

Issues fixed in 11.0.13:

# BugId Component Subcomponent Summary
1 JDK-8264047 client-libs 2d Duplicate global variable 'jvm' in libjavajpeg and libawt
2 JDK-8261169 client-libs 2d Upgrade HarfBuzz to the latest 2.8.0
3 JDK-8242557 client-libs 2d Add length limit for strings in PNGImageWriter
4 JDK-8265761 client-libs 2d Font with missed font family name is not properly printed on Windows
5 JDK-8211055 client-libs 2d Provide print to a file (PDF) feature even when printer was not connected
6 JDK-8212040 client-libs 2d Compilation error due to wrong usage of NSPrintJobDispositionValue in mac10.12
7 JDK-7179006 client-libs 2d [macosx] Print-to-file doesn't work: printing to the default printer instead
8 JDK-8256372 client-libs 2d [macos] Unexpected symbol was displayed on JTextField with Monospaced font
9 JDK-8262731 client-libs 2d [macOS] Exception from "Printable.print" is swallowed during "PrinterJob.print"
10 JDK-8262392 client-libs 2d Update Mesa 3-D Headers to version 21.0.3
11 JDK-8273358 client-libs 2d macOS Monterey does not have the font Times needed by Serif
12 JDK-8272602 client-libs java.awt [macos] not all KEY_PRESSED events sent when control modifier is used
13 JDK-8270216 client-libs java.awt [macOS] Update named used for Java run loop mode
14 JDK-8269984 client-libs java.awt [macos] JTabbedPane title looks like disabled
15 JDK-8268775 client-libs javax.accessibility Password is being converted to String in AccessibleJPasswordField
16 JDK-8190763 client-libs javax.swing Class cast exception on (CompoundEdit) UndoableEditEvent.getEdit()
17 JDK-8247753 client-libs javax.swing UIManager.getSytemLookAndFeelClassName() returns wrong value on Fedora 32
18 JDK-8251377 client-libs javax.swing [macos11] JTabbedPane selected tab text is barely legible
19 JDK-8232243 client-libs javax.swing Wrong caret position in JTextPane on Windows with a screen resolution > 100%
20 JDK-8255227 core-libs java.net java/net/httpclient/FlowAdapterPublisherTest.java intermittently failing with TestServer: start exception: java.io.IOException: Invalid preface
21 JDK-8233185 core-libs java.net HttpServer.stop() blocks indefinitely when called on dispatch thread
22 JDK-8241786 core-libs java.net Improve heuristic to determine default network interface on macOS
23 JDK-8227080 core-libs java.nio (fs) Files.newInputStream(...).skip(n) is slow
24 JDK-8227609 core-libs java.nio (fs) Files.newInputStream(...).skip(n) should allow skipping beyond file size
25 JDK-8226530 core-libs java.util.jar ZipFile reads wrong entry size from ZIP64 entries
26 JDK-8215411 core-svc some GetByteArrayElements calls miss corresponding Release
27 JDK-8253134 core-svc java.lang.management JMM_VERSION should remain at 0x20020000 (JDK 10) in JDK 11
28 JDK-8216145 docs tools jarsigner doc is not precise when describing jar file re-signing
29 JDK-8265938 hotspot compiler C2's conditional move optimization does not handle top Phi
30 JDK-8269795 hotspot compiler C2: Out of bounds array load floats above its range check in loop peeling resulting in SEGV
31 JDK-8269304 hotspot compiler Regression ~5% in 2005 in b27
32 JDK-8265132 hotspot compiler C2 compilation fails with assert "missing precedence edge"
33 JDK-8267424 hotspot compiler CTW: C1 fails with "State must not be null"
34 JDK-8223050 hotspot compiler JVMCI: findUniqueConcreteMethod() should not use Dependencies::find_unique_concrete_method() for non-virtual methods
35 JDK-8266288 hotspot compiler assert root method not found in witnessed_reabstraction_in_supers is too strong
36 JDK-8268360 hotspot compiler Missing check for infinite loop during node placement
37 JDK-8262017 hotspot compiler C2: assert(n != __null) failed: Bad immediate dominator info.
38 JDK-8268369 hotspot compiler SIGSEGV in PhaseCFG::implicit_null_check due to missing null check
39 JDK-8260653 hotspot compiler Unreachable nodes keep speculative types alive
40 JDK-8268366 hotspot compiler Incorrect calculation of has_fpu_registers in C1 linear scan
41 JDK-8268347 hotspot compiler C2: nested locks optimization may create unbalanced monitor enter/exit code
42 JDK-8258746 hotspot compiler illegal access to global field _jvmci_old_thread_counters by terminated thread causes crash
43 JDK-8266615 hotspot compiler C2 incorrectly folds subtype checks involving an interface array
44 JDK-8266480 hotspot compiler Implicit null check optimization does not update control of hoisted memory operation
45 JDK-8267773 hotspot compiler PhaseStringOpts::int_stringSize doesn't handle min_jint correctly
46 JDK-8269745 hotspot compiler [JVMCI] restore original qualified exports to Graal
47 JDK-8263227 hotspot compiler C2: inconsistent spilling due to dead nodes in exception block
48 JDK-8261147 hotspot compiler C2: Node is wrongly marked as reduction resulting in a wrong execution due to wrong vector instructions
49 JDK-8268362 hotspot compiler [REDO] C2 crash when compile negative Arrays.copyOf length after loop
50 JDK-8264016 hotspot compiler [JVMCI] add some thread local fields for use by JVMCI
51 JDK-8210063 hotspot gc ZGC: Enable load barriers for IN_NATIVE runtime barriers
52 JDK-8264640 hotspot gc CMS ParScanClosure misses a barrier
53 JDK-8245511 hotspot gc G1 adaptive IHOP does not account for reclamation of humongous objects by young GC
54 JDK-8246274 hotspot gc G1 old gen allocation tracking is not in a separate class
55 JDK-8269768 hotspot jfr JFR Terminology Refresh
56 JDK-8191521 hotspot runtime handle long relative path specified in -Xbootclasspath/a on windows
57 JDK-8231885 hotspot runtime Fix/remove malformed assert in os_windows.cpp
58 JDK-8231930 hotspot runtime Windows build fails after JDK-8191521
59 JDK-8262163 hotspot runtime Extend settings printout in jcmd VM.metaspace
60 JDK-8253572 hotspot runtime [windows] CDS archive may fail to open with long file names
61 JDK-8211296 hotspot runtime Remove HotSpot deprecation warning suppression for Mac/clang
62 JDK-8024368 hotspot runtime private methods are allocated vtable indices
63 JDK-8266642 hotspot runtime Improve ResolvedMethodTable hash function
64 JDK-8267396 hotspot runtime Avoid recording "pc" in unhandled oops detector for better performance
65 JDK-8227766 hotspot runtime CheckUnhandledOops is broken in MemAllocator
66 JDK-8218145 hotspot runtime block_if_requested is not proper inlined due to size
67 JDK-8267235 hotspot runtime [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up LR results in crash
68 JDK-8268635 hotspot runtime Corrupt oop in ClassLoaderData
69 JDK-8266404 hotspot runtime Fatal error report generated with -XX:+CrashOnOutOfMemoryError should not contain suggestion to submit a bug report
70 JDK-8269594 hotspot runtime assert(_handle_mark_nesting > 1) failed: memory leak: allocating handle outside HandleMark
71 JDK-8212992 hotspot runtime Change mirror accessor in Klass::verify_on() to use AS_NO_KEEPALIVE
72 JDK-8227815 hotspot svc Minimal VM: set_state is not a member of AttachListener
73 JDK-8266473 install install javapath/java.exe strips double quotes from command line args
74 JDK-8218618 security-libs java.security Program fails when using JDK addressed by UNC path and using Security Manager
75 JDK-8257497 security-libs java.security Update keytool to create AKID from the SKID of the issuing certificate as specified by RFC 5280
76 JDK-8225082 security-libs java.security Remove IdenTrust certificate that is expiring in September 2021
77 JDK-8236671 security-libs javax.crypto NullPointerException in JKS keystore
78 JDK-8238555 security-libs javax.crypto:pkcs11 Allow initialization of SunPKCS11 with NSS when there are external FIPS modules in the NSSDB
79 JDK-8163326 security-libs javax.net.ssl Update the default enabled cipher suites preference
80 JDK-8259886 security-libs javax.net.ssl Improve SSL session cache performance and scalability
81 JDK-8255255 security-libs javax.xml.crypto Update Apache Santuario (XML Signature) to version 2.2.1
82 JDK-8265773 tools incorrect jdeps message "jdk8internals" to describe a removed JDK internal API
83 JDK-8207160 tools javac ClassReader::adjustMethodParams can potentially return null if the args list is empty
84 JDK-8177068 tools javac incomplete classpath causes NPE in Flow
85 JDK-8210495 tools javac compiler crashes because of illegal signature in otherwise legal code
86 JDK-8241353 tools javac NPE in ToolProvider.getSystemJavaCompiler
87 JDK-8263432 tools javac javac may report an invalid package/class clash on case insensitive filesystems
88 JDK-8265524 tools javadoc(tool) Upgrading JSZip from v3.2.2 to v3.6.0
89 JDK-8272180 tools javadoc(tool) Upgrade JSZip from v3.6.0 to v3.7.1
90 JDK-8260690 tools jconsole JConsole User Guide Link from the Help menu is not accessible by keyboard
91 JDK-8239536 tools jshell Can't use `java.util.List` object after importing `java.awt.List`
92 JDK-8242919 tools jshell Paste locks up jshell
93 JDK-8247403 tools jshell JShell: No custom input (e.g. from GUI) possible with JavaShellToolBuilder