August 18, 2022
The full version string for this update release is 18.0.2.1+1 (where "+" means "build"). The version number is 18.0.2.1.
The security baselines are unchanged from the release of JDK 18.0.2.
JRE Family Version | JRE Security Baseline (Full Version String) |
---|---|
18 | 18.0.2+9 |
17 | 17.0.4+11 |
11 | 11.0.16+11 |
8 | 8u341-b10 |
7 | 7u351-b07 |
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 18.0.2.1) be used after the next critical patch update scheduled for October 18, 2022.
Oracle recommends that all JDK 18 users, even those that have already updated to 18.0.2, uptake the 18.0.2.1 patch release.
Fixes a regression in the C2 JIT compiler which caused the Java Runtime to crash unpredictably.
July 19, 2022
The full version string for this update release is 18.0.2+9 (where "+" means "build"). The version number is 18.0.2.
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 18.0.2 are specified in the following table:
JRE Family Version | JRE Security Baseline (Full Version String) |
---|---|
18 | 18.0.2+9 |
17 | 17.0.4+11 |
11 | 11.0.16+11 |
8 | 8u341-b10 |
7 | 7u351-b07 |
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 18.0.2) be used after the next critical patch update scheduled for October 18, 2022.
The “jdk.security.auth.subject.useTL” system property and the alternate ThreadLocal
implementation of the Subject::current
and Subject::callAs
APIs have been removed. The default implementation of these APIs is still supported.
The java.net.InetAddress
class has been updated to strictly accept IPv4 address literals in decimal quad notation. The InetAddress
class methods are updated to throw an java.net.UnknownHostException
for invalid IPv4 address literals. To disable this check, the new "jdk.net.allowAmbiguousIPAddressLiterals" system property can be set to "true".
Previous JDK releases used an incorrect interpretation of the Linux cgroups parameter "cpu.shares". This might cause the JVM to use fewer CPUs than available, leading to an under utilization of CPU resources when the JVM is used inside a container.
Starting from this JDK release, by default, the JVM no longer considers "cpu.shares" when deciding the number of threads to be used by the various thread pools. The -XX:+UseContainerCpuShares
command-line option can be used to revert to the previous behavior. This option is deprecated and may be removed in a future JDK release.
Deserialization of serialized method references to Object methods, which was using an interface as the type on which the method is invoked, can now be deserialized again. Note the classfiles need to be recompiled to allow the deserialization.
The following table lists the bug fixes included in the JDK 18.0.2 release:
# | JBS | Component | Subcomponent | Summary |
---|---|---|---|---|
1 | JDK-8285686 | client-libs | 2d | Update FreeType to 2.12.0 |
2 | JDK-8283217 | client-libs | 2d | Leak FcObjectSet in getFontConfigLocations() in fontpath.c |
3 | JDK-8284023 | client-libs | java.awt | java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo |
4 | JDK-8284033 | client-libs | java.awt | Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c |
5 | JDK-8278065 | core-libs | java.io:serialization | Refactor subclassAudits to use ClassValue |
6 | JDK-8285517 | core-libs | java.lang | System.getenv() returns unexpected value if environment variable has non ASCII character |
7 | JDK-8281168 | core-libs | java.lang.invoke | Micro-optimize VarForm.getMemberName for interpreter |
8 | JDK-8282444 | core-libs | java.lang.module | Module finder incorrectly assumes default file system path-separator character |
9 | JDK-8287162 | core-libs | java.nio | (zipfs) Performance regression related to support for POSIX file permissions |
10 | JDK-8286594 | core-libs | java.nio | (zipfs) Mention paths with dot elements in ZipException and cleanups |
11 | JDK-8285515 | core-libs | java.nio | (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4 |
12 | JDK-8282929 | core-libs | java.text | Localized monetary symbols are not reflected in `toLocalizedPattern` return value |
13 | JDK-8281615 | core-svc | debugger | Deadlock caused by jdwp agent |
14 | JDK-8284094 | core-svc | debugger | Memory leak in invoker_completeInvokeRequest() |
15 | JDK-8279219 | hotspot | compiler | [REDO] C2 crash when allocating array of size too large |
16 | JDK-8284848 | hotspot | compiler | C2: Compiler blackhole arguments should be treated as globally escaping |
17 | JDK-8280799 | hotspot | compiler | С2: assert(false) failed: cyclic dependency prevents range check elimination |
18 | JDK-8283451 | hotspot | compiler | C2: assert(_base == Long) failed: Not a Long |
19 | JDK-8282592 | hotspot | compiler | C2: assert(false) failed: graph should be schedulable |
20 | JDK-8282590 | hotspot | compiler | C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don't process dead nodes |
21 | JDK-8282312 | hotspot | compiler | Minor corrections to evbroadcasti32x4 intrinsic on x86 |
22 | JDK-8282194 | hotspot | compiler | C1: Missing side effects of dynamic constant linkage |
23 | JDK-8281811 | hotspot | compiler | assert(_base == Tuple) failed: Not a Tuple after JDK-8280799 |
24 | JDK-8256368 | hotspot | compiler | Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers |
25 | JDK-8283641 | hotspot | compiler | Large value for CompileThresholdScaling causes assert |
26 | JDK-8283408 | hotspot | compiler | Fix a C2 crash when filling arrays with unsafe |
27 | JDK-8280867 | hotspot | compiler | Cpuid1Ecx feature parsing is incorrect for AMD CPUs |
28 | JDK-8280600 | hotspot | compiler | C2: assert(!had_error) failed: bad dominance |
29 | JDK-8279668 | hotspot | compiler | x86: AVX2 versions of vpxor should be asserted |
30 | JDK-8275337 | hotspot | compiler | C1: assert(false) failed: live_in set of first block must be empty |
31 | JDK-8280901 | hotspot | compiler | MethodHandle::linkToNative stub is missing w/ -Xint |
32 | JDK-8282874 | hotspot | compiler | Bad performance on gather/scatter API caused by different IntSpecies of indexMap |
33 | JDK-8281266 | hotspot | compiler | [JVMCI] MetaUtil.toInternalName() doesn't handle hidden classes correctly |
34 | JDK-8279822 | hotspot | compiler | CI: Constant pool entries in error state are not supported |
35 | JDK-8282231 | hotspot | compiler | x86-32: runtime call to SharedRuntime::ldiv corrupts registers |
36 | JDK-8283555 | hotspot | gc | G1: Concurrent mark accesses uninitialized BOT of closed archive regions |
37 | JDK-8284532 | hotspot | jfr | Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler |
38 | JDK-8284549 | hotspot | jfr | JFR: FieldTable leaks FieldInfoTable member |
39 | JDK-8280476 | hotspot | runtime | [macOS] : hotspot arm64 bug exposed by latest clang |
40 | JDK-8282295 | hotspot | runtime | SymbolPropertyEntry::set_method_type fails with assert |
41 | JDK-8283469 | hotspot | runtime | Don't use memset to initialize members in FileMapInfo and fix memory leak |
42 | JDK-8281274 | hotspot | runtime | deal with ActiveProcessorCount in os::Linux::print_container_info |
43 | JDK-8283379 | hotspot | runtime | Memory leak in FileHeaderHelper |
44 | JDK-8281181 | hotspot | runtime | Do not use CPU Shares to compute active processor count |
45 | JDK-8283022 | security-libs | javax.crypto | com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java failing with -Xcomp after 8273297 |
46 | JDK-8274524 | security-libs | javax.net.ssl | SSLSocket.close() hangs if it is called during the ssl handshake |
47 | JDK-8286444 | tools | javac | javac errors after JDK-8251329 are not helpful enough to find root cause |
48 | JDK-8282080 | tools | javac | Lambda deserialization fails for Object method references on interfaces |
49 | JDK-8286855 | tools | javac | javac error on invalid jar should only print filename |