The following sections summarize changes made in all Java SE 11.0.17 BPR releases. The BPR releases are listed below in date order, most current BPR first. Note that bug fixes in previous BPRs are also included in the current BPR.
BugId | Category | Subcategory | Description |
---|---|---|---|
JDK-8293562 | core-libs | java.net | KeepAliveCache Blocks Threads while Closing Connections |
JDK-8296943 | tools | sun/net/www/http/HttpClient/MultiThreadTest Failing after KeepAliveCache Backport | |
JDK-8282958 | client-libs | javax.swing | Rendering Issues with Borders on Windows High-DPI systems |
BugId | Category | Subcategory | Description |
---|---|---|---|
JDK-8255716 | hotspot | runtime | JVM Crashes If Manually Offline a Core |
BugId | Category | Subcategory | Description |
---|---|---|---|
JDK-8291973 | install | install | Java RPMs Are Built with Older RPM and Thus Do Not Contain Some Necessary Hash |
JDK-8294357 | core-libs | java.time | (tz) Update Timezone Data to 2022d |
October 18, 2022
The full version string for this update release is 11.0.17+10 (where "+" means "build"). The version number is 11.0.17.
JDK 11.0.17 contains IANA time zone data 2022b, 2022c.
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 11.0.17 are specified in the following table:
JRE Family Version | JRE Security Baseline (Full Version String) |
---|---|
11 | 11.0.17+10 |
8 | 8u351-b10 |
7 | 7u361-b08 |
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 11.0.17) be used after the next critical patch update scheduled for January 17, 2023.
The default MAC algorithm used in a PKCS #12 keystore has been updated. The new algorithm is based on SHA-256 and is stronger than the old one based on SHA-1. See the security properties starting with keystore.pkcs12
in the java.security
file for detailed information.
The new SHA-256 based MAC algorithms were introduced in the 11.0.12, 8u301, and 7u311 JDK versions. Keystores created using this newer, stronger, MAC algorithm cannot be opened in JDK versions earlier than 11.0.12, 8u301, and 7u311. A 'java.security.NoSuchAlgorithmException' exception will be thrown in such circumstances.
For compatibility, use the keystore.pkcs12.legacy
system property, which will revert the algorithms to use the older, weaker algorithms. There is no value defined for this property.
It is now possible to monitor deserialization of objects using JDK Flight Recorder (JFR). When JFR is enabled and the JFR configuration includes deserialization events, JFR will emit an event whenever the running program attempts to deserialize an object. The deserialization event is named jdk.Deserialization
, and it is disabled by default. The deserialization event contains information that is used by the serialization filter mechanism; see the ObjectInputFilter specification. Additionally, if a filter is enabled, the JFR event indicates whether the filter accepted or rejected deserialization of the object. For further information about how to use the JFR deserialization event, see the article Monitoring Deserialization to Improve Application Security. For reference information about using and configuring JFR, see the JFR Runtime Guide and JFR Command Reference sections of the JDK Mission Control documentation.
JARs signed with SHA-1 algorithms are now restricted by default and treated as if they were unsigned. This applies to the algorithms used to digest, sign, and optionally timestamp the JAR. It also applies to the signature and digest algorithms of the certificates in the certificate chain of the code signer and the Timestamp Authority, and any CRLs or OCSP responses that are used to verify if those certificates have been revoked. These restrictions also apply to signed JCE providers.
To reduce the compatibility risk for JARs that have been previously timestamped, there is one exception to this policy:
This exception may be removed in a future JDK release. To determine if your signed JARs are affected by this change, run jarsigner -verify -verbose -certs
on the signed JAR, and look for instances of "SHA1" or "SHA-1" and "disabled" and a warning that the JAR will be treated as unsigned in the output.
For example:
- Signed by "CN="Signer""
Digest algorithm: SHA-1 (disabled)
Signature algorithm: SHA1withRSA (disabled), 2048-bit key
WARNING: The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled by the security property:
jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, DSA keySize < 1024, SHA1 denyAfter 2019-01-01
JARs affected by these new restrictions should be replaced or re-signed with stronger algorithms.
Users can, at their own risk, remove these restrictions by modifying the java.security
configuration file (or override it by using the java.security.properties
system property) and removing "SHA1 usage SignedJAR & denyAfter 2019-01-01" from the jdk.certpath.disabledAlgorithms
security property and "SHA1 denyAfter 2019-01-01" from the jdk.jar.disabledAlgorithms
security property.
The des3-hmac-sha1
and rc4-hmac
Kerberos encryption types (etypes) are now deprecated and disabled by default. Users can set allow_weak_crypto = true
in the krb5.conf
configuration file to re-enable them (along with other weak etypes including des-cbc-crc
and des-cbc-md5
) at their own risk. To disable a subset of the weak etypes, users can list preferred etypes explicitly in any of the default_tkt_enctypes
, default_tgs_enctypes
, or permitted_enctypes
settings.
Two system properties have been added which control the keep alive behavior of HttpURLConnection in the case where the server does not specify a keep alive time. Two properties are defined for controlling connections to servers and proxies separately. They are http.keepAlive.time.server
and http.keepAlive.time.proxy
respectively. More information about them can be found in Networking Properties.
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.
This version includes changes from 2022b that merged multiple regions that have the same timestamp data post-1970 into a single time zone data. All time zone IDs remain the same but the merged time zones will point to a shared zone data.
As a result, pre-1970 data may not be compatible with earlier JDK versions. The affected zones are Antarctica/Vostok, Asia/Brunei, Asia/Kuala_Lumpur, Atlantic/Reykjavik, Europe/Amsterdam, Europe/Copenhagen, Europe/Luxembourg, Europe/Monaco, Europe/Oslo, Europe/Stockholm, Indian/Christmas, Indian/Cocos, Indian/Kerguelen, Indian/Mahe, Indian/Reunion, Pacific/Chuuk, Pacific/Funafuti, Pacific/Majuro, Pacific/Pohnpei, Pacific/Wake, Pacific/Wallis, Arctic/Longyearbyen, Atlantic/Jan_Mayen, Iceland, Pacific/Ponape, Pacific/Truk, and Pacific/Yap.
For more details, refer to the announcement of 2022b.
A new system property named jdk.httpserver.maxConnections
has been introduced to allow users to configure the com.sun.net.httpserver.HttpServer
to limit the maximum number of open connections to the server at any given time. This system property takes an integer value and can be configured to be a positive integer. If the property is absent, set to 0, or a negative value, the server will not limit the number of open connections. By default, this system property is not set.
This release also contains fixes for security vulnerabilities described in the Oracle Critical Patch Update.
➜ Issues fixed in 11.0.17:
# | JBS | Component | Subcomponent | Summary |
---|---|---|---|---|
1 | JDK-8285686 | client-libs | 2d | Update FreeType to 2.12.0 |
2 | JDK-8289853 | client-libs | 2d | Update HarfBuzz to 4.4.1 |
3 | JDK-8290334 | client-libs | 2d | Update FreeType to 2.12.1 |
4 | JDK-8273506 | client-libs | java.awt | java Robot API did the 'm' keypress and caused /awt/event/KeyEvent/KeyCharTest/KeyCharTest.html is timing out on macOS 12 |
5 | JDK-8255439 | client-libs | java.awt | System Tray icons get corrupted when windows scaling changes |
6 | JDK-8231454 | client-libs | java.beans | File lock in Windows on a loaded jar due to a leak in Introspector::getBeanInfo |
7 | JDK-8261352 | client-libs | javax.accessibility | Create implementation for component peer for all the components who should be ignored in a11y interactions |
8 | JDK-8263420 | client-libs | javax.accessibility | Incorrect function name in NSAccessibilityStaticText native peer implementation |
9 | JDK-8262981 | client-libs | javax.accessibility | Create implementation for NSAccessibilitySlider protocol |
10 | JDK-8287740 | client-libs | javax.accessibility | NSAccessibilityShowMenuAction not working for text editors |
11 | JDK-8275071 | client-libs | javax.accessibility | [macos] A11y cursor gets stuck when combobox is closed |
12 | JDK-8274383 | client-libs | javax.accessibility | JNI call of getAccessibleSelection on a wrong thread |
13 | JDK-8267387 | client-libs | javax.accessibility | Create implementation for NSAccessibilityOutline protocol |
14 | JDK-8267388 | client-libs | javax.accessibility | Create implementation for NSAccessibilityTable protocol |
15 | JDK-8262031 | client-libs | javax.accessibility | Create implementation for NSAccessibilityNavigableStaticText protocol |
16 | JDK-8275809 | client-libs | javax.accessibility | crash in [CommonComponentAccessibility getCAccessible:withEnv:] |
17 | JDK-8273678 | client-libs | javax.accessibility | TableAccessibility and TableRowAccessibility miss autorelease |
18 | JDK-8271071 | client-libs | javax.accessibility | accessibility of a table on macOS lacks cell navigation |
19 | JDK-8267066 | client-libs | javax.accessibility | New NSAccessibility peers should return they roles and subroles directly |
20 | JDK-8275720 | client-libs | javax.accessibility | CommonComponentAccessibility.createWithParent isWrapped causes mem leak |
21 | JDK-8267385 | client-libs | javax.accessibility | Create NSAccessibilityElement implementation for JavaComponentAccessibility |
22 | JDK-8275819 | client-libs | javax.accessibility | [TableRowAccessibility accessibilityChildren] method is ineffective |
23 | JDK-8284690 | client-libs | javax.accessibility | [macos] VoiceOver : Getting java.lang.IllegalArgumentException: Invalid location on Editable JComboBox |
24 | JDK-8286266 | client-libs | javax.accessibility | [macos] Voice over moving JTable column to be the first column JVM crashes |
25 | JDK-8278609 | client-libs | javax.accessibility | [macos] accessibility frame is misplaced on a secondary monitor on macOS |
26 | JDK-8284014 | client-libs | javax.accessibility | Menu items with submenus in JPopupMenu are not spoken on macOS |
27 | JDK-8283383 | client-libs | javax.accessibility | [macos] a11y : Screen magnifier shows extra characters (0) at the end JButton accessibility name |
28 | JDK-8211795 | client-libs | javax.imageio | ArrayIndexOutOfBoundsException in PNGImageReader after JDK-6788458 |
29 | JDK-8256109 | client-libs | javax.swing | Create implementation for NSAccessibilityButton protocol |
30 | JDK-8256108 | client-libs | javax.swing | Create implementation for NSAccessibilityElement protocol peer |
31 | JDK-8256126 | client-libs | javax.swing | Create implementation for NSAccessibilityImage protocol peer |
32 | JDK-8256110 | client-libs | javax.swing | Create implementation for NSAccessibilityStepper protocol |
33 | JDK-8256111 | client-libs | javax.swing | Create implementation for NSAccessibilityStaticText protocol |
34 | JDK-8261350 | client-libs | javax.swing | Create implementation for NSAccessibilityCheckBox protocol peer |
35 | JDK-8261351 | client-libs | javax.swing | Create implementation for NSAccessibilityRadioButton protocol |
36 | JDK-8264299 | client-libs | javax.swing | Create implementation of native accessibility peer for ScrollPane and ScrollBar Java Accessibility roles |
37 | JDK-8264300 | client-libs | javax.swing | Create implementation for NSAccessibilityScrollBar protocol peer |
38 | JDK-8264290 | client-libs | javax.swing | Create implementation for NSAccessibilityComponentGroup protocol peer |
39 | JDK-8264304 | client-libs | javax.swing | Create implementation for NSAccessibilityToolbar protocol peer |
40 | JDK-8264302 | client-libs | javax.swing | Create implementation for Accessibility native peer for Splitpane java role |
41 | JDK-8264305 | client-libs | javax.swing | Create implementation for native accessibility peer for Statusbar java role |
42 | JDK-8264287 | client-libs | javax.swing | Create implementation for NSAccessibilityComboBox protocol peer |
43 | JDK-8264303 | client-libs | javax.swing | Create implementation for NSAccessibilityTabGroup protocol peer |
44 | JDK-8264297 | client-libs | javax.swing | Create implementation for NSAccessibilityProgressIndicator protocol peer |
45 | JDK-8264294 | client-libs | javax.swing | Create implementation for NSAccessibilityMenuBar protocol peer |
46 | JDK-8264298 | client-libs | javax.swing | Create implementation for NSAccessibilityRow protocol peer |
47 | JDK-8264286 | client-libs | javax.swing | Create implementation for NSAccessibilityColumn protocol peer |
48 | JDK-8264291 | client-libs | javax.swing | Create implementation for NSAccessibilityCell protocol peer |
49 | JDK-8264292 | client-libs | javax.swing | Create implementation for NSAccessibilityList protocol peer |
50 | JDK-8264293 | client-libs | javax.swing | Create implementation for NSAccessibilityMenu protocol peer |
51 | JDK-8264295 | client-libs | javax.swing | Create implementation for NSAccessibilityMenuItem protocol peer |
52 | JDK-8264296 | client-libs | javax.swing | Create implementation for NSAccessibilityPopUpButton protocol peer |
53 | JDK-8287917 | core-libs | java.lang:class_loading | System.loadLibrary does not work on Big Sur if JDK is built with macOS SDK 10.15 and earlier |
54 | JDK-8288769 | core-libs | java.util.jar | Revert unintentional change to deflate.c |
55 | JDK-8283277 | core-libs | java.util:i18n | ISO 4217 Amendment 171 Update |
56 | JDK-8289549 | core-libs | java.util:i18n | ISO 4217 Amendment 172 Update |
57 | JDK-8254001 | core-svc | [Metrics] Enhance parsing of cgroup interface files for version detection | |
58 | JDK-8276990 | core-svc | debugger | Memory leak in invoker.c fillInvokeRequest() during JDI operations |
59 | JDK-8281615 | core-svc | debugger | Deadlock caused by jdwp agent |
60 | JDK-8284094 | core-svc | debugger | Memory leak in invoker_completeInvokeRequest() |
61 | JDK-8208471 | core-svc | debugger | nsk/jdb/unwatch/unwatch002/unwatch002.java fails with "Prompt is not received during 300200 milliseconds" |
62 | JDK-8235385 | hotspot | compiler | Crash on aarch64 JDK due to long offset |
63 | JDK-8139046 | hotspot | compiler | Compiler Control: IGVPrintLevel directive should set PrintIdealGraph |
64 | JDK-8271567 | hotspot | compiler | AArch64: AES Galois CounterMode (GCM) interleaved implementation using vector instructions |
65 | JDK-8211100 | hotspot | compiler | hotspot C1 issue with comparing long numbers on x86 32-bit |
66 | JDK-8282467 | hotspot | compiler | add extra diagnostics for JDK-8268184 |
67 | JDK-8269517 | hotspot | compiler | compiler/loopopts/TestPartialPeelingSinkNodes.java crashes with -XX:+VerifyGraphEdges |
68 | JDK-8282555 | hotspot | compiler | Missing memory edge when spilling MoveF2I, MoveD2L etc |
69 | JDK-8284882 | hotspot | compiler | SIGSEGV in Node::verify_edges due to compilation bailout |
70 | JDK-8270090 | hotspot | compiler | C2: LCM may prioritize CheckCastPP nodes over projections |
71 | JDK-8285820 | hotspot | compiler | C2: LCM prioritizes locally dependent CreateEx nodes over projections after 8270090 |
72 | JDK-8288467 | hotspot | compiler | remove memory_operand assert for spilled instructions |
73 | JDK-8279622 | hotspot | compiler | C2: miscompilation of map pattern as a vector reduction |
74 | JDK-8286177 | hotspot | compiler | C2: "failed: non-reduction loop contains reduction nodes" assert failure |
75 | JDK-8284944 | hotspot | compiler | assert(cnt++ < 40) failed: infinite cycle in loop optimization |
76 | JDK-8287223 | hotspot | compiler | C1: Inlining attempt through MH::invokeBasic() with null receiver |
77 | JDK-8272736 | hotspot | compiler | [JVMCI] Add API for reading and writing JVMCI thread locals |
78 | JDK-8235870 | hotspot | compiler | C2 crashes in IdealLoopTree::est_loop_flow_merge_sz() |
79 | JDK-8271010 | hotspot | compiler | vmTestbase/gc/lock/malloc/malloclock04/TestDescription.java crashes intermittently |
80 | JDK-8288360 | hotspot | compiler | CI: ciInstanceKlass::implementor() is not consistent for well-known classes |
81 | JDK-8287432 | hotspot | compiler | C2: assert(tn->in(0) != __null) failed: must have live top node |
82 | JDK-8258946 | hotspot | compiler | Fix optimization-unstable code involving signed integer overflow |
83 | JDK-8286314 | hotspot | compiler | Trampoline not created for far runtime targets outside small CodeCache |
84 | JDK-8280799 | hotspot | compiler | С2: assert(false) failed: cyclic dependency prevents range check elimination |
85 | JDK-8288781 | hotspot | compiler | C1: LIR_OpVisitState::maxNumberOfOperands too small |
86 | JDK-8288865 | hotspot | compiler | [aarch64] LDR instructions must use legitimized addresses |
87 | JDK-8283441 | hotspot | compiler | C2: segmentation fault in ciMethodBlocks::make_block_at(int) |
88 | JDK-8265677 | hotspot | gc | CMS: CardTableBarrierSet::write_ref_array_work() lacks storestore barrier |
89 | JDK-8223575 | hotspot | gc | add subspace transitions to gc+metaspace=info log lines |
90 | JDK-8217170 | hotspot | gc | gc/arguments/TestUseCompressedOopsErgo.java timed out |
91 | JDK-8252359 | hotspot | runtime | HotSpot Not Identifying it is Running in a Container |
92 | JDK-8220658 | hotspot | runtime | Improve the readability of container information in the error log |
93 | JDK-8253797 | hotspot | runtime | [cgroups v2] Account for the fact that swap accounting is disabled on some systems |
94 | JDK-8254997 | hotspot | runtime | Remove unimplemented OSContainer::read_memory_limit_in_bytes |
95 | JDK-8281274 | hotspot | runtime | deal with ActiveProcessorCount in os::Linux::print_container_info |
96 | JDK-8283469 | hotspot | runtime | Don't use memset to initialize members in FileMapInfo and fix memory leak |
97 | JDK-8247354 | hotspot | runtime | AArch64: PopFrame causes assert(oopDesc::is_oop(obj)) failed: not an oop |
98 | JDK-8268773 | hotspot | runtime | Improvements related to: Failed to start thread - pthread_create failed (EAGAIN) |
99 | JDK-8289477 | hotspot | runtime | Memory corruption with CPU_ALLOC, CPU_FREE on muslc |
100 | JDK-8289799 | hotspot | runtime | Build warning in methodData.cpp memset zero-length parameter |
101 | JDK-8239559 | hotspot | runtime | Cgroups: Incorrect detection logic on some systems |
102 | JDK-8253435 | hotspot | runtime | Cgroup: 'stomping of _mount_path' crash if manually mounted cpusets exist |
103 | JDK-8239785 | hotspot | runtime | Cgroups: Incorrect detection logic on old systems in hotspot |
104 | JDK-8209414 | hotspot | svc | AArch64: method handle invocation does not respect JVMTI interp_only mode |
105 | JDK-8235220 | hotspot | svc-agent | ClhsdbScanOops.java fails with sun.jvm.hotspot.types.WrongTypeException |
106 | JDK-8186143 | security-libs | java.security | keytool -ext option doesn't accept wildcards for DNS subject alternative names |
107 | JDK-8263404 | security-libs | java.security | RsaPrivateKeySpec is always recognized as RSAPrivateCrtKeySpec in RSAKeyFactory.engineGetKeySpec |
108 | JDK-8275887 | security-libs | java.security | jarsigner prints invalid digest/signature algorithm warnings if keysize is weak/disabled |
109 | JDK-8281628 | security-libs | javax.crypto | KeyAgreement : generateSecret intermittently not resetting |
110 | JDK-8284694 | security-libs | javax.net.ssl | Avoid evaluating SSLAlgorithmConstraints twice |
111 | JDK-8286211 | security-libs | javax.smartcardio | Update PCSC-Lite for Suse Linux to 1.9.5 |
112 | JDK-8285398 | security-libs | jdk.security | Cache the results of constraint checks |
113 | JDK-8155701 | tools | javac | The compiler fails with an AssertionError: typeSig ERROR |
114 | JDK-8281316 | tools | javac | javac performance issues with large number of jars on classpath |
115 | JDK-8282214 | tools | javadoc(tool) | Upgrade JQuery to version 3.6.0 |
116 | JDK-8284367 | tools | javadoc(tool) | JQuery UI upgrade from 1.12.1 to 1.13.1 |
117 | JDK-8280373 | xml | avax.xml.parsers | Update Xalan serializer / SystemIDResolver to align with JDK-8270492 |
118 | JDK-8289486 | xml | jaxp | Improve XSLT XPath operators count efficiency |