java

JDK 11.0.17 Release Notes

Java SE 11.0.17 Based Bundled Patch Release (BPR) - Bug Fixes and Updates

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.

 

Changes in Java SE 11.0.17.0.3

Bug Fixes

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

 

Changes in Java SE 11.0.17.0.2

Bug Fixes

BugId Category Subcategory Description
JDK-8255716 hotspot runtime JVM Crashes If Manually Offline a Core

 

Changes in Java SE 11.0.17.0.1

Bug Fixes

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

Java™ SE Development Kit 11.0.17 (JDK 11.0.17)

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.

 

IANA TZ Data 2022b, 2022c

JDK 11.0.17 contains IANA time zone data 2022b, 2022c.

  • Chile's DST is delayed by a week in September 2022.
  • Iran no longer observes DST after 2022.
  • Rename Europe/Kiev to Europe/Kyiv.
  • New zic -R option
  • Vanguard form now uses %z.
  • Finish moving duplicate-since-1970 zones to 'backzone'.
  • New build option PACKRATLIST.
  • New tailored_tarballs target, replacing rearguard_tarballs.
  • Work around awk bug in FreeBSD, macOS, etc.
  • Improve tzselect on intercontinental Zones.
For more information, refer to Timezone Data Versions in the Java Runtime.

 

Security Baselines

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

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 11.0.17) be used after the next critical patch update scheduled for January 17, 2023.

 

New Features

security-libs/java.security
 Upgrade the Default PKCS12 MAC Algorithm (JDK-8267880)

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.

core-libs/java.io:serialization
 JDK Flight Recorder Event for Deserialization (JDK-8261160)

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.

 

Other Notes

security-libs/java.security
 Disabled SHA-1 Signed JARs (JDK-8269039)

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:

  • Any JAR signed with SHA-1 algorithms and timestamped prior to January 01, 2019 will not be restricted.

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.

security-libs/org.ietf.jgss:krb5
 Deprecate 3DES and RC4 in Kerberos (JDK-8139348)

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.

core-libs/java.net
 Make HttpURLConnection Default Keep Alive Timeout Configurable (JDK-8278067)

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.

hotspot/runtime
 CPU Shares Ignored When Computing Active Processor Count (JDK-8281181)

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.

core-libs/java.time
 Update Timezone Data to 2022c (JDK-8294042)

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.

core-libs/java.net
 New System Property to Limit the Number of Open Connections to com.sun.net.httpserver.HttpServer (JDK-8286918 (not public))

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.

 

Bug Fixes

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
1JDK-8285686client-libs2dUpdate FreeType to 2.12.0
2JDK-8289853client-libs2dUpdate HarfBuzz to 4.4.1
3JDK-8290334client-libs2dUpdate FreeType to 2.12.1
4JDK-8273506client-libsjava.awtjava Robot API did the 'm' keypress and caused /awt/event/KeyEvent/KeyCharTest/KeyCharTest.html is timing out on macOS 12
5JDK-8255439client-libsjava.awtSystem Tray icons get corrupted when windows scaling changes
6JDK-8231454client-libsjava.beansFile lock in Windows on a loaded jar due to a leak in Introspector::getBeanInfo
7JDK-8261352client-libsjavax.accessibilityCreate implementation for component peer for all the components who should be ignored in a11y interactions
8JDK-8263420client-libsjavax.accessibilityIncorrect function name in NSAccessibilityStaticText native peer implementation
9JDK-8262981client-libsjavax.accessibilityCreate implementation for NSAccessibilitySlider protocol
10JDK-8287740client-libsjavax.accessibilityNSAccessibilityShowMenuAction not working for text editors
11JDK-8275071client-libsjavax.accessibility[macos] A11y cursor gets stuck when combobox is closed
12JDK-8274383client-libsjavax.accessibilityJNI call of getAccessibleSelection on a wrong thread
13JDK-8267387client-libsjavax.accessibilityCreate implementation for NSAccessibilityOutline protocol
14JDK-8267388client-libsjavax.accessibilityCreate implementation for NSAccessibilityTable protocol
15JDK-8262031client-libsjavax.accessibilityCreate implementation for NSAccessibilityNavigableStaticText protocol
16JDK-8275809client-libsjavax.accessibilitycrash in [CommonComponentAccessibility getCAccessible:withEnv:]
17JDK-8273678client-libsjavax.accessibilityTableAccessibility and TableRowAccessibility miss autorelease
18JDK-8271071client-libsjavax.accessibilityaccessibility of a table on macOS lacks cell navigation
19JDK-8267066client-libsjavax.accessibilityNew NSAccessibility peers should return they roles and subroles directly
20JDK-8275720client-libsjavax.accessibilityCommonComponentAccessibility.createWithParent isWrapped causes mem leak
21JDK-8267385client-libsjavax.accessibilityCreate NSAccessibilityElement implementation for JavaComponentAccessibility
22JDK-8275819client-libsjavax.accessibility[TableRowAccessibility accessibilityChildren] method is ineffective
23JDK-8284690client-libsjavax.accessibility[macos] VoiceOver : Getting java.lang.IllegalArgumentException: Invalid location on Editable JComboBox
24JDK-8286266client-libsjavax.accessibility[macos] Voice over moving JTable column to be the first column JVM crashes
25JDK-8278609client-libsjavax.accessibility[macos] accessibility frame is misplaced on a secondary monitor on macOS
26JDK-8284014client-libsjavax.accessibilityMenu items with submenus in JPopupMenu are not spoken on macOS
27JDK-8283383client-libsjavax.accessibility[macos] a11y : Screen magnifier shows extra characters (0) at the end JButton accessibility name
28JDK-8211795client-libsjavax.imageioArrayIndexOutOfBoundsException in PNGImageReader after JDK-6788458
29JDK-8256109client-libsjavax.swingCreate implementation for NSAccessibilityButton protocol
30JDK-8256108client-libsjavax.swingCreate implementation for NSAccessibilityElement protocol peer
31JDK-8256126client-libsjavax.swingCreate implementation for NSAccessibilityImage protocol peer
32JDK-8256110client-libsjavax.swingCreate implementation for NSAccessibilityStepper protocol
33JDK-8256111client-libsjavax.swingCreate implementation for NSAccessibilityStaticText protocol
34JDK-8261350client-libsjavax.swingCreate implementation for NSAccessibilityCheckBox protocol peer
35JDK-8261351client-libsjavax.swingCreate implementation for NSAccessibilityRadioButton protocol
36JDK-8264299client-libsjavax.swingCreate implementation of native accessibility peer for ScrollPane and ScrollBar Java Accessibility roles
37JDK-8264300client-libsjavax.swingCreate implementation for NSAccessibilityScrollBar protocol peer
38JDK-8264290client-libsjavax.swingCreate implementation for NSAccessibilityComponentGroup protocol peer
39JDK-8264304client-libsjavax.swingCreate implementation for NSAccessibilityToolbar protocol peer
40JDK-8264302client-libsjavax.swingCreate implementation for Accessibility native peer for Splitpane java role
41JDK-8264305client-libsjavax.swingCreate implementation for native accessibility peer for Statusbar java role
42JDK-8264287client-libsjavax.swingCreate implementation for NSAccessibilityComboBox protocol peer
43JDK-8264303client-libsjavax.swingCreate implementation for NSAccessibilityTabGroup protocol peer
44JDK-8264297client-libsjavax.swingCreate implementation for NSAccessibilityProgressIndicator protocol peer
45JDK-8264294client-libsjavax.swingCreate implementation for NSAccessibilityMenuBar protocol peer
46JDK-8264298client-libsjavax.swingCreate implementation for NSAccessibilityRow protocol peer
47JDK-8264286client-libsjavax.swingCreate implementation for NSAccessibilityColumn protocol peer
48JDK-8264291client-libsjavax.swingCreate implementation for NSAccessibilityCell protocol peer
49JDK-8264292client-libsjavax.swingCreate implementation for NSAccessibilityList protocol peer
50JDK-8264293client-libsjavax.swingCreate implementation for NSAccessibilityMenu protocol peer
51JDK-8264295client-libsjavax.swingCreate implementation for NSAccessibilityMenuItem protocol peer
52JDK-8264296client-libsjavax.swingCreate implementation for NSAccessibilityPopUpButton protocol peer
53JDK-8287917core-libsjava.lang:class_loadingSystem.loadLibrary does not work on Big Sur if JDK is built with macOS SDK 10.15 and earlier
54JDK-8288769core-libsjava.util.jarRevert unintentional change to deflate.c
55JDK-8283277core-libsjava.util:i18nISO 4217 Amendment 171 Update
56JDK-8289549core-libsjava.util:i18nISO 4217 Amendment 172 Update
57JDK-8254001core-svc[Metrics] Enhance parsing of cgroup interface files for version detection
58JDK-8276990core-svcdebuggerMemory leak in invoker.c fillInvokeRequest() during JDI operations
59JDK-8281615core-svcdebuggerDeadlock caused by jdwp agent
60JDK-8284094core-svcdebuggerMemory leak in invoker_completeInvokeRequest()
61JDK-8208471core-svcdebuggernsk/jdb/unwatch/unwatch002/unwatch002.java fails with "Prompt is not received during 300200 milliseconds"
62JDK-8235385hotspotcompilerCrash on aarch64 JDK due to long offset
63JDK-8139046hotspotcompilerCompiler Control: IGVPrintLevel directive should set PrintIdealGraph
64JDK-8271567hotspotcompilerAArch64: AES Galois CounterMode (GCM) interleaved implementation using vector instructions
65JDK-8211100hotspotcompilerhotspot C1 issue with comparing long numbers on x86 32-bit
66JDK-8282467hotspotcompileradd extra diagnostics for JDK-8268184
67JDK-8269517hotspotcompilercompiler/loopopts/TestPartialPeelingSinkNodes.java crashes with -XX:+VerifyGraphEdges
68JDK-8282555hotspotcompilerMissing memory edge when spilling MoveF2I, MoveD2L etc
69JDK-8284882hotspotcompilerSIGSEGV in Node::verify_edges due to compilation bailout
70JDK-8270090hotspotcompilerC2: LCM may prioritize CheckCastPP nodes over projections
71JDK-8285820hotspotcompilerC2: LCM prioritizes locally dependent CreateEx nodes over projections after 8270090
72JDK-8288467hotspotcompilerremove memory_operand assert for spilled instructions
73JDK-8279622hotspotcompilerC2: miscompilation of map pattern as a vector reduction
74JDK-8286177hotspotcompilerC2: "failed: non-reduction loop contains reduction nodes" assert failure
75JDK-8284944hotspotcompilerassert(cnt++ < 40) failed: infinite cycle in loop optimization
76JDK-8287223hotspotcompilerC1: Inlining attempt through MH::invokeBasic() with null receiver
77JDK-8272736hotspotcompiler[JVMCI] Add API for reading and writing JVMCI thread locals
78JDK-8235870hotspotcompilerC2 crashes in IdealLoopTree::est_loop_flow_merge_sz()
79JDK-8271010hotspotcompilervmTestbase/gc/lock/malloc/malloclock04/TestDescription.java crashes intermittently
80JDK-8288360hotspotcompilerCI: ciInstanceKlass::implementor() is not consistent for well-known classes
81JDK-8287432hotspotcompilerC2: assert(tn->in(0) != __null) failed: must have live top node
82JDK-8258946hotspotcompilerFix optimization-unstable code involving signed integer overflow
83JDK-8286314hotspotcompilerTrampoline not created for far runtime targets outside small CodeCache
84JDK-8280799hotspotcompilerС2: assert(false) failed: cyclic dependency prevents range check elimination
85JDK-8288781hotspotcompilerC1: LIR_OpVisitState::maxNumberOfOperands too small
86JDK-8288865hotspotcompiler[aarch64] LDR instructions must use legitimized addresses
87JDK-8283441hotspotcompilerC2: segmentation fault in ciMethodBlocks::make_block_at(int)
88JDK-8265677hotspotgcCMS: CardTableBarrierSet::write_ref_array_work() lacks storestore barrier
89JDK-8223575hotspotgcadd subspace transitions to gc+metaspace=info log lines
90JDK-8217170hotspotgcgc/arguments/TestUseCompressedOopsErgo.java timed out
91JDK-8252359hotspotruntimeHotSpot Not Identifying it is Running in a Container
92JDK-8220658hotspotruntimeImprove the readability of container information in the error log
93JDK-8253797hotspotruntime[cgroups v2] Account for the fact that swap accounting is disabled on some systems
94JDK-8254997hotspotruntimeRemove unimplemented OSContainer::read_memory_limit_in_bytes
95JDK-8281274hotspotruntimedeal with ActiveProcessorCount in os::Linux::print_container_info
96JDK-8283469hotspotruntimeDon't use memset to initialize members in FileMapInfo and fix memory leak
97JDK-8247354hotspotruntimeAArch64: PopFrame causes assert(oopDesc::is_oop(obj)) failed: not an oop
98JDK-8268773hotspotruntimeImprovements related to: Failed to start thread - pthread_create failed (EAGAIN)
99JDK-8289477hotspotruntimeMemory corruption with CPU_ALLOC, CPU_FREE on muslc
100JDK-8289799hotspotruntimeBuild warning in methodData.cpp memset zero-length parameter
101JDK-8239559hotspotruntimeCgroups: Incorrect detection logic on some systems
102JDK-8253435hotspotruntimeCgroup: 'stomping of _mount_path' crash if manually mounted cpusets exist
103JDK-8239785hotspotruntimeCgroups: Incorrect detection logic on old systems in hotspot
104JDK-8209414hotspotsvcAArch64: method handle invocation does not respect JVMTI interp_only mode
105JDK-8235220hotspotsvc-agentClhsdbScanOops.java fails with sun.jvm.hotspot.types.WrongTypeException
106JDK-8186143security-libsjava.securitykeytool -ext option doesn't accept wildcards for DNS subject alternative names
107JDK-8263404security-libsjava.securityRsaPrivateKeySpec is always recognized as RSAPrivateCrtKeySpec in RSAKeyFactory.engineGetKeySpec
108JDK-8275887security-libsjava.securityjarsigner prints invalid digest/signature algorithm warnings if keysize is weak/disabled
109JDK-8281628security-libsjavax.cryptoKeyAgreement : generateSecret intermittently not resetting
110JDK-8284694security-libsjavax.net.sslAvoid evaluating SSLAlgorithmConstraints twice
111JDK-8286211security-libsjavax.smartcardioUpdate PCSC-Lite for Suse Linux to 1.9.5
112JDK-8285398security-libsjdk.securityCache the results of constraint checks
113JDK-8155701toolsjavacThe compiler fails with an AssertionError: typeSig ERROR
114JDK-8281316toolsjavacjavac performance issues with large number of jars on classpath
115JDK-8282214toolsjavadoc(tool)Upgrade JQuery to version 3.6.0
116JDK-8284367toolsjavadoc(tool)JQuery UI upgrade from 1.12.1 to 1.13.1
117JDK-8280373xmlavax.xml.parsersUpdate Xalan serializer / SystemIDResolver to align with JDK-8270492
118JDK-8289486xmljaxpImprove XSLT XPath operators count efficiency