Blame SOURCES/NEWS

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