Blame SOURCES/NEWS

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