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.
This release is intended as a bugfix release, to fix compatibility problems and typos reported since 2021b was released.
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 |
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.
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
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.
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.
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.
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
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
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/SystemIconTest.java 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/MTTransformReplacedProfile.java crashes in liblcms.dylib with NULLSeek+0x7 |
7 | JDK-8273887 | client-libs | 2d | [macos] java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java 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/bug7154030.java in JDK18 |
27 | JDK-8268284 | client-libs | javax.swing | javax/swing/JComponent/7154030/bug7154030.java 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 libsyslookup.so library causes tooling issues | |
42 | JDK-8273450 | core-libs | Fix the copyright header of SVML files | |
43 | JDK-8275145 | core-libs | java.io | file.encoding system property has an incorrect value on Windows |
44 | JDK-8277093 | core-libs | java.io:serialization | 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 | java.net | NTLM authentication fails if HEAD request is used |
48 | JDK-8274779 | core-libs | java.net | HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST |
49 | JDK-8267256 | core-libs | java.net | Extend minimal retry for loopback connections on Windows to PlainSocketImpl |
50 | JDK-8268294 | core-libs | java.net | Reusing HttpClient in a WebSocket.Listener hangs. |
51 | JDK-8269481 | core-libs | java.net | 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/Transfer2GPlus.java 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 | TimeZoneTest.java fails with tzdata2021b |
61 | JDK-8274467 | core-libs | java.time | TestZoneInfo310.java 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 | java.util.stream | 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 | java.lang.management | 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 Test7179138_1.java |
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 | RunThese30M.java 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 libsvml.so 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/DynamicLoaderConstraintsTest.java#default-cl 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/RedefineCrossEvent.java 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/InternalErrorTest.java |
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 | java.security | X509CertImpl.getFingerprint should not return the empty String |
141 | JDK-8273826 | security-libs | java.security | Correct Manifest file name and NPE checks |
142 | JDK-8274215 | security-libs | java.security | Remove globalsignr2ca root from 17.0.2 |
143 | JDK-8274736 | security-libs | java.security | Concurrent read/close of SSLSockets causes SSLSessions to be invalidated unnecessarily |
144 | JDK-8277224 | security-libs | java.security | sun.security.pkcs.PKCS9Attributes.toString() throws NPE |
145 | JDK-8270317 | security-libs | javax.net.ssl | Large Allocation in CipherSuite |
146 | JDK-8275811 | security-libs | javax.net.ssl | Incorrect instance to dispose |
147 | JDK-8273026 | security-libs | javax.security | 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 com.sun.tools.javac.jvm.ClassWriter::writePosition |
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/com.sun.tools.javac.util.Assert.error(Assert.java:155) |
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 |