RELEASE NOTES: JDK openjdk8u212

Notes generated: Mon Jun 03 14:33:04 CEST 2024





Issue Description

New Japanese Era Name: Reiwa

An instance representing the new Reiwa era has been added to this update. Unlike other eras, there is no public field for this era. It can be obtained by calling JapaneseEra.of(3) or JapaneseEra.valueOf("Reiwa"). JDK 13 and later will have a new public field to represent this era.

The placeholder name, "NewEra", for the Japanese era that started from May 1st, 2019 has been replaced with the new official name. Applications that relied on the placeholder name (see JDK-8202088) to obtain the new era singleton (JapaneseEra.valueOf("NewEra")) will no longer work.


Square Character Support for Japanese New Era

The code point, U+32FF, is reserved by the Unicode Consortium to represent the Japanese square character for the new era that begins from May, 2019. Relevant methods in the Character class return the same properties as the existing Japanese era characters (e.g., U+337E for "Meizi"). For details about the code point, see


Issue Description

New Currency Code Points Added

The Java SE 8 Platform spec for java.lang.Character now supports Unicode 6.2 plus an extension to allow new currency code points from Unicode 10.0.

The following currency code points have been added: ` 0BB NORDIC MARK SIGN 20BC MANAT SIGN 20BD RUBLE SIGN 20BE LARI SIGN 20BF BITCOIN SIGN `


Issue Description

Possible Performance Regression in JDK 8 Updates 202, 211, and 212

Due to a known issue with the fix for JDK-8155635, introduced in JDK 8 update 202, some applications may experience a performance regression (lower throughput and/or higher CPU consumption) when migrating from earlier releases. Examples of code that might trigger this regression include heavy use of sun.misc.Unsafe and the Reflection API. This performance regression is addressed in JDK-8221355.


Issue Description

Distrust TLS Server Certificates Anchored by Symantec Root CAs

The JDK will stop trusting TLS Server certificates issued by Symantec, in line with similar plans recently announced by Google, Mozilla, Apple, and Microsoft. The list of affected certificates includes certificates branded as GeoTrust, Thawte, and VeriSign, which were managed by Symantec.

TLS Server certificates issued on or before April 16, 2019 will continue to be trusted until they expire. Certificates issued after that date will be rejected. See the DigiCert support page for information on how to replace your Symantec certificates with a DigiCert certificate (DigiCert took over validation and issuance for all Symantec Website Security SSL/TLS certificates on December 1, 2017).

An exception to this policy is that TLS Server certificates issued through two subordinate Certificate Authorities managed by Apple, and identified below, will continue to be trusted as long as they are issued on or before December 31, 2019.

The restrictions are enforced in the JDK implementation (the SunJSSE Provider) of the Java Secure Socket Extension (JSSE) API. A TLS session will not be negotiated if the server's certificate chain is anchored by any of the Certificate Authorities in the table below.

An application will receive an Exception with a message indicating the trust anchor is not trusted, ex:

"TLS Server certificate issued after 2019-04-16 and anchored by a distrusted legacy Symantec root CA: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US"

If necessary, and at your own risk, you can work around the restrictions by removing "SYMANTEC_TLS" from the security property in the configuration file.

The restrictions are imposed on the following Symantec Root certificates included in the JDK:

Root Certificates distrusted after 2019-04-16
Distinguished Name SHA-256 Fingerprint
CN=GeoTrust Global CA, O=GeoTrust Inc., C=US


CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US


CN=GeoTrust Primary Certification Authority - G2, OU=(c) 2007 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US


CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US


CN=GeoTrust Universal CA, O=GeoTrust Inc., C=US


CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US


CN=thawte Primary Root CA - G2, OU="(c) 2007 thawte, Inc. - For authorized use only", O="thawte, Inc.", C=US


CN=thawte Primary Root CA - G3, OU="(c) 2008 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US

4B:03:F4:58:07:AD:70:F2:1B:FC:2C:AE:71:C9:FD:E4:60:4C:06:4C:F5:FF:B6:86:BA:E5:DB:AA:D7:FD:D3:4C, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA


OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US


OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US


OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US


CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US


CN=VeriSign Class 3 Public Primary Certification Authority - G4, OU="(c) 2007 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US


CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US


CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US


Subordinate Certificates distrusted after 2019-12-31
Distinguished Name SHA-256 Fingerprint
CN=Apple IST CA 2 - G1, OU=Certification Authority, O=Apple Inc., C=US


CN=Apple IST CA 8 - G1, OU=Certification Authority, O=Apple Inc., C=US


If you have a TLS Server certificate issued by one of the CAs above, you should have received a message from DigiCert with information about replacing that certificate, free of charge.

You can also use the keytool utility from the JDK to print out details of the certificate chain, as follows:

keytool -v -list -alias <your_server_alias> -keystore <your_keystore_filename>

If any of the certificates in the chain are issued by one of the root CAs in the table above are listed in the output you will need to update the certificate or contact the organization that manages the server if not yours.


Issue Description

HotSpot Windows OS Detection Correctly Identifies Windows Server 2019

Prior to this fix, Windows Server 2019 was recognized as "Windows Server 2016", which produced incorrect values in the system property and the hs_err_pid file.


Issue Description

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

The JapaneseEra class and its of(int), valueOf(String), and values() methods are clarified to accommodate future Japanese era additions, such as how the singleton instances are defined, what the associated integer era values are, etc.



Priority Bug Summary
P3 JDK-8215364 JavaFX crashes on Ubuntu 18.04 with Wayland while using Swing-FX interop
P4 JDK-8129822 Define "headful" jtreg keyword


Priority Bug Summary
P3 JDK-8132985 Crash in freetypescaler.c due to double free
P3 JDK-8139803 Fix for 8132985 breaks OpenJDK build on windows.
P3 JDK-8170681 Remove fontconfig header files from JDK source tree
P4 JDK-8080932 [TEST_BUG] Test java/awt/BasicStroke/ fails with Bad script error due to improper @run notation


Priority Bug Summary
P1 JDK-8219636 Windows build failure after JDK-8207070 8u backport
P3 JDK-8213983 [macosx] Keyboard shortcut “cmd +`” stops working properly if popup window is displayed
P3 JDK-8211435 Exception in thread "AWT-EventQueue-1" java.lang.IllegalArgumentException: null source


Priority Bug Summary
P3 JDK-8212914 Test javax/imageio/plugins/bmp/ fails


Priority Bug Summary
P3 JDK-8076164 [JTextField] When input too long Thai character, cursor's behavior is odd
P3 JDK-8133108 [PIT] Container size is wrong in JEditorPane
P3 JDK-8132136 [PIT] RTL orientation in JEditorPane is broken
P4 JDK-8133731 [TEST_BUG] Unmappable in ASCII character such as Thai should be escaped in the regtests targeted for a regular non-I18n runs


Priority Bug Summary
P2 JDK-8213151 [AIX] Some class library files are missing the Classpath exception


Priority Bug Summary
P3 JDK-8216396 Support new Japanese era and new currency code points in java.lang.Character for Java SE 8
P4 JDK-8217710 Add 5 currency code points to Java SE 8uX
P4 JDK-8218915 Change isJavaIdentifierStart and isJavaIdentifierPart to handle new code points


Priority Bug Summary
P3 JDK-8211382 ISO2022JP and GB18030 NIO converter issues


Priority Bug Summary
P2 JDK-8212941 Support new Japanese era in java.time.chrono.JapaneseEra
P3 JDK-8042131 DateTimeFormatterBuilder Mapped-values do not work for JapaneseDate
P3 JDK-8180469 Wrong short form text for supplemental Japanese era
P4 JDK-8210633 Cannot parse JapaneseDate string with DateTimeFormatterBuilder Mapped-values
P4 JDK-8043387 java/time/test/java/util/ failed.


Priority Bug Summary
P2 JDK-8148928 java/util/stream/test/**/ timed out intermittently
P2 JDK-8076458 java/util/stream/test/org/openjdk/tests/java/util/stream/ timeout
P4 JDK-8044047 Missing null pointer checks for streams


Priority Bug Summary
P2 JDK-8202088 Japanese new era implementation
P2 JDK-8207152 Placeholder for Japanese new era should be two characters
P3 JDK-8206120 Add test cases for lenient Japanese era parsing
P3 JDK-8219890 Calendar.getDisplayName() returns empty string for new Japanese Era on some locales
P3 JDK-8217609 New era placeholder not recognized by java.text.SimpleDateFormat
P3 JDK-8205432 Replace the placeholder Japanese era name
P3 JDK-8211398 Square character support for the Japanese new era
P4 JDK-8208656 Move java/util/Calendar/CalendarTestScripts tests into OpenJDK


Priority Bug Summary
P4 JDK-8214061 Buffer written into itself


Priority Bug Summary
P2 JDK-8059038 Create new launcher for SA tools


Priority Bug Summary
P1 JDK-8214206 Fix for JDK-8213419 is broken on 32-bit
P2 JDK-8219961 [ppc64] Increase code size for interpreter generation.
P2 JDK-8221355 Performance regression after JDK-8155635 backport into 8u
P3 JDK-8211231 BarrierSetC1::generate_referent_check() confuses register allocator
P3 JDK-8213419 C2 may hang in MulLNode::Ideal()/MulINode::Ideal() with gcc 8.2.1
P3 JDK-8068269 RTM tests that assert on non-zero lock statistics are too strict in RTMTotalCountIncrRate > 1 cases
P3 JDK-8214189 test/hotspot/jtreg/compiler/intrinsics/mathexact/ fails on Windows x64 when run with -XX:-TieredCompilation
P4 JDK-8214059 Undefined behaviour in ADLC
P4 JDK-8145096 Undefined behaviour in HotSpot


Priority Bug Summary
P3 JDK-8028254 gc/arguments/ failed with unexpected initial heap size
P4 JDK-8211926 Catastrophic size_t underflow in BitMap::*_large methods
P4 JDK-8195115 G1 Old Gen MemoryPool CollectionUsage.used values don't reflect mixed GC results
P4 JDK-8217432 MetaspaceGC::_capacity_until_GC exceeds MaxMetaspaceSize


Priority Bug Summary
P3 JDK-8211106 [windows] Update OS detection code to recognize Windows Server 2019
P3 JDK-8200109 NMT: diff_malloc_site assert(early->flags() == current->flags(), "Must be the same memory type")
P3 JDK-8133984 print_compressed_class_space() is only defined in 64-bit VM
P4 JDK-8195153 [test] runtime/6981737/ shouldn't check 'java.vendor' and 'java.vm.vendor' properties
P4 JDK-8216037 Avoid calling vm_update with a NULL name
P4 JDK-8184309 Buld warnings from GCC 7.1 on Fedora 26
P4 JDK-8197429 Increased stack guard causes segfaults on x86-32
P4 JDK-8206075 On x86, assert on unbound assembler Labels used as branch targets
P4 JDK-8185975 PPC64: Fix vsldoi interface according to the ISA
P4 JDK-8213992 Rename and make DieOnSafepointTimeout the diagnostic option
P4 JDK-8208480 Test failure: assert(is_bound() || is_unused()) after JDK-8206075 in C1


Priority Bug Summary
P3 JDK-7127191 SA JSDB does not display native symbols correctly for transported Linux cores


Priority Bug Summary
P3 JDK-8180904 Hotspot tests running with -agentvm failing due to classpath
P4 JDK-8217520 Remove vm.opt.MaxGCPauseMillis == "null" from


Priority Bug Summary
P3 JDK-8193764 Cannot set COMPANY_NAME when configuring a build
P3 JDK-8200115 System property java.vm.vendor value includes quotation marks
P4 JDK-8212110 Build of saproc.dll broken on Windows 32 bit after JDK-8210647
P4 JDK-8210647 libsaproc is being compiled without optimization
P4 JDK-8220397 REGRESSION: JDK-8036003 backport regresses no_strip builds
P4 JDK-8217753 Remove Linux version check from HotSpot builds


Priority Bug Summary
P2 JDK-8213154 Update copyright headers of files in src tree that are missing Classpath exception


Priority Bug Summary
P4 JDK-8151747 remove a cygwin dependency


Priority Bug Summary
P4 JDK-8133802 replace some tags (obsolete in html5) in security-libs docs


Priority Bug Summary
P2 JDK-8216280 Allow later Symantec Policy distrust date for two Apple SubCAs
P4 JDK-8213952 Relax DNSName restriction as per RFC 1123


Priority Bug Summary
P2 JDK-8217579 TLS_EMPTY_RENEGOTIATION_INFO_SCSV is disabled after 8211883
P3 JDK-8207258 Distrust TLS server certificates anchored by Symantec Root CAs


Priority Bug Summary
P3 JDK-8164656 krb5 does not retry if TCP connection timeouts
P4 JDK-8175120 Remove old tests on kdc timeout policy


Priority Bug Summary
P4 JDK-8215976 OpenJDK fails to build with GCC 8.2 when the #include inside zip.cpp comes from a non-sysroot path


Priority Bug Summary
P4 JDK-8212178 Soft reference reclamation race in