JDK 11.0.9 Release Notes

Java Development Kit 11 Release Notes

Java™ SE Development Kit 11.0.9 (JDK 11.0.9)

October 20, 2020

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

IANA Data 2020a

JDK 11.0.9 contains IANA time zone data version 2020a. 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.9 are specified in the following table:

JRE Family Version JRE Security Baseline (Full Version String)
11 11.0.9+7
8 1.8.0_271-b09
7 1.7.0_281-b06

Keeping the JDK up to Date

Oracle recommends that the JDK is updated with each Critical Patch Update (CPU). 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.9) be used after the next critical patch update scheduled for January 19, 2021.

New Features

security-libs/java.security
 Weak Named Curves in TLS, CertPath, and Signed JAR Disabled by Default

Weak named curves are disabled by default by adding them to the following disabledAlgorithms security properties: jdk.tls.disabledAlgorithms, jdk.certpath.disabledAlgorithms, and jdk.jar.disabledAlgorithms. The named curves are listed below.

With 47 weak named curves to be disabled, adding individual named curves to each disabledAlgorithms property would be overwhelming. To relieve this, a new security property, jdk.disabled.namedCurves, is implemented that can list the named curves common to all of the disabledAlgorithms properties. To use the new property in the disabledAlgorithms properties, precede the full property name with the keyword include. Users can still add individual named curves to disabledAlgorithms properties separate from this new property. No other properties can be included in the disabledAlgorithms properties.

To restore the named curves, remove the include jdk.disabled.namedCurves either from specific or from all disabledAlgorithms security properties. To restore one or more curves, remove the specific named curve(s) from the jdk.disabled.namedCurves property.

Curves that are disabled through jdk.disabled.namedCurves include the following: secp112r1, secp112r2, secp128r1, secp128r2, secp160k1, secp160r1, secp160r2, secp192k1, secp192r1, secp224k1, secp224r1, secp256k1, sect113r1, sect113r2, sect131r1, sect131r2, sect163k1, sect163r1, sect163r2, sect193r1, sect193r2, sect233k1, sect233r1, sect239k1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, X9.62 c2tnb191v1, X9.62 c2tnb191v2, X9.62 c2tnb191v3, X9.62 c2tnb239v1, X9.62 c2tnb239v2, X9.62 c2tnb239v3, X9.62 c2tnb359v1, X9.62 c2tnb431r1, X9.62 prime192v2, X9.62 prime192v3, X9.62 prime239v1, X9.62 prime239v2, X9.62 prime239v3, brainpoolP256r1, brainpoolP320r1, brainpoolP384r1, brainpoolP512r1

Curves that remain enabled are: secp256r1, secp384r1, secp521r1, X25519, X448

See JDK-8233228

security-libs/org.ietf.jgss:krb5
 Support for Kerberos Cross-Realm Referrals (RFC 6806)

The Kerberos client has been enhanced with the support of principal name canonicalization and cross-realm referrals, as defined by the RFC 6806 protocol extension.

As a result of this new feature, the Kerberos client can take advantage of more dynamic environment configurations and does not necessarily need to know (in advance) how to reach the realm of a target principal (user or service).

Support is enabled by default and 5 is the maximum number of referral hops allowed. To turn it off, set the sun.security.krb5.disableReferrals security or system property to false. To configure a custom maximum number of referral hops, set the sun.security.krb5.maxReferrals security or system property to any positive value.

See further information in JDK-8223172.

See JDK-8215032

security-libs/javax.net.ssl
 Improve Certificate Chain Handling

A new system property, jdk.tls.maxHandshakeMessageSize, has been added to set the maximum allowed size for the handshake message in TLS/DTLS handshaking. The default value of the system property is 32768 (32 kilobytes).

A new system property, jdk.tls.maxCertificateChainLength, has been added to set the maximum allowed length of the certificate chain in TLS/DTLS handshaking. The default value of the system property is 10.

JDK-8245417 (not public)

security-libs/java.security
 Tools Warn If Weak Algorithms Are Used

The keytool and jarsigner tools have been updated to warn users when weak cryptographic algorithms are used in keys, certificates, and signed JARs before they are disabled. The weak algorithms are set in the jdk.security.legacyAlgorithms security property in the java.security configuration file. In this release, the tools issue warnings for the SHA-1 hash algorithm and 1024-bit RSA/DSA keys.

See JDK-8172404

security-libs/org.ietf.jgss:krb5
 Support for canonicalize in krb5.conf

The 'canonicalize' flag in the krb5.conf file is now supported by the JDK Kerberos implementation. When set to true, RFC 6806 name canonicalization is requested by clients in TGT requests to KDC services (AS protocol). Otherwise, and by default, it is not requested.

The new default behavior is different from JDK 14 and previous releases where name canonicalization was always requested by clients in TGT requests to KDC services (provided that support for RFC 6806 was not explicitly disabled with the sun.security.krb5.disableReferrals system or security properties).

See JDK-8239385

Other notes

core-libs/javax.naming
 Added Property to Control LDAP Authentication Mechanisms Allowed to Authenticate Over Clear Connections

A new environment property, jdk.jndi.ldap.mechsAllowedToSendCredentials, has been added to control which LDAP authentication mechanisms are allowed to send credentials over clear LDAP connections - a connection not secured with TLS. An encrypted LDAP connection is a connection opened by using ldaps scheme, or a connection opened by using ldap scheme and then upgraded to TLS with a STARTTLS extended operation.

The value of the property, which is by default not set, is a comma separated list of the mechanism names that are permitted to authenticate over a clear connection. If a value is not specified for the property, then all mechanisms are allowed. If the specified value is an empty list, then no mechanisms are allowed (except for none and anonymous). The default value for this property is 'null' ( i.e. System.getProperty("jdk.jndi.ldap.mechsAllowedToSendCredentials") returns 'null'). To explicitly permit all mechanisms to authenticate over a clear connection, the property value can be set to "all". If a connection is downgraded from encrypted to clear, then only the mechanisms that are explicitly permitted are allowed.

The property can be supplied to the LDAP context environment map, or set globally as a system property. When both are supplied, the environment map takes precedence.

Note: none and anonymous authentication mechanisms are exempted from these rules and are always allowed regardless of the property value.

JDK-8237990 (not public)

security-libs/java.security
 Added 3 SSL Corporation Root CA Certificates

The following root certificates have been added to the cacerts truststore:

+ SSL Corporation

  + sslrootrsaca
    DN: CN=SSL.com Root Certification Authority RSA, O=SSL Corporation, L=Houston, ST=Texas, C=US

  + sslrootevrsaca
    DN: CN=SSL.com EV Root Certification Authority RSA R2, O=SSL Corporation, L=Houston, ST=Texas, C=US

  + sslrooteccca
    DN: CN=SSL.com Root Certification Authority ECC, O=SSL Corporation, L=Houston, ST=Texas, C=US
See JDK-8243320

security-libs/java.security
 Added Entrust Root Certification Authority - G4 certificate

The following root certificate has been added to the cacerts truststore:

+ Entrust

  + entrustrootcag4
    DN: CN=Entrust Root Certification Authority - G4, OU="(c) 2015 Entrust, Inc. - for authorized use only", 
    OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
See JDK-8243321

core-libs/java.util:i18n
 Localized Time Zone Name Inconsistency Between English and Other Locales

English time zone names provided by the CLDR locale provider are now correctly synthesized following the CLDR spec, rather than substituted from the COMPAT provider. For example, SHORT style names are no longer synthesized abbreviations of LONG style names, but instead produce GMT offset formats.

See JDK-8236548

core-libs/java.io:serialization
 Enhanced Support of Proxy Class

The deserialization of java.lang.reflect.Proxy objects can be limited by setting the system property jdk.serialProxyInterfaceLimit. The limit is the maximum number of interfaces allowed per Proxy in the stream. Setting the limit to zero prevents any Proxies from being deserialized including Annotations, a limit of less than 2 might interfere with RMI operations.

JDK-8236862 (not public)

Bug Fixes

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

Issues fixed in 11.0.9:

# BugId Component Subcomponent Summary
1 JDK-8220150 client-libs 2d [macos] macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W glyphs
2 JDK-8244818 client-libs 2d [macos] Java2D Queue Flusher crash while moving application window to external monitor
3 JDK-8240518 client-libs java.awt Incorrect JNU_ReleaseStringPlatformChars in Windows Print
4 JDK-8243925 client-libs java.awt Toolkit#getScreenInsets() returns wrong value on HiDPI screens (Windows)
5 JDK-8249278 client-libs javax.accessibility Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for JList
6 JDK-8215396 client-libs javax.swing JTabbedPane preferred size calculation is wrong for SCROLL_TAB_LAYOUT
7 JDK-8249251 client-libs javax.swing [dark_mode ubuntu 20.04] The selected menu is not highlighted in GTKLookAndFeel
8 JDK-8233452 core-libs java.math java.math.BigDecimal.sqrt() with RoundingMode.FLOOR results in incorrect result
9 JDK-8216974 core-libs java.net HttpConnection not returned to the pool after 204 response
10 JDK-8238270 core-libs java.net java.net HTTP/2 client does not decrease stream count when receives 204 response
11 JDK-8218948 core-libs java.text SimpleDateFormat :: format - Zone Names are not reflected correctly during run time
12 JDK-8246807 core-libs java.util Incorrect copyright header in TimeZoneDatePermissionCheck.sh
13 JDK-8234347 core-libs java.util:i18n "Turkey" meta time zone does not generate composed localized names
14 JDK-8062947 core-libs javax.naming Fix exception message to correctly represent LDAP connection failure
15 JDK-8222529 core-svc debugger sun.jdwp.listenerAddress agent property uses wrong encoding
16 JDK-8227269 core-svc debugger Slow class loading when running with JDWP
17 JDK-8229378 core-svc debugger jdwp library loader in linker_md.c quietly truncates on buffer overflow
18 JDK-8244703 core-svc debugger "platform encoding not initialized" exceptions with debugger, JNI
19 JDK-8234968 core-svc java.lang.instrument check calloc rv in libinstrument InvocationAdapter
20 JDK-8203026 core-svc tools java.rmi.NoSuchObjectException: no such object in table
21 JDK-8227435 core-svc tools Perf::attach() should not throw a java.lang.Exception
22 JDK-8214074 hotspot compiler Optimize Ghash using AVX instructions
23 JDK-8224580 hotspot compiler Matcher can cause oop field/array element to be reloaded
24 JDK-8225625 hotspot compiler AES Electronic Codebook (ECB) encryption and decryption optimization using AVX512 + VAES instructions
25 JDK-8230402 hotspot compiler Allocation of compile task fails with assert: "Leaking compilation tasks?"
26 JDK-8231586 hotspot compiler enlarge encoding space for OopMapValue offsets
27 JDK-8231756 hotspot compiler [JVMCI] need support for deoptimizing virtual byte arrays encoding non-byte primitives
28 JDK-8232083 hotspot compiler Minimal VM is broken after JDK-8231586
29 JDK-8233027 hotspot compiler OopMapSet::all_do does oms.next() twice during iteration
30 JDK-8236179 hotspot compiler C1 register allocation failure with T_ADDRESS
31 JDK-8236647 hotspot compiler java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode
32 JDK-8239083 hotspot compiler C1 assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_nonstatic_concrete_methods())), "should be non-static concrete method");
33 JDK-8240610 hotspot compiler [JVMCI] Export VMVersion::_has_intel_jcc_erratum to JVMCI compiler
34 JDK-8241234 hotspot compiler Unify monitor enter/exit runtime entries.
35 JDK-8244407 hotspot compiler JVM crashes after transformation in C2 IdealLoopTree::split_fall_in
36 JDK-8244672 hotspot compiler [JVMCI] Export InstanceKlass::being_initialized to JVMCI compilers
37 JDK-8244719 hotspot compiler CTW: C2 compilation fails with "assert(!VerifyHashTableKeys || _hash_lock == 0) failed: remove node from hash table before modifying it"
38 JDK-8245714 hotspot compiler "Bad graph detected in build_loop_late" when loads are pinned on loop limit check uncommon branch
39 JDK-8245801 hotspot compiler StressRecompilation triggers assert "redundunt OSR recompilation detected. memory leak in CodeCache!"
40 JDK-8246153 hotspot compiler TestEliminateArrayCopy fails with -XX:+StressReflectiveCode
41 JDK-8246203 hotspot compiler Segmentation fault in verification due to stack overflow with -XX:+VerifyIterativeGVN
42 JDK-8246453 hotspot compiler TestClone crashes with "all collected exceptions must come from the same place"
43 JDK-8247350 hotspot compiler [aarch64] assert(false) failed: wrong size of mach node
44 JDK-8247992 hotspot compiler [JVMCI] HotSpotNmethod.executeVarargs can try execute a zombie nmethod
45 JDK-8248321 hotspot compiler [JVMCI] improve libgraal logging and fatal error handling
46 JDK-8248359 hotspot compiler Update JVMCI
47 JDK-8248410 hotspot compiler Correct Fix for 8236647: java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode
48 JDK-8248987 hotspot compiler AOT's Linker.java seems to eagerly fail-fast on Windows.
49 JDK-8248851 hotspot gc CMS: Missing memory fences between free chunk check and klass read
50 JDK-8210024 hotspot jfr JFR calls virtual is_Java_thread from ~Thread()
51 JDK-8210977 hotspot jfr jdk/jfr/event/oldobject/TestThreadLocalLeak.java fails to find ThreadLocalObject
52 JDK-8219904 hotspot jfr ClassCastException when calling FlightRecorderMXBean#getRecordings()
53 JDK-8230767 hotspot jfr FlightRecorderListener returns null recording
54 JDK-8243489 hotspot jfr Thread CPU Load event may contain wrong data for CPU time under certain conditions
55 JDK-8211064 hotspot runtime [AArch64] Interpreter and c1 don't correctly handle jboolean results in native calls
56 JDK-8213410 hotspot runtime UseCompressedOops requirement check fails fails on 32-bit system
57 JDK-8213574 hotspot runtime Deadlock in string table expansion when dumping lots of CDS classes
58 JDK-8215342 hotspot runtime [Zero] Build fails after JDK-8200613
59 JDK-8215879 hotspot runtime Aarch64: ReservedStackAccess may leave stack guard in inconsistent state
60 JDK-8215961 hotspot runtime jdk/jfr/event/os/TestCPUInformation.java fails on AArch64
61 JDK-8218185 hotspot runtime aarch64: missing LoadStore barrier in TemplateTable::putfield_or_static
62 JDK-8219635 hotspot runtime aarch64: missing LoadStore barrier in TemplateTable::fast_storefield
63 JDK-8219698 hotspot runtime aarch64: SIGILL triggered when specifying unsupported hardware features
64 JDK-8219712 hotspot runtime code_size2 (defined in stub_routines_x86.hpp) is too small on new Skylake CPUs
65 JDK-8221220 hotspot runtime AArch64: Add StoreStore membar explicitly for Volatile Writes in TemplateTable
66 JDK-8224828 hotspot runtime aarch64: rflags is not correct after safepoint poll
67 JDK-8225329 hotspot runtime -XX:+PrintBiasedLockingStatistics causes crash during initialization on Windows platforms
68 JDK-8228601 hotspot runtime AArch64: Fix interpreter code at JVMCI deoptimization entry
69 JDK-8233466 hotspot runtime aarch64: remove unnecessary load of mdo when profiling return and parameters type
70 JDK-8233839 hotspot runtime aarch64: missing memory barrier in NewObjectArrayStub and NewTypeArrayStub
71 JDK-8234270 hotspot runtime [REDO] JDK-8204128 NMT might report incorrect numbers for Compiler area
72 JDK-8240295 hotspot runtime hs_err elapsed time in seconds is not accurate enough
73 JDK-8241586 hotspot runtime compiler/cpuflags/TestAESIntrinsicsOnUnsupportedConfig.java fails on aarch64
74 JDK-8248219 hotspot runtime aarch64: missing memory barrier in fast_storefield and fast_accessfield
75 JDK-8228448 hotspot svc Jconsole can't connect to itself
76 JDK-8163805 hotspot svc-agent hotspot/test/serviceability/sa/sadebugd/SADebugDTest.java failed with timed out
77 JDK-8196969 hotspot svc-agent JTreg Failure: serviceability/sa/ClhsdbJstack.java causes NPE
78 JDK-8203364 hotspot svc-agent Some serviceability/sa/ tests intermittently fail with java.io.IOException: LingeredApp terminated with non-zero exit code 3
79 JDK-8204994 hotspot svc-agent SA might fail to attach to process with "Windbg Error: WaitForEvent failed"
80 JDK-8205534 hotspot svc-agent Remove SymbolTable dependency from serviceability agent
81 JDK-8209790 hotspot svc-agent SA tools not providing option to connect to debug server
82 JDK-8214797 hotspot svc-agent TestJmapCoreMetaspace.java timed out
83 JDK-8223665 hotspot svc-agent SA: debugd options should follow jhsdb style
84 JDK-8223814 hotspot svc-agent SA: jhsdb common help needs to be more detailed
85 JDK-8225636 hotspot svc-agent SA can't handle prelinked libraries
86 JDK-8232592 hotspot svc-agent <Unknown compiled code> is shown in jstack mixed mode
87 JDK-8235637 hotspot svc-agent jhsdb jmap from OpenJDK 11.0.5 doesn't work if prelink is enabled
88 JDK-8235846 hotspot svc-agent Improve WindbgDebuggerLocal implementation
89 JDK-8244310 other-libs other Validate-headers failed for HugeArenaTracking.java
90 JDK-8215694 security-libs java.security keytool cannot generate RSASSA-PSS certificates
91 JDK-8238448 security-libs java.security RSASSA-PSS signature verification fail when using certain odd key sizes
92 JDK-8242184 security-libs java.security Default signature algorithm for an RSASSA-PSS key
93 JDK-8242556 security-libs java.security Cannot load RSASSA-PSS public key with non-null params from byte array
94 JDK-8244087 security-libs java.security 2020-04-24 public suffix list update v ff6fcea
95 JDK-8245151 security-libs java.security jarsigner should not raise duplicate warnings on verification
96 JDK-8215443 security-libs javax.net.ssl The use of TransportContext.fatal() leads to bad coding style
97 JDK-8219991 security-libs javax.net.ssl New fix of the deadlock in sun.security.ssl.SSLSocketImpl
98 JDK-8236464 security-libs javax.net.ssl SO_LINGER option is ignored by SSLSocket in JDK 11
99 JDK-8226719 security-libs org.ietf.jgss Kerberos login to Windows 2000 failed with "Inappropriate type of checksum in message"
100 JDK-8227381 security-libs org.ietf.jgss GSS login fails with PREAUTH_FAILED
101 JDK-8227437 security-libs org.ietf.jgss:krb5 S4U2proxy cannot continue because server's TGT cannot be found
102 JDK-8246193 security-libs org.ietf.jgss:krb5 Possible NPE in ENC-PA-REP search in AS-REQ
103 JDK-8193367 tools javac annotated type variables bounds crash javac
104 JDK-8213703 tools javac LambdaConversionException: Invalid receiver type not a subtype of implementation type interface
105 JDK-8214571 tools javac -Xdoclint of array serialField gives "error: array type not allowed here"
106 JDK-8244763 tools javac Update --release 8 symbol information after JSR 337 MR3
107 JDK-8240169 tools javadoc(tool) javadoc fails to link to docs with non-matching modularity
108 JDK-8245981 tools javadoc(tool) Upgrade to jQuery 3.5.1
109 JDK-8080353 tools jshell JShell: Better error message on attempting to add default method
110 JDK-8159740 tools jshell JShell: corralled declarations do not have correct source to wrapper mapping
111 JDK-8212167 tools jshell JShell : Stack trace of exception has wrong line number
112 JDK-8214491 tools jshell Upgrade to JLine 3.9.0
113 JDK-8215243 tools jshell JShell tests failing intermitently with "Problem cleaning up the following threads:"
114 JDK-8215244 tools jshell jdk/jshell/ToolBasicTest.java testHistoryReference failed
115 JDK-8215438 tools jshell jshell tool: Ctrl-D causes EOF
116 JDK-8229815 tools jshell Upgrade Jline to 3.12.1
117 JDK-8241445 tools launcher Fix copyrights after JDK-8240629 change
118 JDK-8248348 xml jaxp Regression caused by the update to BCEL 6.0