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