JDK 17.0.2 Release Notes

Java™ SE Development Kit 17.0.2 (JDK 17.0.2)

January 18, 2022

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


IANA TZ Data 2021b, 2021c, 2021d, 2021e

JDK 17.0.2 contains IANA time zone data 2021b, 2021c, 2021d, 2021e.
  • Jordan now starts DST on February's last Thursday.
  • Samoa no longer observes DST.
  • Merge more location-based Zones whose timestamps agree since 1970.
  • Move some backward-compatibility links to 'backward'.
  • Rename Pacific/Enderbury to Pacific/Kanton.
  • Correct many pre-1993 transitions in Malawi, Portugal, etc.
  • zic now creates each output file or link atomically.
  • zic -L no longer omits the POSIX TZ string in its output.
  • zic fixes for truncation and leap second table expiration.
  • zic now follows POSIX for TZ strings using all-year DST.
  • Fix some localtime crashes and bugs in obscure cases.
  • zdump -v now outputs more-useful boundary cases.
  • tzfile.5 better matches a draft successor to RFC 8536.
  • A new file SECURITY.
  • Revert most 2021b changes to 'backward'.
  • Fix 'zic -b fat' bug in pre-1970 32-bit data.
  • Fix two Link line typos.
  • Distribute SECURITY file.

This release is intended as a bugfix release, to fix compatibility problems and typos reported since 2021b was released.

  • Fiji suspends DST for the 2021/2022 season.
  • 'zic -r' marks unspecified timestamps with "-00".
  • Palestine will fall back 10-29 (not 10-30) at 01:00.
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 17.0.2 are specified in the following table:

JRE Family Version JRE Security Baseline (Full Version String)
17 17.0.2+8
11 11.0.14+8
8 8u321-b07
7 7u331-b06


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 17.0.2) be used after the next critical patch update scheduled for April 19, 2022.


Removed Features and Options

 Removed Google's GlobalSign Root Certificate

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

+ alias name "globalsignr2ca [jdk]"

  Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2

Other Notes

 Extended Delay Before JDK Executable Installer Starts From Network Drive

On Windows 11 and Windows Server 2022, there can be some slowness with the extraction of temporary installation files when launched from a mapped network drive. The installer will still work, but there can be a temporary delay.

JDK-8274002 (not public)

 file.encoding System Property Has an Incorrect Value on Windows

The initialization of the file.encoding system property on non macOS platforms has been reverted to align with the behavior on or before JDK 11. This has been an issue especially on Windows where the system and user's locales are not the same.

 Zip File System Provider Throws ZipException When Entry Name Element Contains "." or ".."

The ZIP file system provider has been changed to reject existing ZIP files that contain entries with "." or ".." in name elements. ZIP files with these entries cannot be used as a file system. Invoking the java.nio.file.FileSystems.newFileSystem(...) methods throw ZipException if the ZIP file contains these entries.

 Update Timezone Data to 2021c

IANA Time Zone Database, on which JDK's Date/Time libraries are based, has made a tweak to some time zone rules since 2021c. Note that since this update, some of the time zone rules prior to the year 1970 have been modified according to the changes which were introduced with 2021b. For more detail, refer to the announcement of 2021b

 ZGC: Fixed long Process Non-Strong References times

A bug has been fixed that could cause long "Concurrent Process Non-Strong References" times with ZGC. The bug blocked the GC from making significant progress, and caused both latency and throughput issues for the Java application.

The long times could be seen in the GC logs when running with -Xlog:gc*:

[17606.140s][info][gc,phases ] GC(719) Concurrent Process Non-Strong References 25781.928ms


Bug Fixes

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

Issues fixed in 17.0.2:

# JBS Component Subcomponent Sumary
1 JDK-8269637 client-libs javax/swing/JFileChooser/FileSystemView/ fails on windows
2 JDK-8262031 client-libs Create implementation for NSAccessibilityNavigableStaticText protocol
3 JDK-8267387 client-libs Create implementation for NSAccessibilityOutline protocol
4 JDK-8275872 client-libs 2d Sync J2DBench run and analyze Makefile targets with build.xml
5 JDK-8271718 client-libs 2d Crash when during color transformation the color profile is replaced
6 JDK-8273135 client-libs 2d java/awt/color/ICC_ColorSpace/ crashes in liblcms.dylib with NULLSeek+0x7
7 JDK-8273887 client-libs 2d [macos] java/awt/color/ICC_ColorSpace/ timed out
8 JDK-8276905 client-libs 2d Use appropriate macosx_version_minimum value while compiling metal shaders
9 JDK-8273808 client-libs java.awt Cleanup AddFontsToX11FontPath
10 JDK-8275131 client-libs java.awt Exceptions after a touchpad gesture on macOS
11 JDK-8274326 client-libs javax.accessibility [macos] Ensure initialisation of sun/lwawt/macosx/CAccessibility in JavaComponentAccessibility.m
12 JDK-8274056 client-libs javax.accessibility JavaAccessibilityUtilities leaks JNI objects
13 JDK-8274381 client-libs javax.accessibility missing CAccessibility definitions in JNI code
14 JDK-8267385 client-libs javax.accessibility Create NSAccessibilityElement implementation for JavaComponentAccessibility
15 JDK-8267388 client-libs javax.accessibility Create implementation for NSAccessibilityTable protocol
16 JDK-8274383 client-libs javax.accessibility JNI call of getAccessibleSelection on a wrong thread
17 JDK-8277195 client-libs javax.accessibility missing CAccessibility definition in [CommonComponentAccessibility accessibilityHitTest]
18 JDK-8271071 client-libs javax.accessibility accessibility of a table on macOS lacks cell navigation
19 JDK-8275809 client-libs javax.accessibility crash in [CommonComponentAccessibility getCAccessible:withEnv:]
20 JDK-8273678 client-libs javax.accessibility TableAccessibility and TableRowAccessibility miss autorelease
21 JDK-8275071 client-libs javax.accessibility [macos] A11y cursor gets stuck when combobox is closed
22 JDK-8275819 client-libs javax.accessibility [TableRowAccessibility accessibilityChildren] method is ineffective
23 JDK-8270893 client-libs javax.imageio IndexOutOfBoundsException while reading large TIFF file
24 JDK-8269951 client-libs javax.swing [macos] Focus not painted in JButton when setBorderPainted(false) is invoked
25 JDK-8266510 client-libs javax.swing Nimbus JTree default tree cell renderer does not use selected text color
26 JDK-8271895 client-libs javax.swing UnProblemList javax/swing/JComponent/7154030/ in JDK18
27 JDK-8268284 client-libs javax.swing javax/swing/JComponent/7154030/ fails with "Exception: Failed to hide opaque button"
28 JDK-8264287 client-libs javax.swing Create implementation for NSAccessibilityComboBox protocol peer
29 JDK-8264303 client-libs javax.swing Create implementation for NSAccessibilityTabGroup protocol peer
30 JDK-8264292 client-libs javax.swing Create implementation for NSAccessibilityList protocol peer
31 JDK-8264286 client-libs javax.swing Create implementation for NSAccessibilityColumn protocol peer
32 JDK-8264291 client-libs javax.swing Create implementation for NSAccessibilityCell protocol peer
33 JDK-8264298 client-libs javax.swing Create implementation for NSAccessibilityRow protocol peer
34 JDK-8271315 client-libs javax.swing Redo: Nimbus JTree renderer properties persist across L&F changes
35 JDK-8264293 client-libs javax.swing Create implementation for NSAccessibilityMenu protocol peer
36 JDK-8264295 client-libs javax.swing Create implementation for NSAccessibilityMenuItem protocol peer
37 JDK-8264294 client-libs javax.swing Create implementation for NSAccessibilityMenuBar protocol peer
38 JDK-8264296 client-libs javax.swing Create implementation for NSAccessibilityPopUpButton protocol peer
39 JDK-8264297 client-libs javax.swing Create implementation for NSAccessibilityProgressIndicator protocol peer
40 JDK-8269850 core-libs Most JDK releases report macOS version 12 as 10.16 instead of 12.0
41 JDK-8276572 core-libs Fake library causes tooling issues
42 JDK-8273450 core-libs Fix the copyright header of SVML files
43 JDK-8275145 core-libs file.encoding system property has an incorrect value on Windows
44 JDK-8277093 core-libs Vector should throw ClassNotFoundException for a missing class of an element
45 JDK-8275703 core-libs java.lang System.loadLibrary fails on Big Sur for libraries hidden from filesystem
46 JDK-8274848 core-libs java.lang.invoke LambdaMetaFactory::metafactory on REF_invokeSpecial impl method has incorrect behavior
47 JDK-8270290 core-libs NTLM authentication fails if HEAD request is used
48 JDK-8274779 core-libs HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST
49 JDK-8267256 core-libs Extend minimal retry for loopback connections on Windows to PlainSocketImpl
50 JDK-8268294 core-libs Reusing HttpClient in a WebSocket.Listener hangs.
51 JDK-8269481 core-libs SctpMultiChannel never releases own file descriptor
52 JDK-8251329 core-libs java.nio (zipfs) Files.walkFileTree walks infinitely if zip has dir named "." inside
53 JDK-8273935 core-libs java.nio (zipfs) Files.getFileAttributeView() throws UOE instead of returning null when view not supported
54 JDK-8269280 core-libs java.nio (bf) Replace StringBuffer in *Buffer.toString()
55 JDK-8190753 core-libs java.nio (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative initial size for ByteArrayOutputStream
56 JDK-8271308 core-libs java.nio (fc) FileChannel.transferTo() transfers no more than Integer.MAX_VALUE bytes in one call
57 JDK-8233020 core-libs java.nio (fs) UnixFileSystemProvider should use StaticProperty.userDir().
58 JDK-8272095 core-libs java.nio ProblemList java/nio/channels/FileChannel/ on linux-aarch64
59 JDK-8140241 core-libs java.nio (fc) Data transfer from FileChannel to itself causes hang in case of overlap
60 JDK-8274468 core-libs java.time fails with tzdata2021b
61 JDK-8274467 core-libs java.time fails with tzdata2021b
62 JDK-8276536 core-libs java.time Update TimeZoneNames files to follow the changes made by JDK-8275766
63 JDK-8272473 core-libs java.time Parsing epoch seconds at a DST transition with a non-UTC parser is wrong
64 JDK-8274349 core-libs java.util.concurrent ForkJoinPool.commonPool() does not work with 1 CPU
65 JDK-8214761 core-libs Bug in parallel Kahan summation implementation
66 JDK-8273790 core-libs java.util:i18n Potential cyclic dependencies between Gregorian and CalendarSystem
67 JDK-8273924 core-libs java.util:i18n ArrayIndexOutOfBoundsException thrown in java.util.JapaneseImperialCalendar.add()
68 JDK-8273575 core-svc java.lang.instrument memory leak in appendBootClassPath(), paths must be deallocated
69 JDK-8268361 core-svc Fix the infinite loop in next_line
70 JDK-8272318 core-svc tools Improve performance of HeapDumpAllTest
71 JDK-8272970 hotspot Parallelize runtime/InvocationTests/
72 JDK-8273278 hotspot Support XSLT on GraalVM Native Image--deterministic bytecode generation in XSLT
73 JDK-8270886 hotspot compiler Crash in PhaseIdealLoop::verify_strip_mined_scheduling
74 JDK-8271600 hotspot compiler C2: CheckCastPP which should closely follow Allocate is sunk of a loop
75 JDK-8223923 hotspot compiler C2: Missing interference with mismatched unsafe accesses
76 JDK-8272570 hotspot compiler C2: crash in PhaseCFG::global_code_motion
77 JDK-8271341 hotspot compiler Opcode() != Op_If && Opcode() != Op_RangeCheck) || outcnt() == 2 assert failure with
78 JDK-8271340 hotspot compiler Crash PhaseIdealLoop::clone_outer_loop
79 JDK-8271459 hotspot compiler C2: Missing NegativeArraySizeException when creating StringBuilder with negative capacity
80 JDK-8273165 hotspot compiler GraphKit::combine_exception_states fails with "matching stack sizes" assert
81 JDK-8272562 hotspot compiler C2: assert(false) failed: Bad graph detected in build_loop_late
82 JDK-8274145 hotspot compiler C2: condition incorrectly made redundant with dominating main loop exit condition
83 JDK-8274074 hotspot compiler SIGFPE with C2 compiled code with -XX:+StressGCM
84 JDK-8274401 hotspot compiler C2: GraphKit::load_array_element bypasses Access API
85 JDK-8274406 hotspot compiler failed "assert(!LCA_orig->dominates(pred_block) || early->dominates(pred_block)) failed: early is high enough"
86 JDK-8276066 hotspot compiler Reset LoopPercentProfileLimit for x86 due to suboptimal performance
87 JDK-8270901 hotspot compiler Typo PHASE_CPP in CompilerPhaseType
88 JDK-8273021 hotspot compiler C2: Improve Add and Xor ideal optimizations
89 JDK-8275104 hotspot compiler IR framework does not handle client VM builds correctly
90 JDK-8276105 hotspot compiler C2: Conv(D|F)2(I|L)Nodes::Ideal should handle rounding correctly
91 JDK-8276846 hotspot compiler JDK-8273416 is incomplete for UseSSE=1
92 JDK-8276112 hotspot compiler Inconsistent scalar replacement debug info at safepoints
93 JDK-8276025 hotspot compiler Hotspot's may conflict with user dependency
94 JDK-8270533 hotspot compiler AArch64: size_fits_all_mem_uses should return false if its output is a CAS
95 JDK-8273416 hotspot compiler C2: assert(false) failed: bad AD file after JDK-8252372 with UseSSE={0,1}
96 JDK-8273359 hotspot compiler CI: ciInstanceKlass::get_canonical_holder() doesn't respect instance size
97 JDK-8244675 hotspot compiler assert(IncrementalInline || (_late_inlines.length() == 0 && !has_mh_late_inlines()))
98 JDK-8272703 hotspot compiler StressSeed should be set via FLAG_SET_ERGO
99 JDK-8271954 hotspot compiler C2: assert(false) failed: Bad graph detected in build_loop_late
100 JDK-8272413 hotspot compiler Incorrect num of element count calculation for vector cast
101 JDK-8272574 hotspot compiler C2: assert(false) failed: Bad graph detected in build_loop_late
102 JDK-8276157 hotspot compiler C2: Compiler stack overflow during escape analysis on Linux x86_32
103 JDK-8268882 hotspot compiler C2: assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc
104 JDK-8271567 hotspot compiler AArch64: AES Galois CounterMode (GCM) interleaved implementation using vector instructions
105 JDK-8271215 hotspot gc Fix data races in G1PeriodicGCTask
106 JDK-8274501 hotspot gc c2i entry barriers read int as long on AArch64
107 JDK-8271862 hotspot gc C2 intrinsic for Reference.refersTo() is often not used
108 JDK-8271121 hotspot gc ZGC: stack overflow (segv) when -Xlog:gc+start=debug
109 JDK-8272170 hotspot gc Missing memory barrier when checking active state for regions
110 JDK-8277212 hotspot gc GC accidentally cleans valid megamorphic vtable inline caches
111 JDK-8275426 hotspot gc PretouchTask num_chunks calculation can overflow
112 JDK-8274435 hotspot jfr EXCEPTION_ACCESS_VIOLATION in BFSClosure::closure_impl
113 JDK-8272850 hotspot runtime Drop zapping values in the Zap* option descriptions
114 JDK-8273606 hotspot runtime Zero: SPARC64 build fails with si_band type mismatch
115 JDK-8273373 hotspot runtime Zero: Cannot invoke JVM in primordial threads on Zero
116 JDK-8273505 hotspot runtime runtime/cds/appcds/loaderConstraints/ crashed with SIGSEGV in MetaspaceShared::link_shared_classes
117 JDK-8273176 hotspot runtime handle latest VS2019 in abstract_vm_version
118 JDK-8273695 hotspot runtime Safepoint deadlock on VMOperation_lock
119 JDK-8273489 hotspot runtime Zero: Handle UseHeavyMonitors on all monitorenter paths
120 JDK-8273229 hotspot runtime Update OS detection code to recognize Windows Server 2022
121 JDK-8274840 hotspot runtime Update OS detection code to recognize Windows 11
122 JDK-8273342 hotspot runtime Null pointer dereference in classFileParser.cpp:2817
123 JDK-8272345 hotspot runtime macos doesn't check `os::set_boot_path()` result
124 JDK-8272114 hotspot runtime Unused _last_state in osThread_windows
125 JDK-8274293 hotspot runtime Build failure on macOS with Xcode 13.0 as vfork is deprecated
126 JDK-8274338 hotspot runtime com/sun/jdi/ failed "assert(m != __null) failed: NULL mirror"
127 JDK-8238649 hotspot runtime Call new Win32 API SetThreadDescription in os::set_native_thread_name
128 JDK-8261579 hotspot runtime AArch64: Support for weaker memory ordering in Atomic
129 JDK-8268927 hotspot runtime Windows: link error: unresolved external symbol "int __cdecl convert_to_unicode(char const *,wchar_t * *)"
130 JDK-8273486 hotspot runtime Zero: Handle DiagnoseSyncOnValueBasedClasses VM option
131 JDK-8273483 hotspot runtime Zero: Clear pending JNI exception check in native method handler
132 JDK-8273440 hotspot runtime Zero: Disable runtime/Unsafe/
133 JDK-8273333 hotspot runtime Zero should warn about unimplemented -XX:+LogTouchedMethods
134 JDK-8268893 hotspot runtime jcmd to trim the glibc heap
135 JDK-8273902 hotspot runtime Memory leak in OopStorage due to bug in OopHandle::release()
136 JDK-8269687 hotspot runtime pauth_aarch64.hpp include name is incorrect
137 JDK-8275604 hotspot runtime Zero: Reformat opclabels_data
138 JDK-8277029 hotspot svc JMM GetDiagnosticXXXInfo APIs should verify output array sizes
139 JDK-8270320 hotspot test JDK-8270110 committed invalid copyright headers
140 JDK-8270946 security-libs X509CertImpl.getFingerprint should not return the empty String
141 JDK-8273826 security-libs Correct Manifest file name and NPE checks
142 JDK-8274215 security-libs Remove globalsignr2ca root from 17.0.2
143 JDK-8274736 security-libs Concurrent read/close of SSLSockets causes SSLSessions to be invalidated unnecessarily
144 JDK-8277224 security-libs throws NPE
145 JDK-8270317 security-libs Large Allocation in CipherSuite
146 JDK-8275811 security-libs Incorrect instance to dispose
147 JDK-8273026 security-libs Slow LoginContext.login() on multi threading application
148 JDK-8274205 security-libs org.ietf.jgss:krb5 Handle KDC_ERR_SVC_UNAVAILABLE error code from KDC
149 JDK-8273894 security-libs org.ietf.jgss:krb5 ConcurrentModificationException raised every time ReferralsCache drops referral
150 JDK-8273234 tools javac extended 'for' with expression of type tvar causes the compiler to crash
151 JDK-8262095 tools javac NPE in Flow$FlowAnalyzer.visitApply: Cannot invoke getThrownTypes because tree.meth.type is null
152 JDK-8268885 tools javac duplicate checkcast when destination type is not first type of intersection type
153 JDK-8269113 tools javac Javac throws when compiling switch (null)
154 JDK-8275302 tools javac unexpected compiler error: cast, intersection types and sealed
155 JDK-8274347 tools javac Passing a *nested* switch expression as a parameter causes an NPE during compile
156 JDK-8268894 tools javac forged ASTs can provoke an AIOOBE at
157 JDK-8273408 tools javac java.lang.AssertionError: typeSig ERROR on generated class property of record
158 JDK-8271254 tools javac javac generates unreachable code when using empty semicolon statement
159 JDK-8274942 tools javac AssertionError at jdk.compiler/
160 JDK-8272639 tools jpackage jpackaged applications using microphone on mac
161 JDK-8274087 tools jpackage Windows DLL path not set correctly.
162 JDK-8273593 tools jpackage [REDO] Warn user when using mac-sign option with unsigned app-image.
163 JDK-8272328 tools jpackage java.library.path is not set properly by Windows jpackage app launcher
164 JDK-8268457 xml XML Transformer outputs Unicode supplementary character incorrectly to HTML