1876 lines
110 KiB
Plaintext
1876 lines
110 KiB
Plaintext
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")
|
||
|
||
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-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-8273056: java.util.random does not correctly sample exponential or Gaussian distributions
|
||
- 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<jlong>::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.
|