Blame SOURCES/NEWS

c0ba06
Key:
c0ba06
c0ba06
JDK-X  - https://bugs.openjdk.java.net/browse/JDK-X
c0ba06
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
c0ba06
c5ecb0
New in release OpenJDK 17.0.2 (2022-01-18):
c5ecb0
===========================================
c5ecb0
Live versions of these release notes can be found at:
c5ecb0
  * https://bitly.com/openjdk1702
c5ecb0
  * https://builds.shipilev.net/backports-monitor/release-notes-17.0.2.txt
c5ecb0
c5ecb0
* Security fixes
c5ecb0
  - JDK-8251329: (zipfs) Files.walkFileTree walks infinitely if zip has dir named "." inside
c5ecb0
  - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization
c5ecb0
  - JDK-8268488: More valuable DerValues
c5ecb0
  - JDK-8268494: Better inlining of inlined interfaces
c5ecb0
  - JDK-8268512: More content for ContentInfo
c5ecb0
  - JDK-8268813, CVE-2022-21283: Better String matching
c5ecb0
  - JDK-8269151: Better construction of EncryptedPrivateKeyInfo
c5ecb0
  - JDK-8269944: Better HTTP transport redux
c5ecb0
  - JDK-8270386, CVE-2022-21291: Better verification of scan methods
c5ecb0
  - JDK-8270392, CVE-2022-21293: Improve String constructions
c5ecb0
  - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps
c5ecb0
  - JDK-8270492, CVE-2022-21282: Better resolution of URIs
c5ecb0
  - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management
c5ecb0
  - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities
c5ecb0
  - JDK-8270952, CVE-2022-21277: Improve TIFF file handling
c5ecb0
  - JDK-8271962: Better TrueType font loading
c5ecb0
  - JDK-8271968: Better canonical naming
c5ecb0
  - JDK-8271987: Manifest improved manifest entries
c5ecb0
  - JDK-8272014, CVE-2022-21305: Better array indexing
c5ecb0
  - JDK-8272026, CVE-2022-21340: Verify Jar Verification
c5ecb0
  - JDK-8272236, CVE-2022-21341: Improve serial forms for transport
c5ecb0
  - JDK-8272272: Enhance jcmd communication
c5ecb0
  - JDK-8272462: Enhance image handling
c5ecb0
  - JDK-8273290: Enhance sound handling
c5ecb0
  - JDK-8273756, CVE-2022-21360: Enhance BMP image support
c5ecb0
  - JDK-8273838, CVE-2022-21365: Enhanced BMP processing
c5ecb0
  - JDK-8274096, CVE-2022-21366: Improve decoding of image files
c5ecb0
* Other changes
c5ecb0
  - JDK-4819544: SwingSet2 JTable Demo throws NullPointerException
c5ecb0
  - JDK-8137101: [TEST_BUG] javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java failure due to timing
c5ecb0
  - JDK-8140241: (fc) Data transfer from FileChannel to itself causes hang in case of overlap
c5ecb0
  - JDK-8174819: java/nio/file/WatchService/LotsOfEvents.java fails intermittently
c5ecb0
  - JDK-8190753: (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative initial size for ByteArrayOutputStream
c5ecb0
  - JDK-8214761: Bug in parallel Kahan summation implementation
c5ecb0
  - JDK-8223923: C2: Missing interference with mismatched unsafe accesses
c5ecb0
  - JDK-8233020: (fs) UnixFileSystemProvider should use StaticProperty.userDir().
c5ecb0
  - JDK-8238649: Call new Win32 API SetThreadDescription in os::set_native_thread_name
c5ecb0
  - JDK-8244675: assert(IncrementalInline || (_late_inlines.length() == 0 && !has_mh_late_inlines()))
c5ecb0
  - JDK-8261236: C2: ClhsdbJstackXcompStress test fails when StressGCM is enabled
c5ecb0
  - JDK-8261579: AArch64: Support for weaker memory ordering in Atomic
c5ecb0
  - JDK-8262031: Create implementation for NSAccessibilityNavigableStaticText protocol
c5ecb0
  - JDK-8262095: NPE in Flow$FlowAnalyzer.visitApply: Cannot invoke getThrownTypes because tree.meth.type is null
c5ecb0
  - JDK-8263059: security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java fails due to revoked cert
c5ecb0
  - JDK-8263364: sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java wedged in getInputStream
c5ecb0
  - JDK-8263375: Support stack watermarks in Zero VM
c5ecb0
  - JDK-8263773: Reenable German localization for builds at Oracle
c5ecb0
  - JDK-8264286: Create implementation for NSAccessibilityColumn protocol peer
c5ecb0
  - JDK-8264287: Create implementation for NSAccessibilityComboBox protocol peer
c5ecb0
  - JDK-8264291: Create implementation for NSAccessibilityCell protocol peer
c5ecb0
  - JDK-8264292: Create implementation for NSAccessibilityList protocol peer
c5ecb0
  - JDK-8264293: Create implementation for NSAccessibilityMenu protocol peer
c5ecb0
  - JDK-8264294: Create implementation for NSAccessibilityMenuBar protocol peer
c5ecb0
  - JDK-8264295: Create implementation for NSAccessibilityMenuItem protocol peer
c5ecb0
  - JDK-8264296: Create implementation for NSAccessibilityPopUpButton protocol peer
c5ecb0
  - JDK-8264297: Create implementation for NSAccessibilityProgressIndicator protocol peer
c5ecb0
  - JDK-8264298: Create implementation for NSAccessibilityRow protocol peer
c5ecb0
  - JDK-8264303: Create implementation for NSAccessibilityTabGroup protocol peer
c5ecb0
  - JDK-8266239: Some duplicated javac command-line options have repeated effect
c5ecb0
  - JDK-8266510: Nimbus JTree default tree cell renderer does not use selected text color
c5ecb0
  - JDK-8266988: compiler/jvmci/compilerToVM/IsMatureTest.java fails with Unexpected isMature state for multiple times invoked method: expected false to equal true
c5ecb0
  - JDK-8267256: Extend minimal retry for loopback connections on Windows to PlainSocketImpl
c5ecb0
  - JDK-8267385: Create NSAccessibilityElement implementation for JavaComponentAccessibility
c5ecb0
  - JDK-8267387: Create implementation for NSAccessibilityOutline protocol
c5ecb0
  - JDK-8267388: Create implementation for NSAccessibilityTable protocol
c5ecb0
  - JDK-8268284: javax/swing/JComponent/7154030/bug7154030.java fails with "Exception: Failed to hide opaque button"
c5ecb0
  - JDK-8268294: Reusing HttpClient in a WebSocket.Listener hangs.
c5ecb0
  - JDK-8268361: Fix the infinite loop in next_line
c5ecb0
  - JDK-8268457: XML Transformer outputs Unicode supplementary character incorrectly to HTML
c5ecb0
  - JDK-8268464: Remove dependancy of TestHttpsServer, HttpTransaction, HttpCallback from open/test/jdk/sun/net/www/protocol/https/ tests
c5ecb0
  - JDK-8268626: Remove native pre-jdk9 support for jtreg  failure handler
c5ecb0
  - JDK-8268860: Windows-Aarch64 build is failing in GitHub actions
c5ecb0
  - JDK-8268882: C2: assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc
c5ecb0
  - JDK-8268885: duplicate checkcast when destination type is not first type of intersection type
c5ecb0
  - JDK-8268893: jcmd to trim the glibc heap
c5ecb0
  - JDK-8268894: forged ASTs can provoke an AIOOBE at com.sun.tools.javac.jvm.ClassWriter::writePosition
c5ecb0
  - JDK-8268927: Windows: link error: unresolved external symbol "int __cdecl convert_to_unicode(char const *,wchar_t * *)"
c5ecb0
  - JDK-8269031: linux x86_64 check for binutils 2.25 or higher after 8265783
c5ecb0
  - JDK-8269113: Javac throws when compiling switch (null)
c5ecb0
  - JDK-8269216: Useless initialization in com/sun/crypto/provider/PBES2Parameters.java
c5ecb0
  - JDK-8269269: [macos11] SystemIconTest fails with ClassCastException
c5ecb0
  - JDK-8269280: (bf) Replace StringBuffer in *Buffer.toString()
c5ecb0
  - JDK-8269481: SctpMultiChannel never releases own file descriptor
c5ecb0
  - JDK-8269637: javax/swing/JFileChooser/FileSystemView/SystemIconTest.java fails on windows
c5ecb0
  - JDK-8269656: The test test/langtools/tools/javac/versions/Versions.java has duplicate test cycles
c5ecb0
  - JDK-8269687: pauth_aarch64.hpp include name is incorrect
c5ecb0
  - JDK-8269850: Most JDK releases report macOS version 12 as 10.16 instead of 12.0
c5ecb0
  - JDK-8269924: Shenandoah: Introduce weak/strong marking asserts
c5ecb0
  - JDK-8269951: [macos] Focus not painted in JButton when  setBorderPainted(false) is invoked
c5ecb0
  - JDK-8270110: Shenandoah: Add test for JDK-8269661
c5ecb0
  - JDK-8270116: Expand ButtonGroupLayoutTraversalTest.java to run in all LaFs, including Aqua on macOS
c5ecb0
  - JDK-8270171: Shenandoah: Cleanup TestStringDedup and TestStringDedupStress tests
c5ecb0
  - JDK-8270290: NTLM authentication fails if HEAD request is used
c5ecb0
  - JDK-8270317: Large Allocation in CipherSuite
c5ecb0
  - JDK-8270320: JDK-8270110 committed invalid copyright headers
c5ecb0
  - JDK-8270517: Add Zero support for LoongArch
c5ecb0
  - JDK-8270533: AArch64: size_fits_all_mem_uses should return false if its output is a CAS
c5ecb0
  - JDK-8270886: Crash in PhaseIdealLoop::verify_strip_mined_scheduling
c5ecb0
  - JDK-8270893: IndexOutOfBoundsException while reading large TIFF file
c5ecb0
  - JDK-8270901: Typo PHASE_CPP in CompilerPhaseType
c5ecb0
  - JDK-8270946: X509CertImpl.getFingerprint should not return the empty String
c5ecb0
  - JDK-8271071: accessibility of a table on macOS lacks cell navigation
c5ecb0
  - JDK-8271121: ZGC: stack overflow (segv) when -Xlog:gc+start=debug
c5ecb0
  - JDK-8271142: package help is not displayed for missing X11/extensions/Xrandr.h
c5ecb0
  - JDK-8271170: Add unit test for what jpackage app launcher puts in the environment
c5ecb0
  - JDK-8271215: Fix data races in G1PeriodicGCTask
c5ecb0
  - JDK-8271254: javac generates unreachable code when using empty semicolon statement
c5ecb0
  - JDK-8271287: jdk/jshell/CommandCompletionTest.java fails with "lists don't have the same size expected"
c5ecb0
  - JDK-8271308: (fc) FileChannel.transferTo() transfers no more than Integer.MAX_VALUE bytes in one call
c5ecb0
  - JDK-8271315: Redo: Nimbus JTree renderer properties persist across L&F changes
c5ecb0
  - JDK-8271323: [TESTBUG] serviceability/sa/ClhsdbCDSCore.java fails with -XX:TieredStopAtLevel=1
c5ecb0
  - JDK-8271340: Crash PhaseIdealLoop::clone_outer_loop
c5ecb0
  - JDK-8271341: Opcode() != Op_If && Opcode() != Op_RangeCheck) || outcnt() == 2 assert failure with Test7179138_1.java
c5ecb0
  - JDK-8271459: C2: Missing NegativeArraySizeException when creating StringBuilder with negative capacity
c5ecb0
  - JDK-8271463: Updating RE Configs for Upcoming CPU Release 17.0.2 on master branch for jdk17u-cpu and jdk17u-cpu-open repos.
c5ecb0
  - JDK-8271490: [ppc] [s390]: Crash in JavaThread::pd_get_top_frame_for_profiling
c5ecb0
  - JDK-8271560: sun/security/ssl/DHKeyExchange/LegacyDHEKeyExchange.java still fails due to "An established connection was aborted by the software in your host machine"
c5ecb0
  - JDK-8271567: AArch64: AES Galois CounterMode (GCM) interleaved implementation using vector instructions
c5ecb0
  - JDK-8271600: C2: CheckCastPP which should closely follow Allocate is sunk of a loop
c5ecb0
  - JDK-8271605: Update JMH devkit to 1.32
c5ecb0
  - JDK-8271718: Crash when during color transformation the color profile is replaced
c5ecb0
  - JDK-8271722: [TESTBUG] gc/g1/TestMixedGCLiveThreshold.java can fail if G1 Full GC uses >1 workers
c5ecb0
  - JDK-8271855: [TESTBUG] Wrong weakCompareAndSet assumption in UnsafeIntrinsicsTest
c5ecb0
  - JDK-8271862: C2 intrinsic for Reference.refersTo() is often not used
c5ecb0
  - JDK-8271868: Warn user when using mac-sign option with unsigned app-image.
c5ecb0
  - JDK-8271895: UnProblemList javax/swing/JComponent/7154030/bug7154030.java in JDK18
c5ecb0
  - JDK-8271954: C2: assert(false) failed: Bad graph detected in build_loop_late
c5ecb0
  - JDK-8272047: java/nio/channels/FileChannel/Transfer2GPlus.java failed with Unexpected transfer size: 2147418112
c5ecb0
  - JDK-8272095: ProblemList java/nio/channels/FileChannel/Transfer2GPlus.java on linux-aarch64
c5ecb0
  - JDK-8272114: Unused _last_state in osThread_windows
c5ecb0
  - JDK-8272170: Missing memory barrier when checking active state for regions
c5ecb0
  - JDK-8272305: several hotspot runtime/modules don't check exit codes
c5ecb0
  - JDK-8272318: Improve performance of HeapDumpAllTest
c5ecb0
  - JDK-8272328: java.library.path is not set properly by Windows jpackage app launcher
c5ecb0
  - JDK-8272335: runtime/cds/appcds/MoveJDKTest.java doesn't check exit codes
c5ecb0
  - JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches all exceptions
c5ecb0
  - JDK-8272345: macos doesn't check `os::set_boot_path()` result
c5ecb0
  - JDK-8272369: java/io/File/GetXSpace.java failed with "RuntimeException: java.nio.file.NoSuchFileException: /run/user/0"
c5ecb0
  - JDK-8272391: Undeleted debug information
c5ecb0
  - JDK-8272413: Incorrect num of element count calculation for vector cast
c5ecb0
  - JDK-8272473: Parsing epoch seconds at a DST transition with a non-UTC parser is wrong
c5ecb0
  - JDK-8272562: C2: assert(false) failed: Bad graph detected in build_loop_late
c5ecb0
  - JDK-8272570: C2: crash in PhaseCFG::global_code_motion
c5ecb0
  - JDK-8272574: C2: assert(false) failed: Bad graph detected in build_loop_late
c5ecb0
  - JDK-8272639: jpackaged applications using microphone on mac
c5ecb0
  - JDK-8272703: StressSeed should be set via FLAG_SET_ERGO
c5ecb0
  - JDK-8272720: Fix the implementation of loop unrolling heuristic with LoopPercentProfileLimit
c5ecb0
  - JDK-8272783: Epsilon: Refactor tests to improve performance
c5ecb0
  - JDK-8272836: Limit run time for java/lang/invoke/LFCaching tests
c5ecb0
  - JDK-8272838: Move CriticalJNI tests out of tier1
c5ecb0
  - JDK-8272846: Move some runtime/Metaspace/elastic/ tests out of tier1
c5ecb0
  - JDK-8272850: Drop zapping values in the Zap* option descriptions
c5ecb0
  - JDK-8272854: split runtime/CommandLine/PrintTouchedMethods.java test
c5ecb0
  - JDK-8272856: DoubleFlagWithIntegerValue uses G1GC-only flag
c5ecb0
  - JDK-8272859: Javadoc external links should only have feature version number in URL
c5ecb0
  - JDK-8272914: Create hotspot:tier2 and hotspot:tier3 test groups
c5ecb0
  - JDK-8272970: Parallelize runtime/InvocationTests/
c5ecb0
  - JDK-8272973: Incorrect compile command used by TestIllegalArrayCopyBeforeInfiniteLoop
c5ecb0
  - JDK-8273021: C2: Improve Add and Xor ideal optimizations
c5ecb0
  - JDK-8273026: Slow LoginContext.login() on multi threading application
c5ecb0
  - JDK-8273135: java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java crashes in liblcms.dylib with NULLSeek+0x7
c5ecb0
  - JDK-8273165: GraphKit::combine_exception_states fails with "matching stack sizes" assert
c5ecb0
  - JDK-8273176: handle latest VS2019 in abstract_vm_version
c5ecb0
  - JDK-8273229: Update OS detection code to recognize Windows Server 2022
c5ecb0
  - JDK-8273234: extended 'for' with expression of type tvar causes the compiler to crash
c5ecb0
  - JDK-8273235: tools/launcher/HelpFlagsTest.java Fails on Windows 32bit
c5ecb0
  - JDK-8273278: Support XSLT on GraalVM Native Image--deterministic bytecode generation in XSLT
c5ecb0
  - JDK-8273308: PatternMatchTest.java fails on CI
c5ecb0
  - JDK-8273314: Add tier4 test groups
c5ecb0
  - JDK-8273315: Parallelize and increase timeouts for java/foreign/TestMatrix.java test
c5ecb0
  - JDK-8273318: Some containers/docker/TestJFREvents.java configs are running out of memory
c5ecb0
  - JDK-8273333: Zero should warn about unimplemented -XX:+LogTouchedMethods
c5ecb0
  - JDK-8273335: compiler/blackhole tests should not run with interpreter-only VMs
c5ecb0
  - JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
c5ecb0
  - JDK-8273359: CI: ciInstanceKlass::get_canonical_holder() doesn't respect instance size
c5ecb0
  - JDK-8273361: InfoOptsTest is failing in tier1
c5ecb0
  - JDK-8273373: Zero: Cannot invoke JVM in primordial threads on Zero
c5ecb0
  - JDK-8273375: Remove redundant 'new String' calls after concatenation in java.desktop
c5ecb0
  - JDK-8273376: Zero: Disable vtable/itableStub gtests
c5ecb0
  - JDK-8273378: Shenandoah: Remove the remaining uses of os::is_MP
c5ecb0
  - JDK-8273408: java.lang.AssertionError: typeSig ERROR on generated class property of record
c5ecb0
  - JDK-8273416: C2: assert(false) failed: bad AD file after JDK-8252372 with UseSSE={0,1}
c5ecb0
  - JDK-8273440: Zero: Disable runtime/Unsafe/InternalErrorTest.java
c5ecb0
  - JDK-8273450: Fix the copyright header of SVML files
c5ecb0
  - JDK-8273451: Remove unreachable return in  mutexLocker::wait
c5ecb0
  - JDK-8273483: Zero: Clear pending JNI exception check in native method handler
c5ecb0
  - JDK-8273486: Zero: Handle DiagnoseSyncOnValueBasedClasses VM option
c5ecb0
  - JDK-8273487: Zero: Handle "zero" variant in runtime tests
c5ecb0
  - JDK-8273489: Zero: Handle UseHeavyMonitors on all monitorenter paths
c5ecb0
  - JDK-8273498: compiler/c2/Test7179138_1.java timed out
c5ecb0
  - JDK-8273505: runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java#default-cl crashed with SIGSEGV in MetaspaceShared::link_shared_classes
c5ecb0
  - JDK-8273514: java/util/DoubleStreamSums/CompensatedSums.java failure
c5ecb0
  - JDK-8273575: memory leak in appendBootClassPath(), paths must be deallocated
c5ecb0
  - JDK-8273592: Backout JDK-8271868
c5ecb0
  - JDK-8273593: [REDO] Warn user when using mac-sign option with unsigned app-image.
c5ecb0
  - JDK-8273595: tools/jpackage tests do not work on apt-based Linux distros like Debian
c5ecb0
  - JDK-8273606: Zero: SPARC64 build fails with si_band type mismatch
c5ecb0
  - JDK-8273614: Shenandoah: intermittent  timeout with ConcurrentGCBreakpoint tests
c5ecb0
  - JDK-8273638: javax/swing/JTable/4235420/bug4235420.java fails in GTK L&F
c5ecb0
  - JDK-8273646: Add openssl from path variable also in to Default System Openssl Path in OpensslArtifactFetcher
c5ecb0
  - JDK-8273678: TableAccessibility and TableRowAccessibility miss autorelease
c5ecb0
  - JDK-8273695: Safepoint deadlock on VMOperation_lock
c5ecb0
  - JDK-8273790: Potential cyclic dependencies between Gregorian and CalendarSystem
c5ecb0
  - JDK-8273806: compiler/cpuflags/TestSSE4Disabled.java should test for CPU feature explicitly
c5ecb0
  - JDK-8273807: Zero: Drop incorrect test block from compiler/startup/NumCompilerThreadsCheck.java
c5ecb0
  - JDK-8273808: Cleanup AddFontsToX11FontPath
c5ecb0
  - JDK-8273826: Correct Manifest file name and NPE checks
c5ecb0
  - JDK-8273887: [macos] java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java timed out
c5ecb0
  - JDK-8273894: ConcurrentModificationException raised every time ReferralsCache drops referral
c5ecb0
  - JDK-8273902: Memory leak in OopStorage due to bug in OopHandle::release()
c5ecb0
  - JDK-8273924: ArrayIndexOutOfBoundsException thrown in java.util.JapaneseImperialCalendar.add()
c5ecb0
  - JDK-8273935: (zipfs) Files.getFileAttributeView() throws UOE instead of returning null when view not supported
c5ecb0
  - JDK-8273958: gtest/MetaspaceGtests executes unnecessary tests in debug builds
c5ecb0
  - JDK-8273961: jdk/nio/zipfs/ZipFSTester.java fails if file path contains '+' character
c5ecb0
  - JDK-8273965: some testlibrary_tests/ir_framework tests fail when c1 disabled
c5ecb0
  - JDK-8273968: JCK javax_xml tests fail in CI
c5ecb0
  - JDK-8274056: JavaAccessibilityUtilities leaks JNI objects
c5ecb0
  - JDK-8274074: SIGFPE with C2 compiled code with -XX:+StressGCM
c5ecb0
  - JDK-8274083: Update testing docs to mention tiered testing
c5ecb0
  - JDK-8274087: Windows DLL path not set correctly.
c5ecb0
  - JDK-8274145: C2: condition incorrectly made redundant with dominating main loop exit condition
c5ecb0
  - JDK-8274205: Handle KDC_ERR_SVC_UNAVAILABLE error code from KDC
c5ecb0
  - JDK-8274215: Remove globalsignr2ca root from 17.0.2
c5ecb0
  - JDK-8274242: Implement fast-path for ASCII-compatible CharsetEncoders on x86
c5ecb0
  - JDK-8274265: Suspicious string concatenation in logTestUtils.inline.hpp
c5ecb0
  - JDK-8274293: Build failure on macOS with Xcode 13.0 as vfork is deprecated
c5ecb0
  - JDK-8274325: C4819 warning at vm_version_x86.cpp on Windows after JDK-8234160
c5ecb0
  - JDK-8274326: [macos] Ensure initialisation of sun/lwawt/macosx/CAccessibility in JavaComponentAccessibility.m
c5ecb0
  - JDK-8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern
c5ecb0
  - JDK-8274338: com/sun/jdi/RedefineCrossEvent.java failed "assert(m != __null) failed: NULL mirror"
c5ecb0
  - JDK-8274347: Passing a *nested* switch expression as a parameter causes an NPE during compile
c5ecb0
  - JDK-8274349: ForkJoinPool.commonPool() does not work with 1 CPU
c5ecb0
  - JDK-8274381: missing CAccessibility definitions in JNI code
c5ecb0
  - JDK-8274383: JNI call of getAccessibleSelection on a wrong thread
c5ecb0
  - JDK-8274401: C2: GraphKit::load_array_element bypasses Access API
c5ecb0
  - JDK-8274406: RunThese30M.java failed "assert(!LCA_orig->dominates(pred_block) || early->dominates(pred_block)) failed: early is high enough"
c5ecb0
  - JDK-8274407: (tz) Update Timezone Data to 2021c
c5ecb0
  - JDK-8274435: EXCEPTION_ACCESS_VIOLATION in BFSClosure::closure_impl
c5ecb0
  - JDK-8274467: TestZoneInfo310.java fails with tzdata2021b
c5ecb0
  - JDK-8274468: TimeZoneTest.java fails with tzdata2021b
c5ecb0
  - JDK-8274501: c2i entry barriers read int as long on AArch64
c5ecb0
  - JDK-8274521: jdk/jfr/event/gc/detailed/TestGCLockerEvent.java fails when other GC is selected
c5ecb0
  - JDK-8274522: java/lang/management/ManagementFactory/MXBeanException.java test fails with Shenandoah
c5ecb0
  - JDK-8274523: java/lang/management/MemoryMXBean/MemoryTest.java test should handle Shenandoah
c5ecb0
  - JDK-8274550: c2i entry barriers read int as long on PPC
c5ecb0
  - JDK-8274560: JFR: Add test for OldObjectSample event when using Shenandoah
c5ecb0
  - JDK-8274606: Fix jaxp/javax/xml/jaxp/unittest/transform/SurrogateTest.java test
c5ecb0
  - JDK-8274642: jdk/jshell/CommandCompletionTest.java fails with NoSuchElementException after JDK-8271287
c5ecb0
  - JDK-8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume.
c5ecb0
  - JDK-8274736: Concurrent read/close of SSLSockets causes SSLSessions to be invalidated unnecessarily
c5ecb0
  - JDK-8274770: [PPC64] resolve_jobject needs a generic implementation to support load barriers
c5ecb0
  - JDK-8274773: [TESTBUG] UnsafeIntrinsicsTest intermittently fails on weak memory model platform
c5ecb0
  - JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST
c5ecb0
  - JDK-8274840: Update OS detection code to recognize Windows 11
c5ecb0
  - JDK-8274848: LambdaMetaFactory::metafactory on REF_invokeSpecial impl method has incorrect behavior
c5ecb0
  - JDK-8274851: [ppc64] Port zgc to linux on ppc64le
c5ecb0
  - JDK-8274942: AssertionError at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:155)
c5ecb0
  - JDK-8275008: gtest build failure due to stringop-overflow warning with gcc11
c5ecb0
  - JDK-8275049: [ZGC] missing null check in ZNMethod::log_register
c5ecb0
  - JDK-8275051: Shenandoah: Correct ordering of requested gc cause and gc request flag
c5ecb0
  - JDK-8275071: [macos] A11y cursor gets stuck when combobox is closed
c5ecb0
  - JDK-8275104: IR framework does not handle client VM builds correctly
c5ecb0
  - JDK-8275110: Correct RE Configs for CPU Release 17.0.2 on master branch for jdk17u-cpu and jdk17u-cpu-open repos.
c5ecb0
  - JDK-8275131: Exceptions after a touchpad gesture on macOS
c5ecb0
  - JDK-8275141: recover corrupted line endings for the version-numbers.conf
c5ecb0
  - JDK-8275145: file.encoding system property has an incorrect value on Windows
c5ecb0
  - JDK-8275226: Shenandoah: Relax memory constraint for worker claiming tasks/ranges
c5ecb0
  - JDK-8275302: unexpected compiler error: cast, intersection types and sealed
c5ecb0
  - JDK-8275426: PretouchTask num_chunks calculation can overflow
c5ecb0
  - JDK-8275604: Zero: Reformat opclabels_data
c5ecb0
  - JDK-8275666: serviceability/jvmti/GetObjectSizeClass.java shouldn't have vm.flagless
c5ecb0
  - JDK-8275703: System.loadLibrary fails on Big Sur for libraries hidden from filesystem
c5ecb0
  - JDK-8275720: CommonComponentAccessibility.createWithParent isWrapped causes mem leak
c5ecb0
  - JDK-8275766: (tz) Update Timezone Data to 2021e
c5ecb0
  - JDK-8275809: crash in [CommonComponentAccessibility getCAccessible:withEnv:]
c5ecb0
  - JDK-8275811: Incorrect instance to dispose
c5ecb0
  - JDK-8275819: [TableRowAccessibility accessibilityChildren] method is ineffective
c5ecb0
  - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e
c5ecb0
  - JDK-8275863: Use encodeASCII for ASCII-compatible DoubleByte encodings
c5ecb0
  - JDK-8275872: Sync J2DBench run and analyze Makefile targets with build.xml
c5ecb0
  - JDK-8276025: Hotspot's libsvml.so may conflict with user dependency
c5ecb0
  - JDK-8276066: Reset LoopPercentProfileLimit for x86 due to suboptimal performance
c5ecb0
  - JDK-8276076: Updating RE Configs for BUILD REQUEST 17.0.2+3
c5ecb0
  - JDK-8276105: C2: Conv(D|F)2(I|L)Nodes::Ideal should handle rounding correctly
c5ecb0
  - JDK-8276112: Inconsistent scalar replacement debug info at safepoints
c5ecb0
  - JDK-8276122: Change openjdk project in jcheck to jdk-updates
c5ecb0
  - JDK-8276130: Fix Github Actions of JDK17u to account for update version scheme
c5ecb0
  - JDK-8276139: TestJpsHostName.java not reliable, better to expand HostIdentifierCreate.java test
c5ecb0
  - JDK-8276157: C2: Compiler stack overflow during escape analysis on Linux x86_32
c5ecb0
  - JDK-8276201: Shenandoah: Race results degenerated GC to enter wrong entry point
c5ecb0
  - JDK-8276205: Shenandoah: CodeCache_lock should always be held for initializing code cache iteration
c5ecb0
  - JDK-8276306: jdk/jshell/CustomInputToolBuilder.java fails intermittently on storage acquisition
c5ecb0
  - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766
c5ecb0
  - JDK-8276550: Use SHA256 hash in build.tools.depend.Depend
c5ecb0
  - JDK-8276572: Fake libsyslookup.so library causes tooling issues
c5ecb0
  - JDK-8276774: Cookie stored in CookieHandler not sent if user headers contain cookie
c5ecb0
  - JDK-8276801: gc/stress/CriticalNativeStress.java fails intermittently with Shenandoah
c5ecb0
  - JDK-8276805: java/awt/print/PrinterJob/CheckPrivilege.java fails due to disabled SecurityManager
c5ecb0
  - JDK-8276845: (fs) java/nio/file/spi/SetDefaultProvider.java fails on x86_32
c5ecb0
  - JDK-8276846: JDK-8273416 is incomplete for UseSSE=1
c5ecb0
  - JDK-8276854: Windows GHA builds fail due to broken Cygwin
c5ecb0
  - JDK-8276864: Update boot JDKs to 17.0.1 in GHA
c5ecb0
  - JDK-8276905: Use appropriate macosx_version_minimum value while compiling metal shaders
c5ecb0
  - JDK-8276927: [ppc64] Port shenandoahgc to linux on ppc64le
c5ecb0
  - JDK-8277029: JMM GetDiagnosticXXXInfo APIs should verify output array sizes
c5ecb0
  - JDK-8277093: Vector should throw ClassNotFoundException for a missing class of an element
c5ecb0
  - JDK-8277159: Fix java/nio/file/FileStore/Basic.java test by ignoring /run/user/* mount points
c5ecb0
  - JDK-8277195: missing CAccessibility definition in [CommonComponentAccessibility accessibilityHitTest]
c5ecb0
  - JDK-8277212: GC accidentally cleans valid megamorphic vtable inline caches
c5ecb0
  - JDK-8277224: sun.security.pkcs.PKCS9Attributes.toString() throws NPE
c5ecb0
  - JDK-8277529: SIGSEGV in C2 CompilerThread Node::rematerialize() compiling Packet::readUnsignedTrint
c5ecb0
  - JDK-8277981: String Deduplication table is never cleaned up due to bad dead_factor_for_cleanup
c5ecb0
c5ecb0
Notes on individual issues:
c5ecb0
===========================
c5ecb0
c5ecb0
core-libs/java.io:serialization:
c5ecb0
c5ecb0
JDK-8277157: Vector should throw ClassNotFoundException for a missing class of an element
c5ecb0
=========================================================================================
c5ecb0
`java.util.Vector` is updated to correctly report
c5ecb0
`ClassNotFoundException that occurs during deserialization using
c5ecb0
`java.io.ObjectInputStream.GetField.get(name, object)` when the class
c5ecb0
of an element of the Vector is not found. Without this fix, a
c5ecb0
`StreamCorruptedException` is thrown that does not provide information
c5ecb0
about the missing class.
c5ecb0
c5ecb0
security-libs/java.security:
c5ecb0
c5ecb0
JDK-8272535: Removed Google's GlobalSign Root Certificate
c5ecb0
=========================================================
c5ecb0
The following root certificate from Google has been removed from the
c5ecb0
`cacerts` keystore:
c5ecb0
c5ecb0
Alias Name: globalsignr2ca [jdk]
c5ecb0
Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
c5ecb0
c5ecb0
core-libs/java.io:
c5ecb0
c5ecb0
JDK-8275343: file.encoding System Property Has an Incorrect Value on Windows
c5ecb0
============================================================================
c5ecb0
The initialization of the `file.encoding` system property on non macOS
c5ecb0
platforms has been reverted to align with the behavior on or before
c5ecb0
JDK 11.  This has been an issue especially on Windows where the system
c5ecb0
and user's locales are not the same.
c5ecb0
c5ecb0
hotspot/gc:
c5ecb0
c5ecb0
JDK-8277533: ZGC: Fixed long Process Non-Strong References times
c5ecb0
================================================================
c5ecb0
A bug has been fixed that could cause long "Concurrent Process
c5ecb0
Non-Strong References" times with ZGC. The bug blocked the GC from
c5ecb0
making significant progress, and caused both latency and throughput
c5ecb0
issues for the Java application.
c5ecb0
c5ecb0
The long times could be seen in the GC logs when running with `-Xlog:gc*` e.g.
c5ecb0
c5ecb0
[17606.140s][info][gc,phases ] GC(719) Concurrent Process Non-Strong References 25781.928ms
c5ecb0
c5ecb0
core-libs/java.time:
c5ecb0
c5ecb0
JDK-8274857:  Update Timezone Data to 2021c
c5ecb0
===========================================
c5ecb0
IANA Time Zone Database, on which JDK's Date/Time libraries are based,
c5ecb0
has been updated to version 2021c
c5ecb0
(https://mm.icann.org/pipermail/tz-announce/2021-October/000067.html). Note
c5ecb0
that with this update, some of the time zone rules prior to the year
c5ecb0
1970 have been modified according to the changes which were introduced
c5ecb0
with 2021b. For more detail, refer to the announcement of 2021b
c5ecb0
(https://mm.icann.org/pipermail/tz-announce/2021-September/000066.html)
c5ecb0
276dd6
New in release OpenJDK 17.0.1 (2021-10-19):
276dd6
===========================================
276dd6
Live versions of these release notes can be found at:
276dd6
  * https://builds.shipilev.net/backports-monitor/release-notes-17.0.1.txt
276dd6
276dd6
* Security fixes
276dd6
  - JDK-8263314: Enhance XML Dsig modes
276dd6
  - JDK-8265167, CVE-2021-35556: Richer Text Editors
276dd6
  - JDK-8265574: Improve handling of sheets
276dd6
  - JDK-8265580, CVE-2021-35559: Enhanced style for RTF kit
276dd6
  - JDK-8265776: Improve Stream handling for SSL
276dd6
  - JDK-8266097, CVE-2021-35561: Better hashing support
276dd6
  - JDK-8266103: Better specified spec values
276dd6
  - JDK-8266109: More Resilient Classloading
276dd6
  - JDK-8266115: More Manifest Jar Loading
276dd6
  - JDK-8266137, CVE-2021-35564: Improve Keystore integrity
276dd6
  - JDK-8266689, CVE-2021-35567: More Constrained Delegation
276dd6
  - JDK-8267086: ArrayIndexOutOfBoundsException in java.security.KeyFactory.generatePublic
276dd6
  - JDK-8267712: Better LDAP reference processing
276dd6
  - JDK-8267729, CVE-2021-35578: Improve TLS client handshaking
276dd6
  - JDK-8267735, CVE-2021-35586: Better BMP support
276dd6
  - JDK-8268193: Improve requests of certificates
276dd6
  - JDK-8268199: Correct certificate requests
276dd6
  - JDK-8268205: Enhance DTLS client handshake
276dd6
  - JDK-8268500: Better specified ParameterSpecs
276dd6
  - JDK-8268506: More Manifest Digests
276dd6
  - JDK-8269618, CVE-2021-35603: Better session identification
276dd6
  - JDK-8269624: Enhance method selection support
276dd6
  - JDK-8270398: Enhance canonicalization
276dd6
  - JDK-8270404: Better canonicalization
276dd6
* Other changes
276dd6
  - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021
276dd6
  - JDK-8243543: jtreg test security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java fails
276dd6
  - JDK-8248899: security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java fails, Certificate has been revoked
276dd6
  - JDK-8261088: Repeatable annotations without @Target cannot have containers that target module declarations
276dd6
  - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during "PrinterJob.print"
276dd6
  - JDK-8263531: Remove unused buffer int
276dd6
  - JDK-8266182: Automate manual steps listed in the test jdk/sun/security/pkcs12/ParamsTest.java
276dd6
  - JDK-8267625: AARCH64: typo in LIR_Assembler::emit_profile_type
276dd6
  - JDK-8267666: Add option to jcmd GC.heap_dump to use existing file
276dd6
  - JDK-8268019: C2: assert(no_dead_loop) failed: dead loop detected
276dd6
  - JDK-8268261: C2: assert(n != __null) failed: Bad immediate dominator info.
276dd6
  - JDK-8268427: Improve AlgorithmConstraints:checkAlgorithm performance
276dd6
  - JDK-8268963: [IR Framework] Some default regexes matching on PrintOptoAssembly in IRNode.java do not work on all platforms
276dd6
  - JDK-8269297: Bump version numbers for JDK 17.0.1
276dd6
  - JDK-8269478: Shenandoah: gc/shenandoah/mxbeans tests should be more resilient
276dd6
  - JDK-8269574: C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events
276dd6
  - JDK-8269763: The JEditorPane is blank after JDK-8265167
276dd6
  - JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu usage in containers
276dd6
  - JDK-8269882: stack-use-after-scope in NewObjectA
276dd6
  - JDK-8269897: Shenandoah: Resolve UNKNOWN access strength, where possible
276dd6
  - JDK-8269934: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
276dd6
  - JDK-8269993: [Test]: java/net/httpclient/DigestEchoClientSSL.java contains redundant @run tags
276dd6
  - JDK-8270094: Shenandoah: Provide human-readable labels for test configurations
276dd6
  - JDK-8270096: Shenandoah: Optimize gc/shenandoah/TestRefprocSanity.java for interpreter mode
276dd6
  - JDK-8270098: ZGC: ZBarrierSetC2::clone_at_expansion fails with "Guard against surprises" assert
276dd6
  - JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm Setup
276dd6
  - JDK-8270280: security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA.java  OCSP response error
276dd6
  - JDK-8270344: Session resumption errors
276dd6
  - 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
276dd6
  - JDK-8271276: C2: Wrong JVM state used for receiver null check
276dd6
  - JDK-8271335: Updating RE Configs for BUILD REQUEST 17.0.1+4
276dd6
  - JDK-8271589: fatal error with variable shift count integer rotate operation.
276dd6
  - JDK-8271723: Unproblemlist runtime/InvocationTests/invokevirtualTests.java
276dd6
  - JDK-8271730: Client authentication using RSASSA-PSS fails after correct certificate requests
276dd6
  - JDK-8271925: ZGC: Arraycopy stub passes invalid oop to load barrier
276dd6
  - JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path contains colon
276dd6
  - JDK-8272131: PhaseMacroExpand::generate_slow_arraycopy crash when clone null CallProjections.fallthrough_ioproj
276dd6
  - JDK-8272326: java/util/Random/RandomTestMoments.java had two Gaussian fails
276dd6
  - JDK-8272332: --with-harfbuzz=system doesn't add -lharfbuzz after JDK-8255790
276dd6
  - JDK-8272472: StackGuardPages test doesn't build with glibc 2.34
276dd6
  - JDK-8272581: sun/security/pkcs11/Provider/MultipleLogins.sh fails after JDK-8266182
276dd6
  - JDK-8272602: [macos] not all KEY_PRESSED events sent when control modifier is used
276dd6
  - JDK-8272700: [macos] Build failure with Xcode 13.0 after JDK-8264848
276dd6
  - JDK-8272708: [Test]: Cleanup: test/jdk/security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java no longer needs ocspEnabled
276dd6
  - JDK-8272806: [macOS] "Apple AWT Internal Exception" when input method is changed
276dd6
  - JDK-8273358: macOS Monterey does not have the font Times needed by Serif
276dd6
276dd6
Notes on individual issues:
276dd6
===========================
276dd6
276dd6
security-libs/java.security:
276dd6
276dd6
JDK-8271434: Removed IdenTrust Root Certificate
276dd6
===============================================
276dd6
The following root certificate from IdenTrust has been removed from
276dd6
the `cacerts` keystore:
276dd6
276dd6
Alias Name: identrustdstx3 [jdk]
276dd6
Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.
276dd6
c0ba06
New in release OpenJDK 17.0.0 (2021-09-14):
c0ba06
===========================================
c0ba06
The full list of changes in the interim releases from 11u to 17u can be found at:
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-12.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-13.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-14.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-15.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-16.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-17.txt
c0ba06
c0ba06
Major changes are listed below.  Some changes may have been backported
c0ba06
to earlier releases following their first appearance in OpenJDK 12
c0ba06
through to 17.
c0ba06
c0ba06
NEW FEATURES
c0ba06
============
c0ba06
c0ba06
Language Features
c0ba06
=================
c0ba06
c0ba06
Switch Expressions
c0ba06
==================
c0ba06
https://openjdk.java.net/jeps/325
c0ba06
https://openjdk.java.net/jeps/354
c0ba06
https://openjdk.java.net/jeps/361
c0ba06
c0ba06
Extend the `switch` statement so that it can be used as either a
c0ba06
statement or an expression, and that both forms can use either a
c0ba06
"traditional" or "simplified" scoping and control flow behavior.  Both
c0ba06
forms can use either traditional `case ... :` labels (with fall
c0ba06
through) or new `case ... ->` labels (with no fall through), with a
c0ba06
further new statement for yielding a value from a `switch`
c0ba06
expression. These changes will simplify everyday coding, and also
c0ba06
prepare the way for the use of pattern matching in `switch`.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 12 & 13 and became final in OpenJDK 14.
c0ba06
c0ba06
Text Blocks
c0ba06
===========
c0ba06
https://openjdk.java.net/jeps/355
c0ba06
https://openjdk.java.net/jeps/368
c0ba06
https://openjdk.java.net/jeps/378
c0ba06
c0ba06
Add text blocks to the Java language. A text block is a multi-line
c0ba06
string literal that avoids the need for most escape sequences,
c0ba06
automatically formats the string in a predictable way, and gives the
c0ba06
developer control over format when desired.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 13 & 14 and became final in OpenJDK 15.
c0ba06
c0ba06
Pattern Matching for instanceof
c0ba06
===============================
c0ba06
https://openjdk.java.net/jeps/305
c0ba06
https://openjdk.java.net/jeps/375
c0ba06
https://openjdk.java.net/jeps/394
c0ba06
http://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html
c0ba06
c0ba06
Enhance the Java programming language with pattern matching for the
c0ba06
`instanceof` operator. Pattern matching allows common logic in a
c0ba06
program, namely the conditional extraction of components from objects,
c0ba06
to be expressed more concisely and safely.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 14 & 15 and became final in OpenJDK 16.
c0ba06
c0ba06
Records
c0ba06
=======
c0ba06
https://openjdk.java.net/jeps/359
c0ba06
https://openjdk.java.net/jeps/384
c0ba06
https://openjdk.java.net/jeps/395
c0ba06
c0ba06
Enhance the Java programming language with records.  Records provide a
c0ba06
compact syntax for declaring classes which are transparent holders for
c0ba06
shallowly immutable data.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 14 & 15 and became final in OpenJDK 16.
c0ba06
c0ba06
Sealed Classes
c0ba06
==============
c0ba06
https://openjdk.java.net/jeps/360
c0ba06
https://openjdk.java.net/jeps/397
c0ba06
https://openjdk.java.net/jeps/409
c0ba06
https://cr.openjdk.java.net/~briangoetz/amber/datum.html
c0ba06
c0ba06
Enhance the Java programming language with sealed classes and
c0ba06
interfaces. Sealed classes and interfaces restrict which other classes
c0ba06
or interfaces may extend or implement them.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 15 & 16 and became final in OpenJDK 17.
c0ba06
c0ba06
Restore Always-Strict Floating-Point Semantics
c0ba06
==============================================
c0ba06
https://openjdk.java.net/jeps/306
c0ba06
c0ba06
Make floating-point operations consistently strict, rather than have
c0ba06
both strict floating-point semantics (`strictfp`) and subtly different
c0ba06
default floating-point semantics. This will restore the original
c0ba06
floating-point semantics to the language and VM, matching the
c0ba06
semantics before the introduction of strict and default floating-point
c0ba06
modes in Java SE 1.2.
c0ba06
c0ba06
Pattern Matching for switch
c0ba06
===========================
c0ba06
https://openjdk.java.net/jeps/406
c0ba06
c0ba06
Enhance the Java programming language with pattern matching for
c0ba06
`switch` expressions and statements, along with extensions to the
c0ba06
language of patterns. Extending pattern matching to `switch` allows an
c0ba06
expression to be tested against a number of patterns, each with a
c0ba06
specific action, so that complex data-oriented queries can be
c0ba06
expressed concisely and safely.
c0ba06
c0ba06
This is a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK
c0ba06
17.
c0ba06
c0ba06
Library Features
c0ba06
================
c0ba06
c0ba06
JVM Constants API
c0ba06
=================
c0ba06
https://openjdk.java.net/jeps/334
c0ba06
c0ba06
Introduce an API to model nominal descriptions of key class-file and
c0ba06
run-time artifacts, in particular constants that are loadable from the
c0ba06
constant pool.
c0ba06
c0ba06
Reimplement the Legacy Socket API
c0ba06
=================================
c0ba06
https://openjdk.java.net/jeps/353
c0ba06
c0ba06
Replace the underlying implementation used by the `java.net.Socket`
c0ba06
and `java.net.ServerSocket` APIs with a simpler and more modern
c0ba06
implementation that is easy to maintain and debug. The new
c0ba06
implementation will be easy to adapt to work with user-mode threads,
c0ba06
a.k.a. fibers, currently being explored in Project Loom
c0ba06
(https://openjdk.java.net/projects/loom).
c0ba06
c0ba06
JFR Event Streaming
c0ba06
===================
c0ba06
https://openjdk.java.net/jeps/349
c0ba06
c0ba06
Expose JDK Flight Recorder data for continuous monitoring.
c0ba06
c0ba06
Non-Volatile Mapped Byte Buffers
c0ba06
================================
c0ba06
https://openjdk.java.net/jeps/352
c0ba06
c0ba06
Add new JDK-specific file mapping modes so that the `FileChannel` API
c0ba06
can be used to create `MappedByteBuffer` instances that refer to
c0ba06
non-volatile memory.
c0ba06
c0ba06
Helpful NullPointerExceptions
c0ba06
=============================
c0ba06
https://openjdk.java.net/jeps/358
c0ba06
c0ba06
Improve the usability of `NullPointerException`s generated by the JVM
c0ba06
by describing precisely which variable was `null`.
c0ba06
c0ba06
Foreign-Memory Access API
c0ba06
=========================
c0ba06
https://openjdk.java.net/jeps/370
c0ba06
https://openjdk.java.net/jeps/383
c0ba06
https://openjdk.java.net/jeps/393
c0ba06
c0ba06
Introduce an API to allow Java programs to safely and efficiently
c0ba06
access foreign memory outside of the Java heap.
c0ba06
c0ba06
This was a incubation feature (https://openjdk.java.net/jeps/11) in
c0ba06
OpenJDK 14, 15 & 16, now superseded by the Foreign Function & Memory
c0ba06
API in OpenJDK 17 (see below).
c0ba06
c0ba06
Edwards-Curve Digital Signature Algorithm (EdDSA)
c0ba06
=================================================
c0ba06
https://openjdk.java.net/jeps/339
c0ba06
c0ba06
Implement cryptographic signatures using the Edwards-Curve Digital
c0ba06
Signature Algorithm (EdDSA) as described by RFC 8032
c0ba06
(https://tools.ietf.org/html/rfc8032).
c0ba06
c0ba06
Hidden Classes
c0ba06
==============
c0ba06
https://openjdk.java.net/jeps/371
c0ba06
c0ba06
Introduce hidden classes, which are classes that cannot be used
c0ba06
directly by the bytecode of other classes. Hidden classes are intended
c0ba06
for use by frameworks that generate classes at run time and use them
c0ba06
indirectly, via reflection. A hidden class may be defined as a member
c0ba06
of an access control nest (https://openjdk.java.net/jeps/181), and may
c0ba06
be unloaded independently of other classes.
c0ba06
c0ba06
Reimplement the Legacy DatagramSocket API
c0ba06
=========================================
c0ba06
https://openjdk.java.net/jeps/373
c0ba06
c0ba06
Replace the underlying implementations of the
c0ba06
`java.net.DatagramSocket` and `java.net.MulticastSocket` APIs with
c0ba06
simpler and more modern implementations that are easy to maintain and
c0ba06
debug. The new implementations will be easy to adapt to work with
c0ba06
virtual threads, currently being explored in Project Loom
c0ba06
(https://openjdk.java.net/projects/loom). This is a follow-on to JEP
c0ba06
353 (see above), which already reimplemented the legacy Socket API.
c0ba06
c0ba06
Vector API
c0ba06
==========
c0ba06
https://openjdk.java.net/jeps/338
c0ba06
https://openjdk.java.net/jeps/414
c0ba06
c0ba06
Provide an initial iteration of an incubator module,
c0ba06
`jdk.incubator.vector`, to express vector computations that reliably
c0ba06
compile at runtime to optimal vector hardware instructions on
c0ba06
supported CPU architectures and thus achieve superior performance to
c0ba06
equivalent scalar computations.
c0ba06
c0ba06
This is an incubation feature (https://openjdk.java.net/jeps/11)
c0ba06
introduced in OpenJDK 16.
c0ba06
c0ba06
Unix-Domain Socket Channels
c0ba06
===========================
c0ba06
https://openjdk.java.net/jeps/380
c0ba06
c0ba06
Add Unix-domain (`AF_UNIX`) socket support to the socket channel and
c0ba06
server-socket channel APIs in the `java.nio.channels` package. Extend
c0ba06
the inherited channel mechanism to support Unix-domain socket channels
c0ba06
and server socket channels.
c0ba06
c0ba06
Foreign Linker API (Incubator)
c0ba06
==============================
c0ba06
https://openjdk.java.net/jeps/389
c0ba06
c0ba06
Introduce an API that offers statically-typed, pure-Java access to
c0ba06
native code. This API, together with the Foreign-Memory API (see
c0ba06
above), will considerably simplify the otherwise error-prone process
c0ba06
of binding to a native library.
c0ba06
c0ba06
This was an incubation feature (https://openjdk.java.net/jeps/11)
c0ba06
introduced in OpenJDK 16, now superseded by the Foreign Function &
c0ba06
Memory API in OpenJDK 17 (see below).
c0ba06
c0ba06
Strongly Encapsulate JDK Internals by Default
c0ba06
=============================================
c0ba06
https://openjdk.java.net/jeps/396
c0ba06
https://openjdk.java.net/jeps/403
c0ba06
c0ba06
Strongly encapsulate all internal elements of the JDK by default,
c0ba06
except for critical internal APIs such as `sun.misc.Unsafe`.  It will
c0ba06
no longer be possible to relax the strong encapsulation of internal
c0ba06
elements via a single command-line option, as was possible in OpenJDK
c0ba06
9 through 16.
c0ba06
c0ba06
Enhanced Pseudo-Random Number Generators
c0ba06
========================================
c0ba06
https://openjdk.java.net/jeps/356
c0ba06
c0ba06
Provide new interface types and implementations for pseudo-random
c0ba06
number generators (PRNGs), including jumpable PRNGs and an additional
c0ba06
class of splittable PRNG algorithms (LXM).
c0ba06
c0ba06
Foreign Function & Memory API
c0ba06
=============================
c0ba06
https://openjdk.java.net/jeps/412
c0ba06
c0ba06
Introduce an API by which Java programs can interoperate with code and
c0ba06
data outside of the Java runtime. By efficiently invoking foreign
c0ba06
functions (i.e., code outside the JVM), and by safely accessing
c0ba06
foreign memory (i.e., memory not managed by the JVM), the API enables
c0ba06
Java programs to call native libraries and process native data without
c0ba06
the brittleness and danger of JNI.
c0ba06
c0ba06
This API is an incubation feature (https://openjdk.java.net/jeps/11)
c0ba06
introduced in OpenJDK 17, and is an evolution of the Foreign Memory
c0ba06
Access API (OpenJDK 14 through 16) and Foreign Linker API (OpenJDK
c0ba06
16) (see above).
c0ba06
c0ba06
Context-Specific Deserialization Filters
c0ba06
========================================
c0ba06
https://openjdk.java.net/jeps/415
c0ba06
c0ba06
Allow applications to configure context-specific and
c0ba06
dynamically-selected deserialization filters via a JVM-wide filter
c0ba06
factory that is invoked to select a filter for each individual
c0ba06
deserialization operation.
c0ba06
c0ba06
Tools
c0ba06
=====
c0ba06
c0ba06
Packaging Tool
c0ba06
==============
c0ba06
https://openjdk.java.net/jeps/343
c0ba06
https://openjdk.java.net/jeps/392
c0ba06
c0ba06
Provide the `jpackage` tool, for packaging self-contained Java
c0ba06
applications.
c0ba06
c0ba06
JVM Features
c0ba06
============
c0ba06
c0ba06
Shenandoah: A Low-Pause-Time Garbage Collector
c0ba06
==============================================
c0ba06
https://openjdk.java.net/jeps/189
c0ba06
https://openjdk.java.net/jeps/379
c0ba06
c0ba06
Add a new garbage collection (GC) algorithm named Shenandoah which
c0ba06
reduces GC pause times by doing evacuation work concurrently with the
c0ba06
running Java threads.  Pause times with Shenandoah are independent of
c0ba06
heap size, meaning you will have the same consistent pause times
c0ba06
whether your heap is 200 MB or 200 GB.
c0ba06
c0ba06
Shenandoah has been provided in Red Hat builds of OpenJDK 8 since
c0ba06
8u131 in April 2017 and in all 11u builds.
c0ba06
c0ba06
Upstream, it was introduced in OpenJDK 12 as an experimental feature
c0ba06
and became a production feature in OpenJDK 15. It was backported to
c0ba06
OpenJDK 11 with the 11.0.9 release in October 2020.
c0ba06
c0ba06
Abortable Mixed Collections for G1
c0ba06
==================================
c0ba06
https://openjdk.java.net/jeps/344
c0ba06
c0ba06
Make G1 mixed collections abortable if they might exceed the pause
c0ba06
target.
c0ba06
c0ba06
Promptly Return Unused Committed Memory from G1
c0ba06
===============================================
c0ba06
https://openjdk.java.net/jeps/346
c0ba06
c0ba06
Enhance the G1 garbage collector to automatically return Java heap
c0ba06
memory to the operating system when idle.
c0ba06
c0ba06
Dynamic CDS Archives
c0ba06
====================
c0ba06
https://openjdk.java.net/jeps/310
c0ba06
https://openjdk.java.net/jeps/350
c0ba06
c0ba06
Extend application class-data sharing to allow the dynamic archiving
c0ba06
of classes at the end of Java application execution. The archived
c0ba06
classes will include all loaded application classes and library
c0ba06
classes that are not present in the default, base-layer CDS archive.
c0ba06
c0ba06
ZGC: Uncommit Unused Memory (Experimental)
c0ba06
==========================================
c0ba06
https://openjdk.java.net/jeps/351
c0ba06
c0ba06
Enhance ZGC to return unused heap memory to the operating system.
c0ba06
c0ba06
NUMA-Aware Memory Allocation for G1
c0ba06
===================================
c0ba06
https://openjdk.java.net/jeps/345
c0ba06
c0ba06
Improve G1 performance on large machines by implementing NUMA-aware
c0ba06
memory allocation.
c0ba06
c0ba06
ZGC on macOS (Experimental)
c0ba06
===========================
c0ba06
https://openjdk.java.net/jeps/364
c0ba06
c0ba06
Port the ZGC garbage collector to macOS.
c0ba06
c0ba06
ZGC on Windows (Experimental)
c0ba06
=============================
c0ba06
https://openjdk.java.net/jeps/365
c0ba06
c0ba06
Port the ZGC garbage collector to Windows.
c0ba06
c0ba06
ZGC: A Scalable Low-Latency Garbage Collector (Production)
c0ba06
==========================================================
c0ba06
https://openjdk.java.net/jeps/377
c0ba06
c0ba06
Change the Z Garbage Collector from an experimental feature into a
c0ba06
product feature.
c0ba06
c0ba06
ZGC: Concurrent Thread-Stack Processing
c0ba06
=======================================
c0ba06
https://openjdk.java.net/jeps/376
c0ba06
c0ba06
Move ZGC thread-stack processing from safepoints to a concurrent
c0ba06
phase.
c0ba06
c0ba06
Elastic Metaspace
c0ba06
=================
c0ba06
https://openjdk.java.net/jeps/387
c0ba06
c0ba06
Return unused HotSpot class-metadata (i.e., metaspace) memory to the
c0ba06
operating system more promptly, reduce metaspace footprint, and
c0ba06
simplify the metaspace code in order to reduce maintenance costs.
c0ba06
c0ba06
Ports
c0ba06
=====
c0ba06
c0ba06
Alpine Linux Port
c0ba06
=================
c0ba06
https://openjdk.java.net/jeps/386
c0ba06
c0ba06
Port the JDK to Alpine Linux, and to other Linux distributions that
c0ba06
use musl as their primary C library, on both the x64 and AArch64
c0ba06
architectures,
c0ba06
c0ba06
Windows/AArch64 Port
c0ba06
====================
c0ba06
https://openjdk.java.net/jeps/388
c0ba06
c0ba06
Port the JDK to Windows/AArch64.
c0ba06
c0ba06
New macOS Rendering Pipeline
c0ba06
============================
c0ba06
https://openjdk.java.net/jeps/382
c0ba06
c0ba06
Implement a Java 2D internal rendering pipeline for macOS using the
c0ba06
Apple Metal API as alternative to the existing pipeline, which uses
c0ba06
the deprecated Apple OpenGL API.
c0ba06
c0ba06
macOS/AArch64 Port
c0ba06
==================
c0ba06
https://openjdk.java.net/jeps/391
c0ba06
c0ba06
Port the JDK to macOS/AArch64.
c0ba06
c0ba06
DEPRECATIONS
c0ba06
============
c0ba06
c0ba06
Deprecate the ParallelScavenge + SerialOld GC Combination
c0ba06
=========================================================
c0ba06
https://openjdk.java.net/jeps/366
c0ba06
c0ba06
Deprecate the combination of the Parallel Scavenge and Serial Old
c0ba06
garbage collection algorithms.
c0ba06
c0ba06
Deprecate and Disable Biased Locking
c0ba06
====================================
c0ba06
https://openjdk.java.net/jeps/374
c0ba06
c0ba06
Disable biased locking by default, and deprecate all related
c0ba06
command-line options.
c0ba06
c0ba06
Warnings for Value-Based Classes
c0ba06
================================
c0ba06
https://openjdk.java.net/jeps/390
c0ba06
c0ba06
Designate the primitive wrapper classes as value-based and deprecate
c0ba06
their constructors for removal, prompting new deprecation
c0ba06
warnings. Provide warnings about improper attempts to synchronize on
c0ba06
instances of any value-based classes in the Java Platform.
c0ba06
c0ba06
Deprecate the Applet API for Removal
c0ba06
====================================
c0ba06
https://openjdk.java.net/jeps/398
c0ba06
c0ba06
Deprecate the Applet API for removal.  It is essentially irrelevant
c0ba06
since all web-browser vendors have either removed support for Java
c0ba06
browser plug-ins or announced plans to do so.
c0ba06
c0ba06
Deprecate the Security Manager for Removal
c0ba06
==========================================
c0ba06
https://openjdk.java.net/jeps/411
c0ba06
c0ba06
Deprecate the Security Manager for removal in a future release. The
c0ba06
Security Manager dates from Java 1.0. It has not been the primary
c0ba06
means of securing client-side Java code for many years, and it has
c0ba06
rarely been used to secure server-side code. To move Java forward, we
c0ba06
intend to deprecate the Security Manager for removal in concert with
c0ba06
the legacy Applet API (see above).  .
c0ba06
c0ba06
REMOVALS
c0ba06
========
c0ba06
c0ba06
Remove the Concurrent Mark Sweep (CMS) Garbage Collector
c0ba06
========================================================
c0ba06
https://openjdk.java.net/jeps/363
c0ba06
c0ba06
Remove the Concurrent Mark Sweep (CMS) garbage collector.
c0ba06
c0ba06
Remove the Pack200 Tools and API
c0ba06
================================
c0ba06
https://openjdk.java.net/jeps/336
c0ba06
https://openjdk.java.net/jeps/367
c0ba06
c0ba06
Remove the `pack200` and `unpack200` tools, and the `Pack200` API in
c0ba06
the `java.util.jar` package.  These tools and API were deprecated for
c0ba06
removal in OpenJDK 11 with the express intent to remove them in a
c0ba06
future release.
c0ba06
c0ba06
Remove the Nashorn JavaScript Engine
c0ba06
====================================
c0ba06
https://openjdk.java.net/jeps/372
c0ba06
c0ba06
Remove the Nashorn JavaScript script engine and APIs, and the `jjs`
c0ba06
tool. The engine, the APIs, and the tool were deprecated for removal
c0ba06
in OpenJDK 11 with the express intent to remove them in a future
c0ba06
release.
c0ba06
c0ba06
Remove the Solaris and SPARC Ports
c0ba06
==================================
c0ba06
https://openjdk.java.net/jeps/362
c0ba06
https://openjdk.java.net/jeps/381
c0ba06
c0ba06
Remove the source code and build support for the Solaris/SPARC,
c0ba06
Solaris/x64, and Linux/SPARC ports.  These ports were deprecated for
c0ba06
removal in OpenJDK 14 (JEP 362) and removed in OpenJDK 15 (JEP 381).
c0ba06
c0ba06
Remove RMI Activation
c0ba06
=====================
c0ba06
https://openjdk.java.net/jeps/385
c0ba06
https://openjdk.java.net/jeps/407
c0ba06
https://docs.oracle.com/en/java/javase/14/docs/specs/rmi/activation.html
c0ba06
c0ba06
Remove the Remote Method Invocation (RMI) Activation mechanism, while
c0ba06
preserving the rest of RMI.  RMI Activation is an obsolete part of RMI
c0ba06
that has been optional since OpenJDK 8 and was deprecated in OpenJDK
c0ba06
15.
c0ba06
c0ba06
Remove the Experimental AOT and JIT Compiler
c0ba06
============================================
c0ba06
https://openjdk.java.net/jeps/410
c0ba06
c0ba06
Remove the experimental Java-based ahead-of-time (AOT) and
c0ba06
just-in-time (JIT) compiler.  This compiler has seen little use since
c0ba06
its introduction and the effort required to maintain it is
c0ba06
significant.  Retain the experimental Java-level JVM compiler
c0ba06
interface (JVMCI) so that developers can continue to use
c0ba06
externally-built versions of the compiler for JIT compilation.