Key: JDK-X - https://bugs.openjdk.java.net/browse/JDK-X CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release OpenJDK 17.0.5 (2022-10-18): =========================================== Live versions of these release notes can be found at: * https://bitly.com/openjdk1705 * https://builds.shipilev.net/backports-monitor/release-notes-17.0.5.html * Security fixes - JDK-8282252: Improve BigInteger/Decimal validation - JDK-8285662: Better permission resolution - JDK-8286077, CVE-2022-21618: Wider MultiByte conversions - JDK-8286511: Improve macro allocation - JDK-8286519: Better memory handling - JDK-8286526, CVE-2022-21619: Improve NTLM support - JDK-8286910, CVE-2022-21624: Improve JNDI lookups - JDK-8286918, CVE-2022-21628: Better HttpServer service - JDK-8287446: Enhance icon presentations - JDK-8288508: Enhance ECDSA usage - JDK-8289366, CVE-2022-39399: Improve HTTP/2 client usage - JDK-8289853: Update HarfBuzz to 4.4.1 - JDK-8290334: Update FreeType to 2.12.1 * Other changes - JDK-6782021: It is not possible to read local computer certificates with the SunMSCAPI provider - JDK-6854300: [TEST_BUG] java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java fails in jdk6u14 & jdk7 - JDK-7131823: bug in GIFImageReader - JDK-8017175: [TESTBUG] javax/swing/JPopupMenu/4634626/bug4634626.java sometimes failed on mac - JDK-8028265: Add legacy tz tests to OpenJDK - JDK-8028998: [TEST_BUG] [macosx] java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java failed - JDK-8079267: [TEST_BUG] Test java/awt/Frame/MiscUndecorated/RepaintTest.java fails - JDK-8159694: HiDPI, Unity, java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java - JDK-8169468: NoResizeEventOnDMChangeTest.java fails because FS Window didn't receive all resizes! - JDK-8172065: javax/swing/JTree/4908142/bug4908142.java The selected index should be "aad" - JDK-8178969: [TESTBUG] Wrong reporting of gc/g1/humongousObjects/TestHeapCounters test. - JDK-8211002: test/jdk/java/lang/Math/PowTests.java skips testing for non-corner-case values - JDK-8212096: javax/net/ssl/ServerName/SSLEngineExplorerMatchedSNI.java failed intermittently due to SSLException: Tag mismatch - JDK-8223543: [TESTBUG] Regression test java/awt/Graphics2D/DrawString/LCDTextSrcEa.java has issues - JDK-8225122: Test AncestorResized.java fails when Windows desktop is scaled. - JDK-8227651: Tests fail with SSLProtocolException: Input record too big - JDK-8240903: Add test to check that jmod hashes are reproducible - JDK-8254318: Remove .hgtags - JDK-8255724: [XRender] the BlitRotateClippedArea test fails on Linux in the XR pipeline - JDK-8256844: Make NMT late-initializable - JDK-8257534: misc tests failed with "NoClassDefFoundError: Could not initialize class java.util.concurrent.ThreadLocalRandom" - JDK-8264666: Change implementation of safeAdd/safeMult in the LCMSImageLayout class - JDK-8264792: The NumberFormat for locale sq_XK formats price incorrectly. - JDK-8265360: several compiler/whitebox tests fail with "private compiler.whitebox.SimpleTestCaseHelper(int) must be compiled" - JDK-8269039: Disable SHA-1 Signed JARs - JDK-8269556: sun/tools/jhsdb/JShellHeapDumpTest.java fails with RuntimeException 'JShellToolProvider' missing from stdout/stderr - JDK-8270090: C2: LCM may prioritize CheckCastPP nodes over projections - JDK-8270312: Error: Not a test or directory containing tests: java/awt/print/PrinterJob/XparColor.java - JDK-8271078: jdk/incubator/vector/Float128VectorTests.java failed a subtest - JDK-8271344: Windows product version issue - JDK-8272352: Java launcher can not parse Chinese character when system locale is set to UTF-8 - JDK-8272417: ZGC: fastdebug build crashes when printing ClassLoaderData - JDK-8272736: [JVMCI] Add API for reading and writing JVMCI thread locals - JDK-8272815: jpackage --type rpm produces an error: Invalid or unsupported type: [null] - JDK-8273040: Turning off JpAllowDowngrades (or Upgrades) - JDK-8273115: CountedLoopEndNode::stride_con crash in debug build with -XX:+TraceLoopOpts - JDK-8273506: java Robot API did the 'm' keypress and caused /awt/event/KeyEvent/KeyCharTest/KeyCharTest.html is timing out on macOS 12 - JDK-8274434: move os::get_default_process_handle and os::dll_lookup to os_posix for POSIX platforms - JDK-8274517: java/util/DoubleStreamSums/CompensatedSums.java fails with expected [true] but found [false] - JDK-8274597: Some of the dnd tests time out and fail intermittently - JDK-8274856: Failing jpackage tests with fastdebug/release build - JDK-8275689: [TESTBUG] Use color tolerance only for XRender in BlitRotateClippedArea test - JDK-8275887: jarsigner prints invalid digest/signature algorithm warnings if keysize is weak/disabled - JDK-8276546: [IR Framework] Whitelist and ignore CompileThreshold - JDK-8276837: [macos]: Error when signing the additional launcher - JDK-8277429: Conflicting jpackage static library name - JDK-8277493: [REDO] Quarantined jpackage apps are labeled as "damaged" - JDK-8278067: Make HttpURLConnection default keep alive timeout configurable - JDK-8278233: [macos] tools/jpackage tests timeout due to /usr/bin/osascript - JDK-8278311: Debian packaging doesn't work - JDK-8278609: [macos] accessibility frame is misplaced on a secondary monitor on macOS - JDK-8278612: [macos] test/jdk/java/awt/dnd/RemoveDropTargetCrashTest crashes with VoiceOver on macOS - JDK-8279032: compiler/loopopts/TestSkeletonPredicateNegation.java times out with -XX:TieredStopAtLevel < 4 - JDK-8279370: jdk.jpackage/share/native/applauncher/JvmLauncher.cpp fails to build with GCC 6.3.0 - JDK-8279622: C2: miscompilation of map pattern as a vector reduction - JDK-8280233: Temporarily disable Unix domain sockets in Windows PipeImpl - JDK-8280550: SplittableRandom#nextDouble(double,double) can return result >= bound - JDK-8280696: C2 compilation hits assert(is_dominator(c, n_ctrl)) failed - JDK-8280863: Update build README to reflect that MSYS2 is supported - JDK-8280913: Create a regression test for JRootPane.setDefaultButton() method - JDK-8280944: Enable Unix domain sockets in Windows Selector notification mechanism - JDK-8280950: RandomGenerator:NextDouble() default behavior non conformant after JDK-8280550 fix - JDK-8281181: Do not use CPU Shares to compute active processor count - JDK-8281183: RandomGenerator:NextDouble() default behavior partially fixed by JDK-8280950 - JDK-8281297: TestStressG1Humongous fails with guarantee(is_range_uncommitted) - JDK-8281535: Create a regression test for JDK-4670051 - JDK-8281569: Create tests for Frame.setMinimumSize() method - JDK-8281628: KeyAgreement : generateSecret intermittently not resetting - JDK-8281738: Create a regression test for checking the 'Space' key activation of focused Button - JDK-8281745: Create a regression test for JDK-4514331 - JDK-8281988: Create a regression test for JDK-4618767 - JDK-8282007: Assorted enhancements to jpackage testing framework - JDK-8282046: Create a regression test for JDK-8000326 - JDK-8282214: Upgrade JQuery to version 3.6.0 - JDK-8282234: Create a regression test for JDK-4532513 - JDK-8282280: Update Xerces to Version 2.12.2 - JDK-8282306: os::is_first_C_frame(frame*) crashes on invalid link access - JDK-8282343: Create a regression test for JDK-4518432 - JDK-8282351: jpackage does not work if class file has `$$` in the name on windows - JDK-8282407: Missing ')' in MacResources.properties - JDK-8282467: add extra diagnostics for JDK-8268184 - JDK-8282477: [x86, aarch64] vmassert(_last_Java_pc == NULL, "already walkable"); fails with async profiler - JDK-8282538: PKCS11 tests fail on CentOS Stream 9 - JDK-8282548: Create a regression test for JDK-4330998 - JDK-8282555: Missing memory edge when spilling MoveF2I, MoveD2L etc - JDK-8282640: Create a test for JDK-4740761 - JDK-8282778: Create a regression test for JDK-4699544 - JDK-8282789: Create a regression test for the JTree usecase of JDK-4618767 - JDK-8282860: Write a regression test for JDK-4164779 - JDK-8282933: Create a test for JDK-4529616 - JDK-8282936: Write a regression test for JDK-4615365 - JDK-8282937: Write a regression test for JDK-4820080 - JDK-8282947: JFR: Dump on shutdown live-locks in some conditions - JDK-8283015: Create a test for JDK-4715496 - JDK-8283087: Create a test or JDK-4715503 - JDK-8283245: Create a test for JDK-4670319 - JDK-8283277: ISO 4217 Amendment 171 Update - JDK-8283441: C2: segmentation fault in ciMethodBlocks::make_block_at(int) - JDK-8283457: [macos] libpng build failures with Xcode13.3 - JDK-8283493: Create an automated regression test for RFE 4231298 - JDK-8283507: Create a regression test for RFE 4287690 - JDK-8283562: JDK-8282306 breaks gtests on zero - JDK-8283597: [REDO] Invalid generic signature for redefined classes - JDK-8283621: Write a regression test for CCC4400728 - JDK-8283623: Create an automated regression test for JDK-4525475 - JDK-8283624: Create an automated regression test for RFE-4390885 - JDK-8283712: Create a manual test framework class - JDK-8283723: Update Visual Studio 2022 to version 17.1.0 for Oracle builds on Windows - JDK-8283803: Remove jtreg tag manual=yesno for java/awt/print/PrinterJob/PrintGlyphVectorTest.java and fix test - JDK-8283849: AsyncGetCallTrace may crash JVM on guarantee - JDK-8283903: GetContainerCpuLoad does not return the correct result in share mode - JDK-8283911: DEFAULT_PROMOTED_VERSION_PRE not reset to 'ea' for jdk-17.0.4 - JDK-8284014: Menu items with submenus in JPopupMenu are not spoken on macOS - JDK-8284067: jpackage'd launcher reports non-zero exit codes with error prompt - JDK-8284077: Create an automated test for JDK-4170173 - JDK-8284294: Create an automated regression test for RFE 4138746 - JDK-8284358: Unreachable loop is not removed from C2 IR, leading to a broken graph - JDK-8284367: JQuery UI upgrade from 1.12.1 to 1.13.1 - JDK-8284521: Write an automated regression test for RFE 4371575 - JDK-8284535: Fix PrintLatinCJKTest.java test that is failing with Parse Exception - JDK-8284675: "jpackage.exe" creates application launcher without Windows Application Manfiest - JDK-8284680: sun.font.FontConfigManager.getFontConfig() leaks charset - JDK-8284686: Interval of < 1 ms disables ExecutionSample events - JDK-8284694: Avoid evaluating SSLAlgorithmConstraints twice - JDK-8284883: JVM crash: guarantee(sect->end() <= sect->limit()) failed: sanity on AVX512 - JDK-8284898: Enhance PassFailJFrame - JDK-8284944: assert(cnt++ < 40) failed: infinite cycle in loop optimization - JDK-8284950: CgroupV1 detection code should consider memory.swappiness - JDK-8284956: Potential leak awtImageData/color_data when initializes X11GraphicsEnvironment - JDK-8284977: MetricsTesterCgroupV2.getLongValueEntryFromFile fails when named value doesn't exist - JDK-8285081: Improve XPath operators count accuracy - JDK-8285097: Duplicate XML keys in XPATHErrorResources.java and XSLTErrorResources.java - JDK-8285301: C2: assert(!requires_atomic_access) failed: can't ensure atomicity - JDK-8285380: Fix typos in security - JDK-8285398: Cache the results of constraint checks - JDK-8285617: Fix java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java manual test - JDK-8285693: Create an automated test for JDK-4702199 - JDK-8285696: AlgorithmConstraints:permits not throwing IllegalArgumentException when 'alg' is null - JDK-8285730: unify _WIN32_WINNT settings - JDK-8285820: C2: LCM prioritizes locally dependent CreateEx nodes over projections after 8270090 - JDK-8285923: [REDO] JDK-8285802 AArch64: Consistently handle offsets in MacroAssembler as 64-bit quantities - JDK-8286114: [test] show real exception in bomb call in sun/rmi/runtime/Log/checkLogging/CheckLogging.java - JDK-8286122: [macos]: App bundle cannot upload to Mac App Store due to info.plist embedded in java exe - JDK-8286177: C2: "failed: non-reduction loop contains reduction nodes" assert failure - JDK-8286211: Update PCSC-Lite for Suse Linux to 1.9.5 - JDK-8286266: [macos] Voice over moving JTable column to be the first column JVM crashes - JDK-8286277: CDS VerifyError when calling clone() on object array - JDK-8286314: Trampoline not created for far runtime targets outside small CodeCache - JDK-8286429: jpackageapplauncher build fails intermittently in Tier[45] - JDK-8286573: Remove the unnecessary method Attr#attribTopLevel and its usage - JDK-8286582: Build fails on macos aarch64 when using --with-zlib=bundled - JDK-8286625: C2 fails with assert(!n->is_Store() && !n->is_LoadStore()) failed: no node with a side effect - JDK-8286638: C2: CmpU needs to do more precise over/underflow analysis - JDK-8286869: unify os::dir_is_empty across posix platforms - JDK-8286870: Memory leak with RepeatCompilation - JDK-8287016: Bump update version for OpenJDK: jdk-17.0.5 - JDK-8287073: NPE from CgroupV2Subsystem.getInstance() - JDK-8287091: aarch64 : guarantee(val < (1ULL << nbits)) failed: Field too big for insn - JDK-8287107: CgroupSubsystemFactory.setCgroupV2Path asserts with freezer controller - JDK-8287113: JFR: Periodic task thread uses period for method sampling events - JDK-8287125: [macos] Multiple jpackage tests fail/timeout on same host - JDK-8287202: GHA: Add macOS aarch64 to the list of default platforms for workflow_dispatch event - JDK-8287223: C1: Inlining attempt through MH::invokeBasic() with null receiver - JDK-8287366: Improve test failure reporting in GHA - JDK-8287396: LIR_Opr::vreg_number() and data() can return negative number - JDK-8287432: C2: assert(tn->in(0) != __null) failed: must have live top node - JDK-8287463: JFR: Disable TestDevNull.java on Windows - JDK-8287663: Add a regression test for JDK-8287073 - JDK-8287672: jtreg test com/sun/jndi/ldap/LdapPoolTimeoutTest.java fails intermittently in nightly run - JDK-8287724: Fix various issues with msys2 - JDK-8287735: Provide separate event category for dll operations - JDK-8287741: Fix of JDK-8287107 (unused cgv1 freezer controller) was incomplete - JDK-8287824: The MTPerLineTransformValidation tests has a typo in the @run tag - JDK-8287895: Some langtools tests fail on msys2 - JDK-8287896: PropertiesTest.sh fail on msys2 - JDK-8287902: UnreadableRB case in MissingResourceCauseTest is not working reliably on Windows - JDK-8287906: Rewrite of GitHub Actions (GHA) sanity tests - JDK-8287917: System.loadLibrary does not work on Big Sur if JDK is built with macOS SDK 10.15 and earlier - JDK-8288000: compiler/loopopts/TestOverUnrolling2.java fails with release VMs - JDK-8288003: log events for os::dll_unload - JDK-8288303: C1: Miscompilation due to broken Class.getModifiers intrinsic - JDK-8288360: CI: ciInstanceKlass::implementor() is not consistent for well-known classes - JDK-8288399: MacOS debug symbol files not always deterministic in reproducible builds - JDK-8288467: remove memory_operand assert for spilled instructions - JDK-8288499: Restore cancel-in-progress in GHA - JDK-8288599: com/sun/management/OperatingSystemMXBean/TestTotalSwap.java: Expected total swap size ... but getTotalSwapSpaceSize returned ... - JDK-8288754: GCC 12 fails to build zReferenceProcessor.cpp - JDK-8288781: C1: LIR_OpVisitState::maxNumberOfOperands too small - JDK-8288985: P11TlsKeyMaterialGenerator should work with ChaCha20-Poly1305 - JDK-8288992: AArch64: CMN should be handled the same way as CMP - JDK-8289127: Apache Lucene triggers: DEBUG MESSAGE: duplicated predicate failed which is impossible - JDK-8289147: unify os::infinite_sleep on posix platforms - JDK-8289197: [17u] Push of backport of 8286177 did not remove assertion - JDK-8289471: Issue in Initialization of keys in ErrorMsg.java and XPATHErrorResources.java - JDK-8289477: Memory corruption with CPU_ALLOC, CPU_FREE on muslc - JDK-8289486: Improve XSLT XPath operators count efficiency - JDK-8289549: ISO 4217 Amendment 172 Update - JDK-8289569: [test] java/lang/ProcessBuilder/Basic.java fails on Alpine/musl - JDK-8289695: [TESTBUG] TestMemoryAwareness.java fails on cgroups v2 and crun - JDK-8289697: buffer overflow in MTLVertexCache.m: MTLVertexCache_AddGlyphQuad - JDK-8289799: Build warning in methodData.cpp memset zero-length parameter - JDK-8289856: [PPC64] SIGSEGV in C2Compiler::init_c2_runtime() after JDK-8289060 - JDK-8289910: unify os::message_box across posix platforms - JDK-8290000: Bump macOS GitHub actions to macOS 11 - JDK-8290004: [PPC64] JfrGetCallTrace: assert(_pc != nullptr) failed: must have PC - JDK-8290020: Deadlock in leakprofiler::emit_events during shutdown - JDK-8290082: [PPC64] ZGC C2 load barrier stub needs to preserve vector registers - JDK-8290246: test fails "assert(init != __null) failed: initialization not found" - JDK-8290417: CDS cannot archive lamda proxy with useImplMethodHandle - JDK-8290456: remove os::print_statistics() - JDK-8291595: [17u] Delete files missed in backport of 8269039 - JDK-8291633: Build failures with GCC 11, Alpine 3 due to incompatible casts from nullptr - JDK-8292579: (tz) Update Timezone Data to 2022c - JDK-8295056: [17u] Remove designator DEFAULT_PROMOTED_VERSION_PRE=ea for release 17.0.5 Notes on individual issues: =========================== core-libs/java.net: JDK-8278067: Make HttpURLConnection Default Keep Alive Timeout Configurable =========================================================================== 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` * `http.keepAlive.time.proxy` respectively. More information about them can be found on the Networking Properties page: https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/net/doc-files/net-properties.html. security-libs/javax.crypto: JDK-6782021: Windows KeyStore Updated to Include Access to the Local Machine Location ===================================================================================== The Windows KeyStore support in the SunMSCAPI provider has been expanded to include access to the local machine location. The new keystore types are: * "Windows-MY-LOCALMACHINE" * "Windows-ROOT-LOCALMACHINE" The following keystore types were also added, allowing developers to make it clear they map to the current user: * "Windows-MY-CURRENTUSER" (same as "Windows-MY") * "Windows-ROOT-CURRENTUSER" (same as "Windows-ROOT") JDK-8286918: Better HttpServer service ====================================== The HttpServer can be optionally configured with a maximum connection limit by setting the jdk.httpserver.maxConnections system property. A value of 0 or a negative integer is ignored and considered to represent no connection limit. In the case of a positive integer value, any newly accepted connections will be first checked against the current count of established connections and, if the configured limit has been reached, then the newly accepted connection will be closed immediately. hotspot/runtime: JDK-8281181: CPU Shares Ignored When Computing Active Processor Count ===================================================================== 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. security-libs/java.security: JDK-8269039: Disabled SHA-1 Signed JARs ======================================= 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. New in release OpenJDK 17.0.4.1 (2022-08-16): =========================================== Live versions of these release notes can be found at: * https://bit.ly/openjdk17041 * https://builds.shipilev.net/backports-monitor/release-notes-17.0.4.1.txt * Other changes - JDK-8292258: Bump update version for OpenJDK: jdk-17.0.4.1 - JDK-8292260: [BACKOUT] JDK-8279219: [REDO] C2 crash when allocating array of size too large Notes on individual issues: =========================== hotspot/compiler: JDK-8292396: C2 Compilation Errors Unpredictably Crashes JVM ============================================================ Fixes a regression in the C2 JIT compiler which caused the Java Runtime to crash unpredictably. New in release OpenJDK 17.0.4 (2022-07-19): =========================================== Live versions of these release notes can be found at: * https://bitly.com/openjdk1704 * https://builds.shipilev.net/backports-monitor/release-notes-17.0.4.txt * Security fixes - JDK-8272243: Improve DER parsing - JDK-8272249: Better properties of loaded Properties - JDK-8273056, JDK-8283875, CVE-2022-21549: java.util.random does not correctly sample exponential or Gaussian distributions - JDK-8277608: Address IP Addressing - JDK-8281859, CVE-2022-21540: Improve class compilation - JDK-8281866, CVE-2022-21541: Enhance MethodHandle invocations - JDK-8283190: Improve MIDI processing - JDK-8284370: Improve zlib usage - JDK-8285407, CVE-2022-34169: Improve Xalan supports * Other changes - JDK-8139173: [macosx] JInternalFrame shadow is not properly drawn - JDK-8181571: printing to CUPS fails on mac sandbox app - JDK-8193682: Infinite loop in ZipOutputStream.close() - JDK-8206187: javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java fails with Port already in use - JDK-8209776: Refactor jdk/security/JavaDotSecurity/ifdefs.sh to plain java test - JDK-8214733: runtime/8176717/TestInheritFD.java timed out - JDK-8236136: tests which use CompilationMode shouldn't be run w/ TieredStopAtLevel - JDK-8240756: [macos] SwingSet2:TableDemo:Printed Japanese characters were garbled - JDK-8249592: Robot.mouseMove moves cursor to incorrect location when display scale varies and Java runs in DPI Unaware mode - JDK-8251904: vmTestbase/nsk/sysdict/vm/stress/btree/btree010/btree010.java fails with ClassNotFoundException: nsk.sysdict.share.BTree0LLRLRLRRLR - JDK-8255266: Update Public Suffix List to 3c213aa - JDK-8256368: Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers - JDK-8258814: Compilation logging crashes for thread suspension / debugging tests - JDK-8263461: jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java uses wrong mechanism to cause evacuation failure - JDK-8263538: SharedArchiveConsistency.java should test -Xshare:auto as well - JDK-8264605: vmTestbase/nsk/jvmti/SuspendThread/suspendthrd003/TestDescription.java failed with "agent_tools.cpp, 471: (foundThread = (jthread) jni_env->NewGlobalRef(foundThread)) != NULL" - JDK-8265261: java/nio/file/Files/InterruptCopy.java fails with java.lang.RuntimeException: Copy was not interrupted - JDK-8265317: [vector] assert(payload->is_object()) failed: expected 'object' value for scalar-replaced boxed vector but got: NULL - JDK-8267163: Rename anonymous loader tests to hidden loader tests - JDK-8268231: Aarch64: Use Ldp in intrinsics for String.compareTo - JDK-8268558: [TESTBUG] Case 2 in TestP11KeyFactoryGetRSAKeySpec is skipped - JDK-8268595: java/io/Serializable/serialFilter/GlobalFilterTest.java#id1 failed in timeout - JDK-8268773: Improvements related to: Failed to start thread - pthread_create failed (EAGAIN) - JDK-8268906: gc/g1/mixedgc/TestOldGenCollectionUsage.java assumes that GCs take 1ms minimum - JDK-8269077: TestSystemGC uses "require vm.gc.G1" for large pages subtest - JDK-8269129: Multiple tier1 tests in hotspot/jtreg/compiler are failing for client VMs - JDK-8269135: TestDifferentProtectionDomains runs into timeout in client VM - JDK-8269373: some tests in jdk/tools/launcher/ fails on localized Windows platform - JDK-8269753: Misplaced caret in PatternSyntaxException's detail message - JDK-8269933: test/jdk/javax/net/ssl/compatibility/JdkInfo incorrect verification of protocol and cipher support - JDK-8270021: Incorrect log decorators in gc/g1/plab/TestPLABEvacuationFailure.java - JDK-8270336: [TESTBUG] Fix initialization in NonbranchyTree - JDK-8270435: UT: MonitorUsedDeflationThresholdTest failed: did not find too_many string in output - JDK-8270468: TestRangeCheckEliminated fails because methods are not compiled - JDK-8270797: ShortECDSA.java test is not complete - JDK-8270837: fix typos in test TestSigParse.java - JDK-8271008: appcds/*/MethodHandlesAsCollectorTest.java tests time out because of excessive GC (CodeCache GC Threshold) in loom - JDK-8271055: Crash during deoptimization with "assert(bb->is_reachable()) failed: getting result from unreachable basicblock" with -XX:+VerifyStack - JDK-8271224: runtime/EnclosingMethodAttr/EnclMethodAttr.java doesn't check exit code - JDK-8271302: Regex Test Refresh - JDK-8272146: Disable Fibonacci test on memory constrained systems - JDK-8272168: some hotspot runtime/logging tests don't check exit code - JDK-8272169: runtime/logging/LoaderConstraintsTest.java doesn't build test.Empty - JDK-8272358: Some tests may fail when executed with other locales than the US - JDK-8272493: Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2 - JDK-8272908: Missing coverage for certain classes in com.sun.org.apache.xml.internal.security - JDK-8272964: java/nio/file/Files/InterruptCopy.java fails with java.lang.RuntimeException: Copy was not interrupted - JDK-8273095: vmTestbase/vm/mlvm/anonloader/stress/oome/heap/Test.java fails with "wrong OOME" - JDK-8273139: C2: assert(f <= 1 && f >= 0) failed: Incorrect frequency - JDK-8273142: Remove dependancy of TestHttpServer, HttpTransaction, HttpCallback from open/test/jdk/sun/net/www/protocol/http/ tests - JDK-8273169: java/util/regex/NegativeArraySize.java failed after JDK-8271302 - JDK-8273804: Platform.isTieredSupported should handle the no-compiler case - JDK-8274172: Convert JavadocTester to use NIO - JDK-8274233: Minor cleanup for ToolBox - JDK-8274244: ReportOnImportedModuleAnnotation.java fails on rerun - JDK-8274561: sun/net/ftp/TestFtpTimeValue.java timed out on slow machines - JDK-8274687: JDWP deadlocks if some Java thread reaches wait in blockOnDebuggerSuspend - JDK-8274735: javax.imageio.IIOException: Unsupported Image Type while processing a valid JPEG image - JDK-8274751: Drag And Drop hangs on Windows - JDK-8274855: vectorapi tests failing with assert(!vbox->is_Phi()) failed - JDK-8274939: Incorrect size of the pixel storage is used by the robot on macOS - JDK-8274983: C1 optimizes the invocation of private interface methods - JDK-8275037: Test vmTestbase/nsk/sysdict/vm/stress/btree/btree011/btree011.java crashes with memory exhaustion on Windows - JDK-8275337: C1: assert(false) failed: live_in set of first block must be empty - JDK-8275638: GraphKit::combine_exception_states fails with "matching stack sizes" assert - JDK-8275745: Reproducible copyright headers - JDK-8275830: C2: Receiver downcast is missing when inlining through method handle linkers - JDK-8275854: C2: assert(stride_con != 0) failed: missed some peephole opt - JDK-8276260: (se) Remove java/nio/channels/Selector/Wakeup.java from ProblemList (win) - JDK-8276657: XSLT compiler tries to define a class with empty name - JDK-8276796: gc/TestSystemGC.java large pages subtest fails with ZGC - JDK-8276825: hotspot/runtime/SelectionResolution test errors - JDK-8276863: Remove test/jdk/sun/security/ec/ECDSAJavaVerify.java - JDK-8276880: Remove java/lang/RuntimeTests/exec/ExecWithDir as unnecessary - JDK-8276990: Memory leak in invoker.c fillInvokeRequest() during JDI operations - JDK-8277055: Assert "missing inlining msg" with -XX:+PrintIntrinsics - JDK-8277072: ObjectStreamClass caches keep ClassLoaders alive - JDK-8277087: ZipException: zip END header not found at ZipFile#Source.findEND - JDK-8277123: jdeps does not report some exceptions correctly - JDK-8277165: jdeps --multi-release --print-module-deps fails if module-info.class in different versioned directories - JDK-8277166: Data race in jdeps VersionHelper - JDK-8277396: [TESTBUG] In DefaultButtonModelCrashTest.java, frame is accessed from main thread - JDK-8277422: tools/jar/JarEntryTime.java fails with modified time mismatch - JDK-8277893: Arraycopy stress tests - JDK-8277906: Incorrect type for IV phi of long counted loops after CCP - JDK-8277922: Unable to click JCheckBox in JTable through Java Access Bridge - JDK-8278014: [vectorapi] Remove test run script - JDK-8278065: Refactor subclassAudits to use ClassValue - JDK-8278186: org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method - JDK-8278472: Invalid value set to CANDIDATEFORM structure - JDK-8278519: serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java failed "assert(handle != __null) failed: JNI handle should not be null" - JDK-8278549: UNIX sun/font coding misses SUSE distro detection on recent distro SUSE 15 - JDK-8278766: Enable OpenJDK build support for reproducible jars and jmods using --date - JDK-8278794: Infinite loop in DeflaterOutputStream.finish() - JDK-8278796: Incorrect behavior of FloatVector.withLane on X86 - JDK-8278851: Correct signer logic for jars signed with multiple digestalgs - JDK-8278948: compiler/vectorapi/reshape/TestVectorCastAVX1.java crashes in assembler - JDK-8278966: two microbenchmarks tests fail "assert(!jvms->method()->has_exception_handlers()) failed: no exception handler expected" after JDK-8275638 - JDK-8279182: MakeZipReproducible ZipEntry timestamps not localized to UTC - JDK-8279219: [REDO] C2 crash when allocating array of size too large - JDK-8279227: Access Bridge: Wrong frame position and hit test result on HiDPI display - JDK-8279356: Method linking fails with guarantee(mh->adapter() != NULL) failed: Adapter blob must already exist! - JDK-8279437: [JVMCI] exception in HotSpotJVMCIRuntime.translate can exit the VM - JDK-8279515: C1: No inlining through invokedynamic and invokestatic call sites when resolved class is not linked - JDK-8279520: SPNEGO has not passed channel binding info into the underlying mechanism - JDK-8279529: ProblemList java/nio/channels/DatagramChannel/ManySourcesAndTargets.java on macosx-aarch64 - JDK-8279532: ProblemList sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java - JDK-8279560: AArch64: generate_compare_long_string_same_encoding and LARGE_LOOP_PREFETCH alignment - JDK-8279586: [macos] custom JCheckBox and JRadioBox with custom icon set: focus is still displayed after unchecking - JDK-8279597: [TESTBUG] ReturnBlobToWrongHeapTest.java fails with -XX:TieredStopAtLevel=1 on machines with many cores - JDK-8279668: x86: AVX2 versions of vpxor should be asserted - JDK-8279822: CI: Constant pool entries in error state are not supported - JDK-8279834: Alpine Linux fails to build when --with-source-date enabled - JDK-8279837: C2: assert(is_Loop()) failed: invalid node class: Region - JDK-8279842: HTTPS Channel Binding support for Java GSS/Kerberos - JDK-8279958: Provide configure hints for Alpine/apk package managers - JDK-8280004: DCmdArgument::parse_value() should handle NULL input - JDK-8280041: Retry loop issues in java.io.ClassCache - JDK-8280123: C2: Infinite loop in CMoveINode::Ideal during IGVN - JDK-8280401: [sspi] gss_accept_sec_context leaves output_token uninitialized - JDK-8280476: [macOS] : hotspot arm64 bug exposed by latest clang - JDK-8280543: Update the "java" and "jcmd" tool specification for CDS - JDK-8280593: [PPC64, S390] redundant allocation of MacroAssembler in StubGenerator ctor - JDK-8280600: C2: assert(!had_error) failed: bad dominance - JDK-8280684: JfrRecorderService failes with guarantee(num_written > 0) when no space left on device. - JDK-8280799: С2: assert(false) failed: cyclic dependency prevents range check elimination - JDK-8280867: Cpuid1Ecx feature parsing is incorrect for AMD CPUs - JDK-8280901: MethodHandle::linkToNative stub is missing w/ -Xint - JDK-8280940: gtest os.release_multi_mappings_vm is racy - JDK-8280941: os::print_memory_mappings() prints segment preceeding the inclusion range - JDK-8280956: Re-examine copyright headers on files in src/java.desktop/macosx/native/libawt_lwawt/awt/a11y - JDK-8280964: [Linux aarch64] : drawImage dithers TYPE_BYTE_INDEXED images incorrectly - JDK-8281043: Intrinsify recursive ObjectMonitor locking for PPC64 - JDK-8281168: Micro-optimize VarForm.getMemberName for interpreter - JDK-8281262: Windows builds in different directories are not fully reproducible - JDK-8281266: [JVMCI] MetaUtil.toInternalName() doesn't handle hidden classes correctly - JDK-8281274: deal with ActiveProcessorCount in os::Linux::print_container_info - JDK-8281275: Upgrading from 8 to 11 no longer accepts '/' as filepath separator in gc paths - JDK-8281318: Improve jfr/event/allocation tests reliability - JDK-8281338: NSAccessibilityPressAction action for tree node and NSAccessibilityShowMenuAcgtion action not working - JDK-8281450: Remove unnecessary operator new and delete from ObjectMonitor - JDK-8281522: Rename ADLC classes which have the same name as hotspot variants - JDK-8281544: assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/ - JDK-8281615: Deadlock caused by jdwp agent - JDK-8281638: jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions - JDK-8281771: Crash in java_lang_invoke_MethodType::print_signature - JDK-8281811: assert(_base == Tuple) failed: Not a Tuple after JDK-8280799 - JDK-8281822: Test failures on non-DTrace builds due to incomplete DTrace* flags handling - JDK-8282008: Incorrect handling of quoted arguments in ProcessBuilder - JDK-8282045: When loop strip mining fails, safepoints are removed from loop anyway - JDK-8282142: [TestCase] compiler/inlining/ResolvedClassTest.java will fail when --with-jvm-features=-compiler1 - JDK-8282170: JVMTI SetBreakpoint metaspace allocation test - JDK-8282172: CompileBroker::log_metaspace_failure is called from non-Java/compiler threads - JDK-8282225: GHA: Allow one concurrent run per PR only - JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers - JDK-8282293: Domain value for system property jdk.https.negotiate.cbt should be case-insensitive - JDK-8282295: SymbolPropertyEntry::set_method_type fails with assert - JDK-8282312: Minor corrections to evbroadcasti32x4 intrinsic on x86 - JDK-8282345: handle latest VS2022 in abstract_vm_version - JDK-8282382: Report glibc malloc tunables in error reports - JDK-8282422: JTable.print() failed with UnsupportedCharsetException on AIX ko_KR locale - JDK-8282444: Module finder incorrectly assumes default file system path-separator character - JDK-8282499: Bump update version for OpenJDK: jdk-17.0.4 - JDK-8282509: [exploded image] ResolvedClassTest fails with similar output - JDK-8282551: Properly initialize L32X64MixRandom state - JDK-8282583: Update BCEL md to include the copyright notice - JDK-8282590: C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don't process dead nodes - JDK-8282592: C2: assert(false) failed: graph should be schedulable - JDK-8282628: Potential memory leak in sun.font.FontConfigManager.getFontConfig() - JDK-8282874: Bad performance on gather/scatter API caused by different IntSpecies of indexMap - JDK-8282887: Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows - JDK-8282929: Localized monetary symbols are not reflected in `toLocalizedPattern` return value - JDK-8283017: GHA: Workflows break with update release versions - JDK-8283187: C2: loop candidate for superword not always unrolled fully if superword fails - JDK-8283217: Leak FcObjectSet in getFontConfigLocations() in fontpath.c - JDK-8283249: CompressedClassPointers.java fails on ppc with 'Narrow klass shift: 0' missing - JDK-8283279: [Testbug] Improve TestGetSwapSpaceSize - JDK-8283315: jrt-fs.jar not always deterministically built - JDK-8283323: libharfbuzz optimization level results in extreme build times - JDK-8283347: [macos] Bad JNI lookup accessibilityHitTest is shown when Screen magnifier is enabled - JDK-8283350: (tz) Update Timezone Data to 2022a - JDK-8283408: Fix a C2 crash when filling arrays with unsafe - JDK-8283422: Create a new test for JDK-8254790 - JDK-8283451: C2: assert(_base == Long) failed: Not a Long - JDK-8283469: Don't use memset to initialize members in FileMapInfo and fix memory leak - JDK-8283497: [windows] print TMP and TEMP in hs_err and VM.info - JDK-8283641: Large value for CompileThresholdScaling causes assert - JDK-8283725: Launching java with "-Xlog:gc*=trace,safepoint*=trace,class*=trace" crashes the JVM - JDK-8283834: Unmappable character for US-ASCII encoding in TestPredicateInputBelowLoopPredicate - JDK-8284023: java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo - JDK-8284033: Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c - JDK-8284094: Memory leak in invoker_completeInvokeRequest() - JDK-8284369: TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4 - JDK-8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer - JDK-8284437: Building from different users/workspace is not always deterministic - JDK-8284458: CodeHeapState::aggregate() leaks blob_name - JDK-8284507: GHA: Only check test results if testing was not skipped - JDK-8284532: Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler - JDK-8284549: JFR: FieldTable leaks FieldInfoTable member - JDK-8284603: [17u] Update Boot JDK used in GHA to 17.0.2 - JDK-8284620: CodeBuffer may leak _overflow_arena - JDK-8284622: Update versions of some Github Actions used in JDK workflow - JDK-8284661: Reproducible assembly builds without relative linking - JDK-8284754: print more interesting env variables in hs_err and VM.info - JDK-8284758: [linux] improve print_container_info - JDK-8284848: C2: Compiler blackhole arguments should be treated as globally escaping - JDK-8284866: Add test to JDK-8273056 - JDK-8284884: Replace polling with waiting in javax/swing/text/html/parser/Parser/8078268/bug8078268.java - JDK-8284992: Fix misleading Vector API doc for LSHR operator - JDK-8285342: Zero build failure with clang due to values not handled in switch - JDK-8285394: Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id() - JDK-8285397: JNI exception pending in CUPSfuncs.c:250 - JDK-8285445: cannot open file "NUL:" - JDK-8285515: (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4 - JDK-8285523: Improve test java/io/FileOutputStream/OpenNUL.java - JDK-8285686: Update FreeType to 2.12.0 - JDK-8285726: [11u, 17u] Unify fix for JDK-8284548 with version from head - JDK-8285727: [11u, 17u] Unify fix for JDK-8284920 with version from head - JDK-8285728: Alpine Linux build fails with busybox tar - JDK-8285828: runtime/execstack/TestCheckJDK.java fails with zipped debug symbols - JDK-8285921: serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine - JDK-8285956: (fs) Excessive default poll interval in PollingWatchService - JDK-8286013: Incorrect test configurations for compiler/stable/TestStableShort.java - JDK-8286029: Add classpath exemption to globals_vectorApiSupport_***.S.inc - JDK-8286198: [linux] Fix process-memory information - JDK-8286293: Tests ShortResponseBody and ShortResponseBodyWithRetry should use less resources - JDK-8286444: javac errors after JDK-8251329 are not helpful enough to find root cause - JDK-8286594: (zipfs) Mention paths with dot elements in ZipException and cleanups - JDK-8286601: Mac Aarch: Excessive warnings to be ignored for build jdk - JDK-8286855: javac error on invalid jar should only print filename - JDK-8287109: Distrust.java failed with CertificateExpiredException - JDK-8287119: Add Distrust.java to ProblemList - JDK-8287162: (zipfs) Performance regression related to support for POSIX file permissions - JDK-8287336: GHA: Workflows break on patch versions - JDK-8287362: FieldAccessWatch testcase failed on AIX platform - JDK-8287378: GHA: Update cygwin to fix issues in langtools tests on Windows Notes on individual issues: =========================== core-libs/java.net: JDK-8285240: HTTPS Channel Binding support for Java GSS/Kerberos ================================================================ Support has been added for TLS channel binding tokens for Negotiate/Kerberos authentication over HTTPS through javax.net.HttpsURLConnection. Channel binding tokens are increasingly required as an enhanced form of security which can mitigate certain kinds of socially engineered, man in the middle (MITM) attacks. They work by communicating from a client to a server the client's understanding of the binding between connection security (as represented by a TLS server cert) and higher level authentication credentials (such as a username and password). The server can then detect if the client has been fooled by a MITM and shutdown the session/connection. The feature is controlled through a new system property `jdk.https.negotiate.cbt` which is described fully at the following page: https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/net/doc-files/net-properties.html#jdk.https.negotiate.cbt core-libs/java.lang: JDK-8283137: Incorrect handling of quoted arguments in ProcessBuilder ===================================================================== ProcessBuilder on Windows is restored to address a regression caused by JDK-8250568. Previously, an argument to ProcessBuilder that started with a double-quote and ended with a backslash followed by a double-quote was passed to a command incorrectly and may cause the command to fail. For example the argument `"C:\\Program Files\"`, would be seen by the command with extra double-quotes. This update restores the long standing behavior that does not treat the backslash before the final double-quote specially. core-libs/java.util.jar: JDK-8278386: Default JDK compressor will be closed when IOException is encountered ================================================================================== `DeflaterOutputStream.close()` and `GZIPOutputStream.finish()` methods have been modified to close out the associated default JDK compressor before propagating a Throwable up the stack. `ZIPOutputStream.closeEntry()` method has been modified to close out the associated default JDK compressor before propagating an IOException, not of type ZipException, up the stack. core-libs/java.io: JDK-8285660: New System Property to Disable Windows Alternate Data Stream Support in java.io.File ================================================================================================= The Windows implementation of `java.io.File` allows access to NTFS Alternate Data Streams (ADS) by default. Such streams have a structure like “filename:streamname”. A system property `jdk.io.File.enableADS` has been added to control this behavior. To disable ADS support in `java.io.File`, the system property `jdk.io.File.enableADS` should be set to `false` (case ignored). Stricter path checking however prevents the use of special devices such as `NUL:` New in release OpenJDK 17.0.3 (2022-04-19): =========================================== Live versions of these release notes can be found at: * https://bitly.com/openjdk1703 * https://builds.shipilev.net/backports-monitor/release-notes-17.0.3.txt * Security fixes - JDK-8269938: Enhance XML processing passes redux - JDK-8270504, CVE-2022-21426: Better XPath expression handling - JDK-8272255: Completely handle MIDI files - JDK-8272261: Improve JFR recording file processing - JDK-8272588: Enhanced recording parsing - JDK-8272594: Better record of recordings - JDK-8274221: More definite BER encodings - JDK-8275082, JDK-8278008, CVE-2022-21476: Update XML Security for Java to 2.3.0 - JDK-8275151, CVE-2022-21443: Improved Object Identification - JDK-8277227: Better identification of OIDs - JDK-8277233, CVE-2022-21449: Improve ECDSA signature support - JDK-8277672, CVE-2022-21434: Better invocation handler handling - JDK-8278356: Improve file creation - JDK-8278449: Improve keychain support - JDK-8278798: Improve supported intrinsic - JDK-8278805: Enhance BMP image loading - JDK-8278972, CVE-2022-21496: Improve URL supports - JDK-8281388: Change wrapping of EncryptedPrivateKeyInfo * Other changes - JDK-8177814: jdk/editpad is not in jdk TEST.groups - JDK-8186670: Implement _onSpinWait() intrinsic for AArch64 - JDK-8190748: java/text/Format/DateFormat/DateFormatTest.java and NonGregorianFormatTest fail intermittently - JDK-8225559: assertion error at TransTypes.visitApply - JDK-8236505: Mark jdk/editpad/EditPadTest.java as @headful - JDK-8239502: [TEST_BUG] Test javax/swing/text/FlowView/6318524/bug6318524.java never fails - JDK-8244602: Add JTREG_REPEAT_COUNT to repeat execution of a test - JDK-8247980: Exclusive execution of java/util/stream tests slows down tier1 - JDK-8251216: Implement MD5 intrinsics on AArch64 - JDK-8253197: vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java fails with "ERROR: DebuggeeSleepingThread: ThreadDeath lost" - JDK-8262134: compiler/uncommontrap/TestDeoptOOM.java failed with "guarantee(false) failed: wrong number of expression stack elements during deopt" - JDK-8263567: gtests don't terminate the VM safely - JDK-8265150: AsyncGetCallTrace crashes on ResourceMark - JDK-8266490: Extend the OSContainer API to support the pids controller of cgroups - JDK-8269032: Stringdedup tests are failing if the ergonomically select GC does not support it - JDK-8269037: jsig/Testjsig.java doesn't have to be restricted to linux only - JDK-8269087: CheckSegmentedCodeCache test fails in an emulated-client VM - JDK-8269175: [macosx-aarch64] wrong CPU speed in hs_err file - JDK-8269206: A small typo in comment in test/lib/sun/hotspot/WhiteBox.java - JDK-8269523: runtime/Safepoint/TestAbortOnVMOperationTimeout.java failed when expecting 'VM operation took too long' - JDK-8269616: serviceability/dcmd/framework/VMVersionTest.java fails with Address already in use error - JDK-8269849: vmTestbase/gc/gctests/PhantomReference/phantom002/TestDescription.java failed with "OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects" - JDK-8270117: Broken jtreg link in "Building the JDK" page - JDK-8270874: JFrame paint artifacts when dragged from standard monitor to HiDPI monitor - JDK-8271056: C2: "assert(no_dead_loop) failed: dead loop detected" due to cmoving identity - JDK-8271199: Mutual TLS handshake fails signing client certificate with custom sensitive PKCS11 key - JDK-8271202: C1: assert(false) failed: live_in set of first block must be empty - JDK-8271506: Add ResourceHashtable support for deleting selected entries - JDK-8271721: Split gc/g1/TestMixedGCLiveThreshold into separate tests - JDK-8272167: AbsPathsInImage.java should skip *.dSYM directories - JDK-8272327: Shenandoah: Avoid enqueuing duplicate string candidates - JDK-8272398: Update DockerTestUtils.buildJdkDockerImage() - JDK-8272541: Incorrect overflow test in Toom-Cook branch of BigInteger multiplication - JDK-8272553: several hotspot runtime/CommandLine tests don't check exit code - JDK-8272600: (test) Use native "sleep" in Basic.java - JDK-8272866: java.util.random package summary contains incorrect mixing function in table - JDK-8272996: JNDI DNS provider fails to resolve SRV entries when IPV6 stack is enabled - JDK-8273162: AbstractSplittableWithBrineGenerator does not create a random salt - JDK-8273277: C2: Move conditional negation into rc_predicate - JDK-8273341: Update Siphash to version 1.0 - JDK-8273351: bad tag in jdk.random module-info.java - JDK-8273366: [testbug] javax/swing/UIDefaults/6302464/bug6302464.java fails on macOS12 - JDK-8273381: Assert in PtrQueueBufferAllocatorTest.stress_free_list_allocator_vm - JDK-8273387: remove some unreferenced gtk-related functions - JDK-8273433: Enable parallelism in vmTestbase_nsk_sysdict tests - JDK-8273438: Enable parallelism in vmTestbase/metaspace/stressHierarchy tests - JDK-8273526: Extend the OSContainer API pids controller with pids.current - JDK-8273634: [TEST_BUG] Improve javax/swing/text/ParagraphView/6364882/bug6364882.java - JDK-8273655: content-types.properties files are missing some common types - JDK-8273682: Upgrade Jline to 3.20.0 - JDK-8273704: DrawStringWithInfiniteXform.java failed : drawString with InfiniteXform transform takes long time - JDK-8273895: compiler/ciReplay/TestVMNoCompLevel.java fails due to wrong data size with TieredStopAtLevel=2,3 - JDK-8273933: [TESTBUG] Test must run without preallocated exceptions - JDK-8273967: gtest os.dll_address_to_function_and_library_name_vm fails on macOS12 - JDK-8273972: Multi-core choke point in CMM engine (LCMSTransform.doTransform) - JDK-8274130: C2: MulNode::Ideal chained transformations may act on wrong nodes - JDK-8274171: java/nio/file/Files/probeContentType/Basic.java failed on "Content type" mismatches - JDK-8274465: Fix javax/swing/text/ParagraphView/6364882/bug6364882.java failures - JDK-8274471: Add support for RSASSA-PSS in OCSP Response - JDK-8274506: TestPids.java and TestPidsLimit.java fail with podman run as root - JDK-8274524: SSLSocket.close() hangs if it is called during the ssl handshake - JDK-8274562: (fs) UserDefinedFileAttributeView doesn't correctly determine if supported when using OverlayFS - JDK-8274658: ISO 4217 Amendment 170 Update - JDK-8274714: Incorrect verifier protected access error message - JDK-8274750: java/io/File/GetXSpace.java failed: '/dev': 191488 != 190976 - JDK-8274753: ZGC: SEGV in MetaspaceShared::link_shared_classes - JDK-8274795: AArch64: avoid spilling and restoring r18 in macro assembler - JDK-8274935: dumptime_table has stale entry - JDK-8274944: AppCDS dump causes SEGV in VM thread while adjusting lambda proxy class info - JDK-8275326: C2: assert(no_dead_loop) failed: dead loop detected - JDK-8275330: C2: assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions - JDK-8275536: Add test to check that File::lastModified returns same time stamp as Files.getLastModifiedTime - JDK-8275586: Zero: Simplify interpreter initialization - JDK-8275608: runtime/Metaspace/elastic/TestMetaspaceAllocationMT2 too slow - JDK-8275610: C2: Object field load floats above its null check resulting in a segfault - JDK-8275643: C2's unaryOp vector intrinsic does not properly handle LongVector.neg - JDK-8275645: [JVMCI] avoid unaligned volatile reads on AArch64 - JDK-8275650: Problemlist java/io/File/createTempFile/SpecialTempFile.java for Windows 11 - JDK-8275687: runtime/CommandLine/PrintTouchedMethods test shouldn't catch RuntimeException - JDK-8275800: Redefinition leaks MethodData::_extra_data_lock - JDK-8275847: Scheduling fails with "too many D-U pinch points" on small method - JDK-8275874: [JVMCI] only support aligned reads in c2v_readFieldValue - JDK-8276057: Update JMH devkit to 1.33 - JDK-8276141: XPathFactory set/getProperty method - JDK-8276177: nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption failed with "assert(def_ik->is_being_redefined()) failed: should be being redefined to get here" - JDK-8276314: [JVMCI] check alignment of call displacement during code installation - JDK-8276623: JDK-8275650 accidentally pushed "out" file - JDK-8276654: element-list order is non deterministic - JDK-8276662: Scalability bottleneck in SymbolTable::lookup_common() - JDK-8276764: Enable deterministic file content ordering for Jar and Jmod - JDK-8276766: Enable jar and jmod to produce deterministic timestamped content - JDK-8276841: Add support for Visual Studio 2022 - JDK-8277069: [REDO] JDK-8276743 Make openjdk build Zip Archive generation "reproducible" - JDK-8277137: Set OnSpinWaitInst/OnSpinWaitInstCount defaults to "isb"/1 for Arm Neoverse N1 - JDK-8277180: Intrinsify recursive ObjectMonitor locking for C2 x64 and A64 - JDK-8277299: STACK_OVERFLOW in Java_sun_awt_shell_Win32ShellFolder2_getIconBits - JDK-8277328: jdk/jshell/CommandCompletionTest.java failures on Windows - JDK-8277342: vmTestbase/nsk/stress/strace/strace004.java fails with SIGSEGV in InstanceKlass::jni_id_for - JDK-8277383: VM.metaspace optionally show chunk freelist details - JDK-8277385: Zero: Enable CompactStrings support - JDK-8277441: CompileQueue::add fails with assert(_last->next() == __null) failed: not last - JDK-8277447: Hotspot C1 compiler crashes on Kotlin suspend fun with loop - JDK-8277449: compiler/vectorapi/TestLongVectorNeg.java fails with release VMs - JDK-8277488: Add expiry exception for Digicert (geotrustglobalca) expiring in May 2022 - JDK-8277497: Last column cell in the JTable row is read as empty cell - JDK-8277503: compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java failed with "OnSpinWaitInst with the expected value 'isb' not found." - JDK-8277762: Allow configuration of HOTSPOT_BUILD_USER - JDK-8277777: [Vector API] assert(r->is_XMMRegister()) failed: must be in x86_32.ad - JDK-8277795: ldap connection timeout not honoured under contention - JDK-8277846: Implement fast-path for ASCII-compatible CharsetEncoders on ppc64 - JDK-8277919: OldObjectSample event causing bloat in the class constant pool in JFR recording - JDK-8277992: Add fast jdk_svc subtests to jdk:tier3 - JDK-8278016: Add compiler tests to tier{2,3} - JDK-8278020: ~13% variation in Renaissance-Scrabble - JDK-8278080: Add --with-cacerts-src='user cacerts folder' to enable deterministic cacerts generation - JDK-8278099: two sun/security/pkcs11/Signature tests failed with AssertionError - JDK-8278104: C1 should support the compiler directive 'BreakAtExecute' - JDK-8278115: gc/stress/gclocker/TestGCLockerWithSerial.java has duplicate -Xmx - JDK-8278116: runtime/modules/LoadUnloadModuleStress.java has duplicate -Xmx - JDK-8278163: --with-cacerts-src variable resolved after GenerateCacerts recipe setup - JDK-8278172: java/nio/channels/FileChannel/BlockDeviceSize.java should only run on Linux - JDK-8278185: Custom JRE cannot find non-ASCII named module inside - JDK-8278239: vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine failed with EXCEPTION_ACCESS_VIOLATION at 0x000000000000000d - JDK-8278241: Implement JVM SpinPause on linux-aarch64 - JDK-8278309: [windows] use of uninitialized OSThread::_state - JDK-8278344: sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output - JDK-8278346: java/nio/file/Files/probeContentType/Basic.java fails on Linux SLES15 machine - JDK-8278381: [GCC 11] Address::make_raw() does not initialize rspec - JDK-8278384: Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT - JDK-8278389: SuspendibleThreadSet::_suspend_all should be volatile/atomic - JDK-8278526: [macos] Screen reader reads SwingSet2 JTable row selection as null, dimmed row for last column - JDK-8278604: SwingSet2 table demo does not have accessible description set for images - JDK-8278627: Shenandoah: TestHeapDump test failed - JDK-8278758: runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134 - JDK-8278822: Bump update version for OpenJDK: jdk-17.0.3 - JDK-8278824: Uneven work distribution when scanning heap roots in G1 - JDK-8278871: [JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob - JDK-8278951: containers/cgroup/PlainRead.java fails on Ubuntu 21.10 - JDK-8278987: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in __write_sample_info__ - JDK-8279011: JFR: JfrChunkWriter incorrectly handles int64_t chunk size as size_t - JDK-8279076: C2: Bad AD file when matching SqrtF with UseSSE=0 - JDK-8279124: VM does not handle SIGQUIT during initialization - JDK-8279225: [arm32] C1 longs comparison operation destroys argument registers - JDK-8279300: [arm32] SIGILL when running GetObjectSizeIntrinsicsTest - JDK-8279379: GHA: Print tests that are in error - JDK-8279385: [test] Adjust sun/security/pkcs12/KeytoolOpensslInteropTest.java after 8278344 - JDK-8279412: [JVMCI] failed speculations list must outlive any nmethod that refers to it - JDK-8279445: Update JMH devkit to 1.34 - JDK-8279453: Disable tools/jar/ReproducibleJar.java on 32-bit platforms - JDK-8279505: Update documentation for RETRY_COUNT and REPEAT_COUNT - JDK-8279669: test/jdk/com/sun/jdi/TestScaffold.java uses wrong condition - JDK-8279695: [TESTBUG] modify compiler/loopopts/TestSkeletonPredicateNegation.java to run on C1 also - JDK-8279702: [macosx] ignore xcodebuild warnings on M1 - JDK-8279833: Loop optimization issue in String.encodeUTF8_UTF16 - JDK-8279924: [PPC64, s390] implement frame::is_interpreted_frame_valid checks - JDK-8279998: PPC64 debug builds fail with "untested: RangeCheckStub: predicate_failed_trap_id" - JDK-8280002: jmap -histo may leak stream - JDK-8280155: [PPC64, s390] frame size checks are not yet correct - JDK-8280373: Update Xalan serializer / SystemIDResolver to align with JDK-8270492 - JDK-8280414: Memory leak in DefaultProxySelector - JDK-8280526: x86_32 Math.sqrt performance regression with -XX:UseSSE={0,1} - JDK-8281061: [s390] JFR runs into assertions while validating interpreter frames - JDK-8281460: Let ObjectMonitor have its own NMT category - JDK-8282219: jdk/java/lang/ProcessBuilder/Basic.java fails on AIX - JDK-8282300: Throws NamingException instead of InvalidNameException after JDK-8278972 - JDK-8282397: createTempFile method of java.io.File is failing when called with suffix of spaces character - JDK-8282761: XPathFactoryImpl remove setProperty and getProperty methods - JDK-8284548: Invalid XPath expression causes StringIndexOutOfBoundsException - JDK-8284920: Incorrect Token type causes XPath expression to return empty result Notes on individual issues: =========================== security-libs/java.security: JDK-8274791: Support for RSASSA-PSS in OCSP Response ==================================================== An OCSP response signed with the RSASSA-PSS algorithm is now supported. New in release OpenJDK 17.0.2 (2022-01-18): =========================================== Live versions of these release notes can be found at: * https://bitly.com/openjdk1702 * https://builds.shipilev.net/backports-monitor/release-notes-17.0.2.txt * Security fixes - JDK-8251329: (zipfs) Files.walkFileTree walks infinitely if zip has dir named "." inside - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization - JDK-8268488: More valuable DerValues - JDK-8268494: Better inlining of inlined interfaces - JDK-8268512: More content for ContentInfo - JDK-8268813, CVE-2022-21283: Better String matching - JDK-8269151: Better construction of EncryptedPrivateKeyInfo - JDK-8269944: Better HTTP transport redux - JDK-8270386, CVE-2022-21291: Better verification of scan methods - JDK-8270392, CVE-2022-21293: Improve String constructions - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps - JDK-8270492, CVE-2022-21282: Better resolution of URIs - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities - JDK-8270952, CVE-2022-21277: Improve TIFF file handling - JDK-8271962: Better TrueType font loading - JDK-8271968: Better canonical naming - JDK-8271987: Manifest improved manifest entries - JDK-8272014, CVE-2022-21305: Better array indexing - JDK-8272026, CVE-2022-21340: Verify Jar Verification - JDK-8272236, CVE-2022-21341: Improve serial forms for transport - JDK-8272272: Enhance jcmd communication - JDK-8272462: Enhance image handling - JDK-8273290: Enhance sound handling - JDK-8273756, CVE-2022-21360: Enhance BMP image support - JDK-8273838, CVE-2022-21365: Enhanced BMP processing - JDK-8274096, CVE-2022-21366: Improve decoding of image files * Other changes - JDK-4819544: SwingSet2 JTable Demo throws NullPointerException - JDK-8137101: [TEST_BUG] javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java failure due to timing - JDK-8140241: (fc) Data transfer from FileChannel to itself causes hang in case of overlap - JDK-8174819: java/nio/file/WatchService/LotsOfEvents.java fails intermittently - JDK-8190753: (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative initial size for ByteArrayOutputStream - JDK-8214761: Bug in parallel Kahan summation implementation - JDK-8223923: C2: Missing interference with mismatched unsafe accesses - JDK-8233020: (fs) UnixFileSystemProvider should use StaticProperty.userDir(). - JDK-8238649: Call new Win32 API SetThreadDescription in os::set_native_thread_name - JDK-8244675: assert(IncrementalInline || (_late_inlines.length() == 0 && !has_mh_late_inlines())) - JDK-8261236: C2: ClhsdbJstackXcompStress test fails when StressGCM is enabled - JDK-8261579: AArch64: Support for weaker memory ordering in Atomic - JDK-8262031: Create implementation for NSAccessibilityNavigableStaticText protocol - JDK-8262095: NPE in Flow$FlowAnalyzer.visitApply: Cannot invoke getThrownTypes because tree.meth.type is null - JDK-8263059: security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java fails due to revoked cert - JDK-8263364: sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java wedged in getInputStream - JDK-8263375: Support stack watermarks in Zero VM - JDK-8263773: Reenable German localization for builds at Oracle - JDK-8264286: Create implementation for NSAccessibilityColumn protocol peer - JDK-8264287: Create implementation for NSAccessibilityComboBox protocol peer - JDK-8264291: Create implementation for NSAccessibilityCell protocol peer - JDK-8264292: Create implementation for NSAccessibilityList protocol peer - JDK-8264293: Create implementation for NSAccessibilityMenu protocol peer - JDK-8264294: Create implementation for NSAccessibilityMenuBar protocol peer - JDK-8264295: Create implementation for NSAccessibilityMenuItem protocol peer - JDK-8264296: Create implementation for NSAccessibilityPopUpButton protocol peer - JDK-8264297: Create implementation for NSAccessibilityProgressIndicator protocol peer - JDK-8264298: Create implementation for NSAccessibilityRow protocol peer - JDK-8264303: Create implementation for NSAccessibilityTabGroup protocol peer - JDK-8266239: Some duplicated javac command-line options have repeated effect - JDK-8266510: Nimbus JTree default tree cell renderer does not use selected text color - JDK-8266988: compiler/jvmci/compilerToVM/IsMatureTest.java fails with Unexpected isMature state for multiple times invoked method: expected false to equal true - JDK-8267256: Extend minimal retry for loopback connections on Windows to PlainSocketImpl - JDK-8267385: Create NSAccessibilityElement implementation for JavaComponentAccessibility - JDK-8267387: Create implementation for NSAccessibilityOutline protocol - JDK-8267388: Create implementation for NSAccessibilityTable protocol - JDK-8268284: javax/swing/JComponent/7154030/bug7154030.java fails with "Exception: Failed to hide opaque button" - JDK-8268294: Reusing HttpClient in a WebSocket.Listener hangs. - JDK-8268361: Fix the infinite loop in next_line - JDK-8268457: XML Transformer outputs Unicode supplementary character incorrectly to HTML - JDK-8268464: Remove dependancy of TestHttpsServer, HttpTransaction, HttpCallback from open/test/jdk/sun/net/www/protocol/https/ tests - JDK-8268626: Remove native pre-jdk9 support for jtreg failure handler - JDK-8268860: Windows-Aarch64 build is failing in GitHub actions - JDK-8268882: C2: assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc - JDK-8268885: duplicate checkcast when destination type is not first type of intersection type - JDK-8268893: jcmd to trim the glibc heap - JDK-8268894: forged ASTs can provoke an AIOOBE at com.sun.tools.javac.jvm.ClassWriter::writePosition - JDK-8268927: Windows: link error: unresolved external symbol "int __cdecl convert_to_unicode(char const *,wchar_t * *)" - JDK-8269031: linux x86_64 check for binutils 2.25 or higher after 8265783 - JDK-8269113: Javac throws when compiling switch (null) - JDK-8269216: Useless initialization in com/sun/crypto/provider/PBES2Parameters.java - JDK-8269269: [macos11] SystemIconTest fails with ClassCastException - JDK-8269280: (bf) Replace StringBuffer in *Buffer.toString() - JDK-8269481: SctpMultiChannel never releases own file descriptor - JDK-8269637: javax/swing/JFileChooser/FileSystemView/SystemIconTest.java fails on windows - JDK-8269656: The test test/langtools/tools/javac/versions/Versions.java has duplicate test cycles - JDK-8269687: pauth_aarch64.hpp include name is incorrect - JDK-8269850: Most JDK releases report macOS version 12 as 10.16 instead of 12.0 - JDK-8269924: Shenandoah: Introduce weak/strong marking asserts - JDK-8269951: [macos] Focus not painted in JButton when setBorderPainted(false) is invoked - JDK-8270110: Shenandoah: Add test for JDK-8269661 - JDK-8270116: Expand ButtonGroupLayoutTraversalTest.java to run in all LaFs, including Aqua on macOS - JDK-8270171: Shenandoah: Cleanup TestStringDedup and TestStringDedupStress tests - JDK-8270290: NTLM authentication fails if HEAD request is used - JDK-8270317: Large Allocation in CipherSuite - JDK-8270320: JDK-8270110 committed invalid copyright headers - JDK-8270517: Add Zero support for LoongArch - JDK-8270533: AArch64: size_fits_all_mem_uses should return false if its output is a CAS - JDK-8270886: Crash in PhaseIdealLoop::verify_strip_mined_scheduling - JDK-8270893: IndexOutOfBoundsException while reading large TIFF file - JDK-8270901: Typo PHASE_CPP in CompilerPhaseType - JDK-8270946: X509CertImpl.getFingerprint should not return the empty String - JDK-8271071: accessibility of a table on macOS lacks cell navigation - JDK-8271121: ZGC: stack overflow (segv) when -Xlog:gc+start=debug - JDK-8271142: package help is not displayed for missing X11/extensions/Xrandr.h - JDK-8271170: Add unit test for what jpackage app launcher puts in the environment - JDK-8271215: Fix data races in G1PeriodicGCTask - JDK-8271254: javac generates unreachable code when using empty semicolon statement - JDK-8271287: jdk/jshell/CommandCompletionTest.java fails with "lists don't have the same size expected" - JDK-8271308: (fc) FileChannel.transferTo() transfers no more than Integer.MAX_VALUE bytes in one call - JDK-8271315: Redo: Nimbus JTree renderer properties persist across L&F changes - JDK-8271323: [TESTBUG] serviceability/sa/ClhsdbCDSCore.java fails with -XX:TieredStopAtLevel=1 - JDK-8271340: Crash PhaseIdealLoop::clone_outer_loop - JDK-8271341: Opcode() != Op_If && Opcode() != Op_RangeCheck) || outcnt() == 2 assert failure with Test7179138_1.java - JDK-8271459: C2: Missing NegativeArraySizeException when creating StringBuilder with negative capacity - JDK-8271463: Updating RE Configs for Upcoming CPU Release 17.0.2 on master branch for jdk17u-cpu and jdk17u-cpu-open repos. - JDK-8271490: [ppc] [s390]: Crash in JavaThread::pd_get_top_frame_for_profiling - JDK-8271560: sun/security/ssl/DHKeyExchange/LegacyDHEKeyExchange.java still fails due to "An established connection was aborted by the software in your host machine" - JDK-8271567: AArch64: AES Galois CounterMode (GCM) interleaved implementation using vector instructions - JDK-8271600: C2: CheckCastPP which should closely follow Allocate is sunk of a loop - JDK-8271605: Update JMH devkit to 1.32 - JDK-8271718: Crash when during color transformation the color profile is replaced - JDK-8271722: [TESTBUG] gc/g1/TestMixedGCLiveThreshold.java can fail if G1 Full GC uses >1 workers - JDK-8271855: [TESTBUG] Wrong weakCompareAndSet assumption in UnsafeIntrinsicsTest - JDK-8271862: C2 intrinsic for Reference.refersTo() is often not used - JDK-8271868: Warn user when using mac-sign option with unsigned app-image. - JDK-8271895: UnProblemList javax/swing/JComponent/7154030/bug7154030.java in JDK18 - JDK-8271954: C2: assert(false) failed: Bad graph detected in build_loop_late - JDK-8272047: java/nio/channels/FileChannel/Transfer2GPlus.java failed with Unexpected transfer size: 2147418112 - JDK-8272095: ProblemList java/nio/channels/FileChannel/Transfer2GPlus.java on linux-aarch64 - JDK-8272114: Unused _last_state in osThread_windows - JDK-8272170: Missing memory barrier when checking active state for regions - JDK-8272305: several hotspot runtime/modules don't check exit codes - JDK-8272318: Improve performance of HeapDumpAllTest - JDK-8272328: java.library.path is not set properly by Windows jpackage app launcher - JDK-8272335: runtime/cds/appcds/MoveJDKTest.java doesn't check exit codes - JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches all exceptions - JDK-8272345: macos doesn't check `os::set_boot_path()` result - JDK-8272369: java/io/File/GetXSpace.java failed with "RuntimeException: java.nio.file.NoSuchFileException: /run/user/0" - JDK-8272391: Undeleted debug information - JDK-8272413: Incorrect num of element count calculation for vector cast - JDK-8272473: Parsing epoch seconds at a DST transition with a non-UTC parser is wrong - JDK-8272562: C2: assert(false) failed: Bad graph detected in build_loop_late - JDK-8272570: C2: crash in PhaseCFG::global_code_motion - JDK-8272574: C2: assert(false) failed: Bad graph detected in build_loop_late - JDK-8272639: jpackaged applications using microphone on mac - JDK-8272703: StressSeed should be set via FLAG_SET_ERGO - JDK-8272720: Fix the implementation of loop unrolling heuristic with LoopPercentProfileLimit - JDK-8272783: Epsilon: Refactor tests to improve performance - JDK-8272836: Limit run time for java/lang/invoke/LFCaching tests - JDK-8272838: Move CriticalJNI tests out of tier1 - JDK-8272846: Move some runtime/Metaspace/elastic/ tests out of tier1 - JDK-8272850: Drop zapping values in the Zap* option descriptions - JDK-8272854: split runtime/CommandLine/PrintTouchedMethods.java test - JDK-8272856: DoubleFlagWithIntegerValue uses G1GC-only flag - JDK-8272859: Javadoc external links should only have feature version number in URL - JDK-8272914: Create hotspot:tier2 and hotspot:tier3 test groups - JDK-8272970: Parallelize runtime/InvocationTests/ - JDK-8272973: Incorrect compile command used by TestIllegalArrayCopyBeforeInfiniteLoop - JDK-8273021: C2: Improve Add and Xor ideal optimizations - JDK-8273026: Slow LoginContext.login() on multi threading application - JDK-8273135: java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java crashes in liblcms.dylib with NULLSeek+0x7 - JDK-8273165: GraphKit::combine_exception_states fails with "matching stack sizes" assert - JDK-8273176: handle latest VS2019 in abstract_vm_version - JDK-8273229: Update OS detection code to recognize Windows Server 2022 - JDK-8273234: extended 'for' with expression of type tvar causes the compiler to crash - JDK-8273235: tools/launcher/HelpFlagsTest.java Fails on Windows 32bit - JDK-8273278: Support XSLT on GraalVM Native Image--deterministic bytecode generation in XSLT - JDK-8273308: PatternMatchTest.java fails on CI - JDK-8273314: Add tier4 test groups - JDK-8273315: Parallelize and increase timeouts for java/foreign/TestMatrix.java test - JDK-8273318: Some containers/docker/TestJFREvents.java configs are running out of memory - JDK-8273333: Zero should warn about unimplemented -XX:+LogTouchedMethods - JDK-8273335: compiler/blackhole tests should not run with interpreter-only VMs - JDK-8273342: Null pointer dereference in classFileParser.cpp:2817 - JDK-8273359: CI: ciInstanceKlass::get_canonical_holder() doesn't respect instance size - JDK-8273361: InfoOptsTest is failing in tier1 - JDK-8273373: Zero: Cannot invoke JVM in primordial threads on Zero - JDK-8273375: Remove redundant 'new String' calls after concatenation in java.desktop - JDK-8273376: Zero: Disable vtable/itableStub gtests - JDK-8273378: Shenandoah: Remove the remaining uses of os::is_MP - JDK-8273408: java.lang.AssertionError: typeSig ERROR on generated class property of record - JDK-8273416: C2: assert(false) failed: bad AD file after JDK-8252372 with UseSSE={0,1} - JDK-8273440: Zero: Disable runtime/Unsafe/InternalErrorTest.java - JDK-8273450: Fix the copyright header of SVML files - JDK-8273451: Remove unreachable return in mutexLocker::wait - JDK-8273483: Zero: Clear pending JNI exception check in native method handler - JDK-8273486: Zero: Handle DiagnoseSyncOnValueBasedClasses VM option - JDK-8273487: Zero: Handle "zero" variant in runtime tests - JDK-8273489: Zero: Handle UseHeavyMonitors on all monitorenter paths - JDK-8273498: compiler/c2/Test7179138_1.java timed out - JDK-8273505: runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java#default-cl crashed with SIGSEGV in MetaspaceShared::link_shared_classes - JDK-8273514: java/util/DoubleStreamSums/CompensatedSums.java failure - JDK-8273575: memory leak in appendBootClassPath(), paths must be deallocated - JDK-8273592: Backout JDK-8271868 - JDK-8273593: [REDO] Warn user when using mac-sign option with unsigned app-image. - JDK-8273595: tools/jpackage tests do not work on apt-based Linux distros like Debian - JDK-8273606: Zero: SPARC64 build fails with si_band type mismatch - JDK-8273614: Shenandoah: intermittent timeout with ConcurrentGCBreakpoint tests - JDK-8273638: javax/swing/JTable/4235420/bug4235420.java fails in GTK L&F - JDK-8273646: Add openssl from path variable also in to Default System Openssl Path in OpensslArtifactFetcher - JDK-8273678: TableAccessibility and TableRowAccessibility miss autorelease - JDK-8273695: Safepoint deadlock on VMOperation_lock - JDK-8273790: Potential cyclic dependencies between Gregorian and CalendarSystem - JDK-8273806: compiler/cpuflags/TestSSE4Disabled.java should test for CPU feature explicitly - JDK-8273807: Zero: Drop incorrect test block from compiler/startup/NumCompilerThreadsCheck.java - JDK-8273808: Cleanup AddFontsToX11FontPath - JDK-8273826: Correct Manifest file name and NPE checks - JDK-8273887: [macos] java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java timed out - JDK-8273894: ConcurrentModificationException raised every time ReferralsCache drops referral - JDK-8273902: Memory leak in OopStorage due to bug in OopHandle::release() - JDK-8273924: ArrayIndexOutOfBoundsException thrown in java.util.JapaneseImperialCalendar.add() - JDK-8273935: (zipfs) Files.getFileAttributeView() throws UOE instead of returning null when view not supported - JDK-8273958: gtest/MetaspaceGtests executes unnecessary tests in debug builds - JDK-8273961: jdk/nio/zipfs/ZipFSTester.java fails if file path contains '+' character - JDK-8273965: some testlibrary_tests/ir_framework tests fail when c1 disabled - JDK-8273968: JCK javax_xml tests fail in CI - JDK-8274056: JavaAccessibilityUtilities leaks JNI objects - JDK-8274074: SIGFPE with C2 compiled code with -XX:+StressGCM - JDK-8274083: Update testing docs to mention tiered testing - JDK-8274087: Windows DLL path not set correctly. - JDK-8274145: C2: condition incorrectly made redundant with dominating main loop exit condition - JDK-8274205: Handle KDC_ERR_SVC_UNAVAILABLE error code from KDC - JDK-8274215: Remove globalsignr2ca root from 17.0.2 - JDK-8274242: Implement fast-path for ASCII-compatible CharsetEncoders on x86 - JDK-8274265: Suspicious string concatenation in logTestUtils.inline.hpp - JDK-8274293: Build failure on macOS with Xcode 13.0 as vfork is deprecated - JDK-8274325: C4819 warning at vm_version_x86.cpp on Windows after JDK-8234160 - JDK-8274326: [macos] Ensure initialisation of sun/lwawt/macosx/CAccessibility in JavaComponentAccessibility.m - JDK-8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern - JDK-8274338: com/sun/jdi/RedefineCrossEvent.java failed "assert(m != __null) failed: NULL mirror" - JDK-8274347: Passing a *nested* switch expression as a parameter causes an NPE during compile - JDK-8274349: ForkJoinPool.commonPool() does not work with 1 CPU - JDK-8274381: missing CAccessibility definitions in JNI code - JDK-8274383: JNI call of getAccessibleSelection on a wrong thread - JDK-8274401: C2: GraphKit::load_array_element bypasses Access API - JDK-8274406: RunThese30M.java failed "assert(!LCA_orig->dominates(pred_block) || early->dominates(pred_block)) failed: early is high enough" - JDK-8274407: (tz) Update Timezone Data to 2021c - JDK-8274435: EXCEPTION_ACCESS_VIOLATION in BFSClosure::closure_impl - JDK-8274467: TestZoneInfo310.java fails with tzdata2021b - JDK-8274468: TimeZoneTest.java fails with tzdata2021b - JDK-8274501: c2i entry barriers read int as long on AArch64 - JDK-8274521: jdk/jfr/event/gc/detailed/TestGCLockerEvent.java fails when other GC is selected - JDK-8274522: java/lang/management/ManagementFactory/MXBeanException.java test fails with Shenandoah - JDK-8274523: java/lang/management/MemoryMXBean/MemoryTest.java test should handle Shenandoah - JDK-8274550: c2i entry barriers read int as long on PPC - JDK-8274560: JFR: Add test for OldObjectSample event when using Shenandoah - JDK-8274606: Fix jaxp/javax/xml/jaxp/unittest/transform/SurrogateTest.java test - JDK-8274642: jdk/jshell/CommandCompletionTest.java fails with NoSuchElementException after JDK-8271287 - JDK-8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume. - JDK-8274736: Concurrent read/close of SSLSockets causes SSLSessions to be invalidated unnecessarily - JDK-8274770: [PPC64] resolve_jobject needs a generic implementation to support load barriers - JDK-8274773: [TESTBUG] UnsafeIntrinsicsTest intermittently fails on weak memory model platform - JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST - JDK-8274840: Update OS detection code to recognize Windows 11 - JDK-8274848: LambdaMetaFactory::metafactory on REF_invokeSpecial impl method has incorrect behavior - JDK-8274851: [ppc64] Port zgc to linux on ppc64le - JDK-8274942: AssertionError at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:155) - JDK-8275008: gtest build failure due to stringop-overflow warning with gcc11 - JDK-8275049: [ZGC] missing null check in ZNMethod::log_register - JDK-8275051: Shenandoah: Correct ordering of requested gc cause and gc request flag - JDK-8275071: [macos] A11y cursor gets stuck when combobox is closed - JDK-8275104: IR framework does not handle client VM builds correctly - JDK-8275110: Correct RE Configs for CPU Release 17.0.2 on master branch for jdk17u-cpu and jdk17u-cpu-open repos. - JDK-8275131: Exceptions after a touchpad gesture on macOS - JDK-8275141: recover corrupted line endings for the version-numbers.conf - JDK-8275145: file.encoding system property has an incorrect value on Windows - JDK-8275226: Shenandoah: Relax memory constraint for worker claiming tasks/ranges - JDK-8275302: unexpected compiler error: cast, intersection types and sealed - JDK-8275426: PretouchTask num_chunks calculation can overflow - JDK-8275604: Zero: Reformat opclabels_data - JDK-8275666: serviceability/jvmti/GetObjectSizeClass.java shouldn't have vm.flagless - JDK-8275703: System.loadLibrary fails on Big Sur for libraries hidden from filesystem - JDK-8275720: CommonComponentAccessibility.createWithParent isWrapped causes mem leak - JDK-8275766: (tz) Update Timezone Data to 2021e - JDK-8275809: crash in [CommonComponentAccessibility getCAccessible:withEnv:] - JDK-8275811: Incorrect instance to dispose - JDK-8275819: [TableRowAccessibility accessibilityChildren] method is ineffective - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e - JDK-8275863: Use encodeASCII for ASCII-compatible DoubleByte encodings - JDK-8275872: Sync J2DBench run and analyze Makefile targets with build.xml - JDK-8276025: Hotspot's libsvml.so may conflict with user dependency - JDK-8276066: Reset LoopPercentProfileLimit for x86 due to suboptimal performance - JDK-8276076: Updating RE Configs for BUILD REQUEST 17.0.2+3 - JDK-8276105: C2: Conv(D|F)2(I|L)Nodes::Ideal should handle rounding correctly - JDK-8276112: Inconsistent scalar replacement debug info at safepoints - JDK-8276122: Change openjdk project in jcheck to jdk-updates - JDK-8276130: Fix Github Actions of JDK17u to account for update version scheme - JDK-8276139: TestJpsHostName.java not reliable, better to expand HostIdentifierCreate.java test - JDK-8276157: C2: Compiler stack overflow during escape analysis on Linux x86_32 - JDK-8276201: Shenandoah: Race results degenerated GC to enter wrong entry point - JDK-8276205: Shenandoah: CodeCache_lock should always be held for initializing code cache iteration - JDK-8276306: jdk/jshell/CustomInputToolBuilder.java fails intermittently on storage acquisition - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766 - JDK-8276550: Use SHA256 hash in build.tools.depend.Depend - JDK-8276572: Fake libsyslookup.so library causes tooling issues - JDK-8276774: Cookie stored in CookieHandler not sent if user headers contain cookie - JDK-8276801: gc/stress/CriticalNativeStress.java fails intermittently with Shenandoah - JDK-8276805: java/awt/print/PrinterJob/CheckPrivilege.java fails due to disabled SecurityManager - JDK-8276845: (fs) java/nio/file/spi/SetDefaultProvider.java fails on x86_32 - JDK-8276846: JDK-8273416 is incomplete for UseSSE=1 - JDK-8276854: Windows GHA builds fail due to broken Cygwin - JDK-8276864: Update boot JDKs to 17.0.1 in GHA - JDK-8276905: Use appropriate macosx_version_minimum value while compiling metal shaders - JDK-8276927: [ppc64] Port shenandoahgc to linux on ppc64le - JDK-8277029: JMM GetDiagnosticXXXInfo APIs should verify output array sizes - JDK-8277093: Vector should throw ClassNotFoundException for a missing class of an element - JDK-8277159: Fix java/nio/file/FileStore/Basic.java test by ignoring /run/user/* mount points - JDK-8277195: missing CAccessibility definition in [CommonComponentAccessibility accessibilityHitTest] - JDK-8277212: GC accidentally cleans valid megamorphic vtable inline caches - JDK-8277224: sun.security.pkcs.PKCS9Attributes.toString() throws NPE - JDK-8277529: SIGSEGV in C2 CompilerThread Node::rematerialize() compiling Packet::readUnsignedTrint - JDK-8277981: String Deduplication table is never cleaned up due to bad dead_factor_for_cleanup Notes on individual issues: =========================== core-libs/java.io:serialization: JDK-8277157: Vector should throw ClassNotFoundException for a missing class of an element ========================================================================================= `java.util.Vector` is updated to correctly report `ClassNotFoundException that occurs during deserialization using `java.io.ObjectInputStream.GetField.get(name, object)` when the class of an element of the Vector is not found. Without this fix, a `StreamCorruptedException` is thrown that does not provide information about the missing class. security-libs/java.security: JDK-8272535: 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 core-libs/java.io: JDK-8275343: 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. hotspot/gc: JDK-8277533: 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*` e.g. [17606.140s][info][gc,phases ] GC(719) Concurrent Process Non-Strong References 25781.928ms core-libs/java.time: JDK-8274857: Update Timezone Data to 2021c =========================================== IANA Time Zone Database, on which JDK's Date/Time libraries are based, has been updated to version 2021c (https://mm.icann.org/pipermail/tz-announce/2021-October/000067.html). Note that with 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 (https://mm.icann.org/pipermail/tz-announce/2021-September/000066.html) New in release OpenJDK 17.0.1 (2021-10-19): =========================================== Live versions of these release notes can be found at: * https://builds.shipilev.net/backports-monitor/release-notes-17.0.1.txt * Security fixes - JDK-8263314: Enhance XML Dsig modes - JDK-8265167, CVE-2021-35556: Richer Text Editors - JDK-8265574: Improve handling of sheets - JDK-8265580, CVE-2021-35559: Enhanced style for RTF kit - JDK-8265776: Improve Stream handling for SSL - JDK-8266097, CVE-2021-35561: Better hashing support - JDK-8266103: Better specified spec values - JDK-8266109: More Resilient Classloading - JDK-8266115: More Manifest Jar Loading - JDK-8266137, CVE-2021-35564: Improve Keystore integrity - JDK-8266689, CVE-2021-35567: More Constrained Delegation - JDK-8267086: ArrayIndexOutOfBoundsException in java.security.KeyFactory.generatePublic - JDK-8267712: Better LDAP reference processing - JDK-8267729, CVE-2021-35578: Improve TLS client handshaking - JDK-8267735, CVE-2021-35586: Better BMP support - JDK-8268193: Improve requests of certificates - JDK-8268199: Correct certificate requests - JDK-8268205: Enhance DTLS client handshake - JDK-8268500: Better specified ParameterSpecs - JDK-8268506: More Manifest Digests - JDK-8269618, CVE-2021-35603: Better session identification - JDK-8269624: Enhance method selection support - JDK-8270398: Enhance canonicalization - JDK-8270404: Better canonicalization * Other changes - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021 - JDK-8243543: jtreg test security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java fails - JDK-8248899: security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java fails, Certificate has been revoked - JDK-8261088: Repeatable annotations without @Target cannot have containers that target module declarations - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during "PrinterJob.print" - JDK-8263531: Remove unused buffer int - JDK-8266182: Automate manual steps listed in the test jdk/sun/security/pkcs12/ParamsTest.java - JDK-8267625: AARCH64: typo in LIR_Assembler::emit_profile_type - JDK-8267666: Add option to jcmd GC.heap_dump to use existing file - JDK-8268019: C2: assert(no_dead_loop) failed: dead loop detected - JDK-8268261: C2: assert(n != __null) failed: Bad immediate dominator info. - JDK-8268427: Improve AlgorithmConstraints:checkAlgorithm performance - JDK-8268963: [IR Framework] Some default regexes matching on PrintOptoAssembly in IRNode.java do not work on all platforms - JDK-8269297: Bump version numbers for JDK 17.0.1 - JDK-8269478: Shenandoah: gc/shenandoah/mxbeans tests should be more resilient - JDK-8269574: C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events - JDK-8269763: The JEditorPane is blank after JDK-8265167 - JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu usage in containers - JDK-8269882: stack-use-after-scope in NewObjectA - JDK-8269897: Shenandoah: Resolve UNKNOWN access strength, where possible - JDK-8269934: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status - JDK-8269993: [Test]: java/net/httpclient/DigestEchoClientSSL.java contains redundant @run tags - JDK-8270094: Shenandoah: Provide human-readable labels for test configurations - JDK-8270096: Shenandoah: Optimize gc/shenandoah/TestRefprocSanity.java for interpreter mode - JDK-8270098: ZGC: ZBarrierSetC2::clone_at_expansion fails with "Guard against surprises" assert - JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm Setup - JDK-8270280: security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA.java OCSP response error - JDK-8270344: Session resumption errors - JDK-8271203: C2: assert(iff->Opcode() == Op_If || iff->Opcode() == Op_CountedLoopEnd || iff->Opcode() == Op_RangeCheck) failed: Check this code when new subtype is added - JDK-8271276: C2: Wrong JVM state used for receiver null check - JDK-8271335: Updating RE Configs for BUILD REQUEST 17.0.1+4 - JDK-8271589: fatal error with variable shift count integer rotate operation. - JDK-8271723: Unproblemlist runtime/InvocationTests/invokevirtualTests.java - JDK-8271730: Client authentication using RSASSA-PSS fails after correct certificate requests - JDK-8271925: ZGC: Arraycopy stub passes invalid oop to load barrier - JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path contains colon - JDK-8272131: PhaseMacroExpand::generate_slow_arraycopy crash when clone null CallProjections.fallthrough_ioproj - JDK-8272326: java/util/Random/RandomTestMoments.java had two Gaussian fails - JDK-8272332: --with-harfbuzz=system doesn't add -lharfbuzz after JDK-8255790 - JDK-8272472: StackGuardPages test doesn't build with glibc 2.34 - JDK-8272581: sun/security/pkcs11/Provider/MultipleLogins.sh fails after JDK-8266182 - JDK-8272602: [macos] not all KEY_PRESSED events sent when control modifier is used - JDK-8272700: [macos] Build failure with Xcode 13.0 after JDK-8264848 - JDK-8272708: [Test]: Cleanup: test/jdk/security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java no longer needs ocspEnabled - JDK-8272806: [macOS] "Apple AWT Internal Exception" when input method is changed - JDK-8273358: macOS Monterey does not have the font Times needed by Serif Notes on individual issues: =========================== security-libs/java.security: JDK-8271434: Removed IdenTrust Root Certificate =============================================== The following root certificate from IdenTrust has been removed from the `cacerts` keystore: Alias Name: identrustdstx3 [jdk] Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co. New in release OpenJDK 17.0.0 (2021-09-14): =========================================== The full list of changes in the interim releases from 11u to 17u can be found at: * https://builds.shipilev.net/backports-monitor/release-notes-12.txt * https://builds.shipilev.net/backports-monitor/release-notes-13.txt * https://builds.shipilev.net/backports-monitor/release-notes-14.txt * https://builds.shipilev.net/backports-monitor/release-notes-15.txt * https://builds.shipilev.net/backports-monitor/release-notes-16.txt * https://builds.shipilev.net/backports-monitor/release-notes-17.txt Major changes are listed below. Some changes may have been backported to earlier releases following their first appearance in OpenJDK 12 through to 17. NEW FEATURES ============ Language Features ================= Switch Expressions ================== https://openjdk.java.net/jeps/325 https://openjdk.java.net/jeps/354 https://openjdk.java.net/jeps/361 Extend the `switch` statement so that it can be used as either a statement or an expression, and that both forms can use either a "traditional" or "simplified" scoping and control flow behavior. Both forms can use either traditional `case ... :` labels (with fall through) or new `case ... ->` labels (with no fall through), with a further new statement for yielding a value from a `switch` expression. These changes will simplify everyday coding, and also prepare the way for the use of pattern matching in `switch`. This was a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 12 & 13 and became final in OpenJDK 14. Text Blocks =========== https://openjdk.java.net/jeps/355 https://openjdk.java.net/jeps/368 https://openjdk.java.net/jeps/378 Add text blocks to the Java language. A text block is a multi-line string literal that avoids the need for most escape sequences, automatically formats the string in a predictable way, and gives the developer control over format when desired. This was a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 13 & 14 and became final in OpenJDK 15. Pattern Matching for instanceof =============================== https://openjdk.java.net/jeps/305 https://openjdk.java.net/jeps/375 https://openjdk.java.net/jeps/394 http://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html Enhance the Java programming language with pattern matching for the `instanceof` operator. Pattern matching allows common logic in a program, namely the conditional extraction of components from objects, to be expressed more concisely and safely. This was a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 14 & 15 and became final in OpenJDK 16. Records ======= https://openjdk.java.net/jeps/359 https://openjdk.java.net/jeps/384 https://openjdk.java.net/jeps/395 Enhance the Java programming language with records. Records provide a compact syntax for declaring classes which are transparent holders for shallowly immutable data. This was a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 14 & 15 and became final in OpenJDK 16. Sealed Classes ============== https://openjdk.java.net/jeps/360 https://openjdk.java.net/jeps/397 https://openjdk.java.net/jeps/409 https://cr.openjdk.java.net/~briangoetz/amber/datum.html Enhance the Java programming language with sealed classes and interfaces. Sealed classes and interfaces restrict which other classes or interfaces may extend or implement them. This was a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 15 & 16 and became final in OpenJDK 17. Restore Always-Strict Floating-Point Semantics ============================================== https://openjdk.java.net/jeps/306 Make floating-point operations consistently strict, rather than have both strict floating-point semantics (`strictfp`) and subtly different default floating-point semantics. This will restore the original floating-point semantics to the language and VM, matching the semantics before the introduction of strict and default floating-point modes in Java SE 1.2. Pattern Matching for switch =========================== https://openjdk.java.net/jeps/406 Enhance the Java programming language with pattern matching for `switch` expressions and statements, along with extensions to the language of patterns. Extending pattern matching to `switch` allows an expression to be tested against a number of patterns, each with a specific action, so that complex data-oriented queries can be expressed concisely and safely. This is a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 17. Library Features ================ JVM Constants API ================= https://openjdk.java.net/jeps/334 Introduce an API to model nominal descriptions of key class-file and run-time artifacts, in particular constants that are loadable from the constant pool. Reimplement the Legacy Socket API ================================= https://openjdk.java.net/jeps/353 Replace the underlying implementation used by the `java.net.Socket` and `java.net.ServerSocket` APIs with a simpler and more modern implementation that is easy to maintain and debug. The new implementation will be easy to adapt to work with user-mode threads, a.k.a. fibers, currently being explored in Project Loom (https://openjdk.java.net/projects/loom). JFR Event Streaming =================== https://openjdk.java.net/jeps/349 Expose JDK Flight Recorder data for continuous monitoring. Non-Volatile Mapped Byte Buffers ================================ https://openjdk.java.net/jeps/352 Add new JDK-specific file mapping modes so that the `FileChannel` API can be used to create `MappedByteBuffer` instances that refer to non-volatile memory. Helpful NullPointerExceptions ============================= https://openjdk.java.net/jeps/358 Improve the usability of `NullPointerException`s generated by the JVM by describing precisely which variable was `null`. Foreign-Memory Access API ========================= https://openjdk.java.net/jeps/370 https://openjdk.java.net/jeps/383 https://openjdk.java.net/jeps/393 Introduce an API to allow Java programs to safely and efficiently access foreign memory outside of the Java heap. This was a incubation feature (https://openjdk.java.net/jeps/11) in OpenJDK 14, 15 & 16, now superseded by the Foreign Function & Memory API in OpenJDK 17 (see below). Edwards-Curve Digital Signature Algorithm (EdDSA) ================================================= https://openjdk.java.net/jeps/339 Implement cryptographic signatures using the Edwards-Curve Digital Signature Algorithm (EdDSA) as described by RFC 8032 (https://tools.ietf.org/html/rfc8032). Hidden Classes ============== https://openjdk.java.net/jeps/371 Introduce hidden classes, which are classes that cannot be used directly by the bytecode of other classes. Hidden classes are intended for use by frameworks that generate classes at run time and use them indirectly, via reflection. A hidden class may be defined as a member of an access control nest (https://openjdk.java.net/jeps/181), and may be unloaded independently of other classes. Reimplement the Legacy DatagramSocket API ========================================= https://openjdk.java.net/jeps/373 Replace the underlying implementations of the `java.net.DatagramSocket` and `java.net.MulticastSocket` APIs with simpler and more modern implementations that are easy to maintain and debug. The new implementations will be easy to adapt to work with virtual threads, currently being explored in Project Loom (https://openjdk.java.net/projects/loom). This is a follow-on to JEP 353 (see above), which already reimplemented the legacy Socket API. Vector API ========== https://openjdk.java.net/jeps/338 https://openjdk.java.net/jeps/414 Provide an initial iteration of an incubator module, `jdk.incubator.vector`, to express vector computations that reliably compile at runtime to optimal vector hardware instructions on supported CPU architectures and thus achieve superior performance to equivalent scalar computations. This is an incubation feature (https://openjdk.java.net/jeps/11) introduced in OpenJDK 16. Unix-Domain Socket Channels =========================== https://openjdk.java.net/jeps/380 Add Unix-domain (`AF_UNIX`) socket support to the socket channel and server-socket channel APIs in the `java.nio.channels` package. Extend the inherited channel mechanism to support Unix-domain socket channels and server socket channels. Foreign Linker API (Incubator) ============================== https://openjdk.java.net/jeps/389 Introduce an API that offers statically-typed, pure-Java access to native code. This API, together with the Foreign-Memory API (see above), will considerably simplify the otherwise error-prone process of binding to a native library. This was an incubation feature (https://openjdk.java.net/jeps/11) introduced in OpenJDK 16, now superseded by the Foreign Function & Memory API in OpenJDK 17 (see below). Strongly Encapsulate JDK Internals by Default ============================================= https://openjdk.java.net/jeps/396 https://openjdk.java.net/jeps/403 Strongly encapsulate all internal elements of the JDK by default, except for critical internal APIs such as `sun.misc.Unsafe`. It will no longer be possible to relax the strong encapsulation of internal elements via a single command-line option, as was possible in OpenJDK 9 through 16. Enhanced Pseudo-Random Number Generators ======================================== https://openjdk.java.net/jeps/356 Provide new interface types and implementations for pseudo-random number generators (PRNGs), including jumpable PRNGs and an additional class of splittable PRNG algorithms (LXM). Foreign Function & Memory API ============================= https://openjdk.java.net/jeps/412 Introduce an API by which Java programs can interoperate with code and data outside of the Java runtime. By efficiently invoking foreign functions (i.e., code outside the JVM), and by safely accessing foreign memory (i.e., memory not managed by the JVM), the API enables Java programs to call native libraries and process native data without the brittleness and danger of JNI. This API is an incubation feature (https://openjdk.java.net/jeps/11) introduced in OpenJDK 17, and is an evolution of the Foreign Memory Access API (OpenJDK 14 through 16) and Foreign Linker API (OpenJDK 16) (see above). Context-Specific Deserialization Filters ======================================== https://openjdk.java.net/jeps/415 Allow applications to configure context-specific and dynamically-selected deserialization filters via a JVM-wide filter factory that is invoked to select a filter for each individual deserialization operation. Tools ===== Packaging Tool ============== https://openjdk.java.net/jeps/343 https://openjdk.java.net/jeps/392 Provide the `jpackage` tool, for packaging self-contained Java applications. JVM Features ============ Shenandoah: A Low-Pause-Time Garbage Collector ============================================== https://openjdk.java.net/jeps/189 https://openjdk.java.net/jeps/379 Add a new garbage collection (GC) algorithm named Shenandoah which reduces GC pause times by doing evacuation work concurrently with the running Java threads. Pause times with Shenandoah are independent of heap size, meaning you will have the same consistent pause times whether your heap is 200 MB or 200 GB. Shenandoah has been provided in Red Hat builds of OpenJDK 8 since 8u131 in April 2017 and in all 11u builds. Upstream, it was introduced in OpenJDK 12 as an experimental feature and became a production feature in OpenJDK 15. It was backported to OpenJDK 11 with the 11.0.9 release in October 2020. Abortable Mixed Collections for G1 ================================== https://openjdk.java.net/jeps/344 Make G1 mixed collections abortable if they might exceed the pause target. Promptly Return Unused Committed Memory from G1 =============================================== https://openjdk.java.net/jeps/346 Enhance the G1 garbage collector to automatically return Java heap memory to the operating system when idle. Dynamic CDS Archives ==================== https://openjdk.java.net/jeps/310 https://openjdk.java.net/jeps/350 Extend application class-data sharing to allow the dynamic archiving of classes at the end of Java application execution. The archived classes will include all loaded application classes and library classes that are not present in the default, base-layer CDS archive. ZGC: Uncommit Unused Memory (Experimental) ========================================== https://openjdk.java.net/jeps/351 Enhance ZGC to return unused heap memory to the operating system. NUMA-Aware Memory Allocation for G1 =================================== https://openjdk.java.net/jeps/345 Improve G1 performance on large machines by implementing NUMA-aware memory allocation. ZGC on macOS (Experimental) =========================== https://openjdk.java.net/jeps/364 Port the ZGC garbage collector to macOS. ZGC on Windows (Experimental) ============================= https://openjdk.java.net/jeps/365 Port the ZGC garbage collector to Windows. ZGC: A Scalable Low-Latency Garbage Collector (Production) ========================================================== https://openjdk.java.net/jeps/377 Change the Z Garbage Collector from an experimental feature into a product feature. ZGC: Concurrent Thread-Stack Processing ======================================= https://openjdk.java.net/jeps/376 Move ZGC thread-stack processing from safepoints to a concurrent phase. Elastic Metaspace ================= https://openjdk.java.net/jeps/387 Return unused HotSpot class-metadata (i.e., metaspace) memory to the operating system more promptly, reduce metaspace footprint, and simplify the metaspace code in order to reduce maintenance costs. Ports ===== Alpine Linux Port ================= https://openjdk.java.net/jeps/386 Port the JDK to Alpine Linux, and to other Linux distributions that use musl as their primary C library, on both the x64 and AArch64 architectures, Windows/AArch64 Port ==================== https://openjdk.java.net/jeps/388 Port the JDK to Windows/AArch64. New macOS Rendering Pipeline ============================ https://openjdk.java.net/jeps/382 Implement a Java 2D internal rendering pipeline for macOS using the Apple Metal API as alternative to the existing pipeline, which uses the deprecated Apple OpenGL API. macOS/AArch64 Port ================== https://openjdk.java.net/jeps/391 Port the JDK to macOS/AArch64. DEPRECATIONS ============ Deprecate the ParallelScavenge + SerialOld GC Combination ========================================================= https://openjdk.java.net/jeps/366 Deprecate the combination of the Parallel Scavenge and Serial Old garbage collection algorithms. Deprecate and Disable Biased Locking ==================================== https://openjdk.java.net/jeps/374 Disable biased locking by default, and deprecate all related command-line options. Warnings for Value-Based Classes ================================ https://openjdk.java.net/jeps/390 Designate the primitive wrapper classes as value-based and deprecate their constructors for removal, prompting new deprecation warnings. Provide warnings about improper attempts to synchronize on instances of any value-based classes in the Java Platform. Deprecate the Applet API for Removal ==================================== https://openjdk.java.net/jeps/398 Deprecate the Applet API for removal. It is essentially irrelevant since all web-browser vendors have either removed support for Java browser plug-ins or announced plans to do so. Deprecate the Security Manager for Removal ========================================== https://openjdk.java.net/jeps/411 Deprecate the Security Manager for removal in a future release. The Security Manager dates from Java 1.0. It has not been the primary means of securing client-side Java code for many years, and it has rarely been used to secure server-side code. To move Java forward, we intend to deprecate the Security Manager for removal in concert with the legacy Applet API (see above). . REMOVALS ======== Remove the Concurrent Mark Sweep (CMS) Garbage Collector ======================================================== https://openjdk.java.net/jeps/363 Remove the Concurrent Mark Sweep (CMS) garbage collector. Remove the Pack200 Tools and API ================================ https://openjdk.java.net/jeps/336 https://openjdk.java.net/jeps/367 Remove the `pack200` and `unpack200` tools, and the `Pack200` API in the `java.util.jar` package. These tools and API were deprecated for removal in OpenJDK 11 with the express intent to remove them in a future release. Remove the Nashorn JavaScript Engine ==================================== https://openjdk.java.net/jeps/372 Remove the Nashorn JavaScript script engine and APIs, and the `jjs` tool. The engine, the APIs, and the tool were deprecated for removal in OpenJDK 11 with the express intent to remove them in a future release. Remove the Solaris and SPARC Ports ================================== https://openjdk.java.net/jeps/362 https://openjdk.java.net/jeps/381 Remove the source code and build support for the Solaris/SPARC, Solaris/x64, and Linux/SPARC ports. These ports were deprecated for removal in OpenJDK 14 (JEP 362) and removed in OpenJDK 15 (JEP 381). Remove RMI Activation ===================== https://openjdk.java.net/jeps/385 https://openjdk.java.net/jeps/407 https://docs.oracle.com/en/java/javase/14/docs/specs/rmi/activation.html Remove the Remote Method Invocation (RMI) Activation mechanism, while preserving the rest of RMI. RMI Activation is an obsolete part of RMI that has been optional since OpenJDK 8 and was deprecated in OpenJDK 15. Remove the Experimental AOT and JIT Compiler ============================================ https://openjdk.java.net/jeps/410 Remove the experimental Java-based ahead-of-time (AOT) and just-in-time (JIT) compiler. This compiler has seen little use since its introduction and the effort required to maintain it is significant. Retain the experimental Java-level JVM compiler interface (JVMCI) so that developers can continue to use externally-built versions of the compiler for JIT compilation.