Blame SOURCES/NEWS

c0ba06
Key:
c0ba06
c0ba06
JDK-X  - https://bugs.openjdk.java.net/browse/JDK-X
c0ba06
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
c0ba06
10efc4
New in release OpenJDK 17.0.4.1 (2022-08-16):
10efc4
===========================================
10efc4
Live versions of these release notes can be found at:
10efc4
  * https://bit.ly/openjdk17041
10efc4
  * https://builds.shipilev.net/backports-monitor/release-notes-17.0.4.1.txt
10efc4
10efc4
* Other changes
10efc4
  - JDK-8292258: Bump update version for OpenJDK: jdk-17.0.4.1
10efc4
  - JDK-8292260: [BACKOUT] JDK-8279219: [REDO] C2 crash when allocating array of size too large
10efc4
10efc4
Notes on individual issues:
10efc4
===========================
10efc4
10efc4
hotspot/compiler:
10efc4
10efc4
JDK-8292396: C2 Compilation Errors Unpredictably Crashes JVM
10efc4
============================================================
10efc4
Fixes a regression in the C2 JIT compiler which caused the Java
10efc4
Runtime to crash unpredictably.
10efc4
a8eab4
New in release OpenJDK 17.0.4 (2022-07-19):
a8eab4
===========================================
a8eab4
Live versions of these release notes can be found at:
a8eab4
  * https://bitly.com/openjdk1704
a8eab4
  * https://builds.shipilev.net/backports-monitor/release-notes-17.0.4.txt
a8eab4
a8eab4
* Security fixes
a8eab4
  - JDK-8272243: Improve DER parsing
a8eab4
  - JDK-8272249: Better properties of loaded Properties
7b63c2
  - JDK-8273056, JDK-8283875, CVE-2022-21549: java.util.random does not correctly sample exponential or Gaussian distributions
a8eab4
  - JDK-8277608: Address IP Addressing
a8eab4
  - JDK-8281859, CVE-2022-21540: Improve class compilation
a8eab4
  - JDK-8281866, CVE-2022-21541: Enhance MethodHandle invocations
a8eab4
  - JDK-8283190: Improve MIDI processing
a8eab4
  - JDK-8284370: Improve zlib usage
a8eab4
  - JDK-8285407, CVE-2022-34169: Improve Xalan supports
a8eab4
* Other changes
a8eab4
  - JDK-8139173: [macosx] JInternalFrame shadow is not properly drawn
a8eab4
  - JDK-8181571: printing to CUPS fails on mac sandbox app
a8eab4
  - JDK-8193682: Infinite loop in ZipOutputStream.close()
a8eab4
  - JDK-8206187: javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java fails with Port already in use
a8eab4
  - JDK-8209776: Refactor jdk/security/JavaDotSecurity/ifdefs.sh to plain java test
a8eab4
  - JDK-8214733: runtime/8176717/TestInheritFD.java timed out
a8eab4
  - JDK-8236136: tests which use CompilationMode shouldn't be run w/ TieredStopAtLevel
a8eab4
  - JDK-8240756: [macos] SwingSet2:TableDemo:Printed Japanese characters were garbled
a8eab4
  - JDK-8249592: Robot.mouseMove moves cursor to incorrect location when display scale varies and Java runs in DPI Unaware mode
a8eab4
  - JDK-8251904: vmTestbase/nsk/sysdict/vm/stress/btree/btree010/btree010.java fails with ClassNotFoundException: nsk.sysdict.share.BTree0LLRLRLRRLR
a8eab4
  - JDK-8255266: Update Public Suffix List to 3c213aa
a8eab4
  - JDK-8256368: Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers
a8eab4
  - JDK-8258814: Compilation logging crashes for thread suspension / debugging tests
a8eab4
  - JDK-8263461: jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java uses wrong mechanism to cause evacuation failure
a8eab4
  - JDK-8263538: SharedArchiveConsistency.java should test -Xshare:auto as well
a8eab4
  - JDK-8264605: vmTestbase/nsk/jvmti/SuspendThread/suspendthrd003/TestDescription.java failed with "agent_tools.cpp, 471: (foundThread = (jthread) jni_env->NewGlobalRef(foundThread)) != NULL"
a8eab4
  - JDK-8265261: java/nio/file/Files/InterruptCopy.java fails with java.lang.RuntimeException: Copy was not interrupted
a8eab4
  - JDK-8265317: [vector] assert(payload->is_object()) failed: expected 'object' value for scalar-replaced boxed vector but got: NULL
a8eab4
  - JDK-8267163: Rename anonymous loader tests to hidden loader tests
a8eab4
  - JDK-8268231: Aarch64: Use Ldp in intrinsics for String.compareTo
a8eab4
  - JDK-8268558: [TESTBUG] Case 2 in TestP11KeyFactoryGetRSAKeySpec is skipped
a8eab4
  - JDK-8268595: java/io/Serializable/serialFilter/GlobalFilterTest.java#id1 failed in timeout
a8eab4
  - JDK-8268773: Improvements related to: Failed to start thread - pthread_create failed (EAGAIN)
a8eab4
  - JDK-8268906: gc/g1/mixedgc/TestOldGenCollectionUsage.java assumes that GCs take 1ms minimum
a8eab4
  - JDK-8269077: TestSystemGC uses "require vm.gc.G1" for large pages subtest
a8eab4
  - JDK-8269129: Multiple tier1 tests in hotspot/jtreg/compiler are failing for client VMs
a8eab4
  - JDK-8269135: TestDifferentProtectionDomains runs into timeout in client VM
a8eab4
  - JDK-8269373: some tests in jdk/tools/launcher/ fails on localized Windows platform
a8eab4
  - JDK-8269753: Misplaced caret in PatternSyntaxException's detail message
a8eab4
  - JDK-8269933: test/jdk/javax/net/ssl/compatibility/JdkInfo incorrect verification of protocol and cipher support
a8eab4
  - JDK-8270021: Incorrect log decorators in gc/g1/plab/TestPLABEvacuationFailure.java
a8eab4
  - JDK-8270336: [TESTBUG] Fix initialization in NonbranchyTree
a8eab4
  - JDK-8270435: UT: MonitorUsedDeflationThresholdTest failed: did not find too_many string in output
a8eab4
  - JDK-8270468: TestRangeCheckEliminated fails because methods are not compiled
a8eab4
  - JDK-8270797: ShortECDSA.java test is not complete
a8eab4
  - JDK-8270837: fix typos in test TestSigParse.java
a8eab4
  - JDK-8271008: appcds/*/MethodHandlesAsCollectorTest.java  tests time out because of excessive GC (CodeCache GC Threshold) in loom
a8eab4
  - JDK-8271055: Crash during deoptimization with "assert(bb->is_reachable()) failed: getting result from unreachable basicblock" with -XX:+VerifyStack
a8eab4
  - JDK-8271224: runtime/EnclosingMethodAttr/EnclMethodAttr.java doesn't check exit code
a8eab4
  - JDK-8271302: Regex Test Refresh
a8eab4
  - JDK-8272146: Disable Fibonacci test on memory constrained systems
a8eab4
  - JDK-8272168: some hotspot runtime/logging tests don't check exit code
a8eab4
  - JDK-8272169: runtime/logging/LoaderConstraintsTest.java doesn't build test.Empty
a8eab4
  - JDK-8272358: Some tests may fail when executed with other locales than the US
a8eab4
  - JDK-8272493: Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2
a8eab4
  - JDK-8272908: Missing coverage for certain classes in com.sun.org.apache.xml.internal.security
a8eab4
  - JDK-8272964: java/nio/file/Files/InterruptCopy.java fails with java.lang.RuntimeException: Copy was not interrupted
a8eab4
  - JDK-8273095: vmTestbase/vm/mlvm/anonloader/stress/oome/heap/Test.java fails with "wrong OOME"
a8eab4
  - JDK-8273139: C2: assert(f <= 1 && f >= 0) failed: Incorrect frequency
a8eab4
  - JDK-8273142: Remove dependancy of TestHttpServer, HttpTransaction, HttpCallback from open/test/jdk/sun/net/www/protocol/http/ tests
a8eab4
  - JDK-8273169: java/util/regex/NegativeArraySize.java failed after JDK-8271302
a8eab4
  - JDK-8273804: Platform.isTieredSupported should handle the no-compiler case
a8eab4
  - JDK-8274172: Convert JavadocTester to use NIO
a8eab4
  - JDK-8274233: Minor cleanup for ToolBox
a8eab4
  - JDK-8274244: ReportOnImportedModuleAnnotation.java fails on rerun
a8eab4
  - JDK-8274561: sun/net/ftp/TestFtpTimeValue.java timed out on slow machines
a8eab4
  - JDK-8274687: JDWP deadlocks if some Java thread reaches wait in blockOnDebuggerSuspend
a8eab4
  - JDK-8274735: javax.imageio.IIOException: Unsupported Image Type  while processing a valid JPEG image
a8eab4
  - JDK-8274751: Drag And Drop hangs on Windows
a8eab4
  - JDK-8274855: vectorapi tests failing with assert(!vbox->is_Phi()) failed
a8eab4
  - JDK-8274939: Incorrect size of the pixel storage is used by the robot on macOS
a8eab4
  - JDK-8274983: C1 optimizes the invocation of private interface methods
a8eab4
  - JDK-8275037: Test vmTestbase/nsk/sysdict/vm/stress/btree/btree011/btree011.java crashes with memory exhaustion on Windows
a8eab4
  - JDK-8275337: C1: assert(false) failed: live_in set of first block must be empty
a8eab4
  - JDK-8275638: GraphKit::combine_exception_states fails with "matching stack sizes" assert
a8eab4
  - JDK-8275745: Reproducible copyright headers
a8eab4
  - JDK-8275830: C2: Receiver downcast is missing when inlining through method handle linkers
a8eab4
  - JDK-8275854: C2: assert(stride_con != 0) failed: missed some peephole opt
a8eab4
  - JDK-8276260: (se) Remove java/nio/channels/Selector/Wakeup.java from ProblemList (win)
a8eab4
  - JDK-8276657: XSLT compiler tries to define a class with empty name
a8eab4
  - JDK-8276796: gc/TestSystemGC.java large pages subtest fails with ZGC
a8eab4
  - JDK-8276825: hotspot/runtime/SelectionResolution test errors
a8eab4
  - JDK-8276863: Remove test/jdk/sun/security/ec/ECDSAJavaVerify.java
a8eab4
  - JDK-8276880: Remove java/lang/RuntimeTests/exec/ExecWithDir as unnecessary
a8eab4
  - JDK-8276990: Memory leak in invoker.c fillInvokeRequest() during JDI operations
a8eab4
  - JDK-8277055: Assert "missing inlining msg" with -XX:+PrintIntrinsics
a8eab4
  - JDK-8277072: ObjectStreamClass caches keep ClassLoaders alive
a8eab4
  - JDK-8277087: ZipException: zip END header not found at ZipFile#Source.findEND
a8eab4
  - JDK-8277123: jdeps does not report some exceptions correctly
a8eab4
  - JDK-8277165: jdeps --multi-release --print-module-deps fails if module-info.class in different versioned directories
a8eab4
  - JDK-8277166: Data race in jdeps VersionHelper
a8eab4
  - JDK-8277396: [TESTBUG] In DefaultButtonModelCrashTest.java, frame is accessed from main thread
a8eab4
  - JDK-8277422: tools/jar/JarEntryTime.java fails with modified time mismatch
a8eab4
  - JDK-8277893: Arraycopy stress tests
a8eab4
  - JDK-8277906: Incorrect type for IV phi of long counted loops after CCP
a8eab4
  - JDK-8277922: Unable to click JCheckBox in JTable through Java Access Bridge
a8eab4
  - JDK-8278014: [vectorapi] Remove test run script
a8eab4
  - JDK-8278065: Refactor subclassAudits to use ClassValue
a8eab4
  - JDK-8278186: org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method
a8eab4
  - JDK-8278472: Invalid value set to CANDIDATEFORM structure
a8eab4
  - JDK-8278519: serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java failed "assert(handle != __null) failed: JNI handle should not be null"
a8eab4
  - JDK-8278549: UNIX sun/font coding misses SUSE distro detection on recent distro SUSE 15
a8eab4
  - JDK-8278766: Enable OpenJDK build support for reproducible jars and jmods using --date
a8eab4
  - JDK-8278794: Infinite loop in DeflaterOutputStream.finish()
a8eab4
  - JDK-8278796: Incorrect behavior of FloatVector.withLane on X86
a8eab4
  - JDK-8278851: Correct signer logic for jars signed with multiple digestalgs
a8eab4
  - JDK-8278948: compiler/vectorapi/reshape/TestVectorCastAVX1.java crashes in assembler
a8eab4
  - JDK-8278966: two microbenchmarks tests fail "assert(!jvms->method()->has_exception_handlers()) failed: no exception handler expected" after JDK-8275638
a8eab4
  - JDK-8279182: MakeZipReproducible ZipEntry timestamps not localized to UTC
a8eab4
  - JDK-8279219: [REDO] C2 crash when allocating array of size too large
a8eab4
  - JDK-8279227: Access Bridge: Wrong frame position and hit test result on HiDPI display
a8eab4
  - JDK-8279356: Method linking fails with guarantee(mh->adapter() != NULL) failed: Adapter blob must already exist!
a8eab4
  - JDK-8279437: [JVMCI] exception in HotSpotJVMCIRuntime.translate can exit the VM
a8eab4
  - JDK-8279515: C1: No inlining through invokedynamic and invokestatic call sites when resolved class is not linked
a8eab4
  - JDK-8279520: SPNEGO has not passed channel binding info into the underlying mechanism
a8eab4
  - JDK-8279529: ProblemList java/nio/channels/DatagramChannel/ManySourcesAndTargets.java on macosx-aarch64
a8eab4
  - JDK-8279532: ProblemList sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java
a8eab4
  - JDK-8279560: AArch64: generate_compare_long_string_same_encoding and LARGE_LOOP_PREFETCH alignment
a8eab4
  - JDK-8279586: [macos] custom JCheckBox and JRadioBox with custom icon set: focus is still displayed after unchecking
a8eab4
  - JDK-8279597: [TESTBUG] ReturnBlobToWrongHeapTest.java fails with -XX:TieredStopAtLevel=1 on machines with many cores
a8eab4
  - JDK-8279668: x86: AVX2 versions of vpxor should be asserted
a8eab4
  - JDK-8279822: CI: Constant pool entries in error state are not supported
a8eab4
  - JDK-8279834: Alpine Linux fails to build when --with-source-date enabled
a8eab4
  - JDK-8279837: C2: assert(is_Loop()) failed: invalid node class: Region
a8eab4
  - JDK-8279842: HTTPS Channel Binding support for Java GSS/Kerberos
a8eab4
  - JDK-8279958: Provide configure hints for Alpine/apk package managers
a8eab4
  - JDK-8280004: DCmdArgument<jlong>::parse_value() should handle NULL input
a8eab4
  - JDK-8280041: Retry loop issues in java.io.ClassCache
a8eab4
  - JDK-8280123: C2: Infinite loop in CMoveINode::Ideal during IGVN
a8eab4
  - JDK-8280401: [sspi] gss_accept_sec_context leaves output_token uninitialized
a8eab4
  - JDK-8280476: [macOS] : hotspot arm64 bug exposed by latest clang
a8eab4
  - JDK-8280543: Update the "java" and "jcmd" tool specification for CDS
a8eab4
  - JDK-8280593: [PPC64, S390] redundant allocation of MacroAssembler in StubGenerator ctor
a8eab4
  - JDK-8280600: C2: assert(!had_error) failed: bad dominance
a8eab4
  - JDK-8280684: JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.
a8eab4
  - JDK-8280799: С2: assert(false) failed: cyclic dependency prevents range check elimination
a8eab4
  - JDK-8280867: Cpuid1Ecx feature parsing is incorrect for AMD CPUs
a8eab4
  - JDK-8280901: MethodHandle::linkToNative stub is missing w/ -Xint
a8eab4
  - JDK-8280940: gtest os.release_multi_mappings_vm is racy
a8eab4
  - JDK-8280941: os::print_memory_mappings() prints segment preceeding the inclusion range
a8eab4
  - JDK-8280956: Re-examine copyright headers on files in src/java.desktop/macosx/native/libawt_lwawt/awt/a11y
a8eab4
  - JDK-8280964: [Linux aarch64] : drawImage dithers TYPE_BYTE_INDEXED images incorrectly
a8eab4
  - JDK-8281043: Intrinsify recursive ObjectMonitor locking for PPC64
a8eab4
  - JDK-8281168: Micro-optimize VarForm.getMemberName for interpreter
a8eab4
  - JDK-8281262: Windows builds in different directories are not fully reproducible
a8eab4
  - JDK-8281266: [JVMCI] MetaUtil.toInternalName() doesn't handle hidden classes correctly
a8eab4
  - JDK-8281274: deal with ActiveProcessorCount in os::Linux::print_container_info
a8eab4
  - JDK-8281275: Upgrading from 8 to 11 no longer accepts '/' as filepath separator in gc paths
a8eab4
  - JDK-8281318: Improve jfr/event/allocation tests reliability
a8eab4
  - JDK-8281338: NSAccessibilityPressAction action for tree node and NSAccessibilityShowMenuAcgtion action not working
a8eab4
  - JDK-8281450: Remove unnecessary operator new and delete from ObjectMonitor
a8eab4
  - JDK-8281522: Rename ADLC classes which have the same name as hotspot variants
a8eab4
  - JDK-8281544: assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/
a8eab4
  - JDK-8281615: Deadlock caused by jdwp agent
a8eab4
  - JDK-8281638: jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions
a8eab4
  - JDK-8281771: Crash in java_lang_invoke_MethodType::print_signature
a8eab4
  - JDK-8281811: assert(_base == Tuple) failed: Not a Tuple after JDK-8280799
a8eab4
  - JDK-8281822: Test failures on non-DTrace builds due to incomplete DTrace* flags handling
a8eab4
  - JDK-8282008: Incorrect handling of quoted arguments in ProcessBuilder
a8eab4
  - JDK-8282045: When loop strip mining fails, safepoints are removed from loop anyway
a8eab4
  - JDK-8282142: [TestCase] compiler/inlining/ResolvedClassTest.java will fail when --with-jvm-features=-compiler1
a8eab4
  - JDK-8282170: JVMTI SetBreakpoint metaspace allocation test
a8eab4
  - JDK-8282172: CompileBroker::log_metaspace_failure is called from non-Java/compiler threads
a8eab4
  - JDK-8282225: GHA: Allow one concurrent run per PR only
a8eab4
  - JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
a8eab4
  - JDK-8282293: Domain value for system property jdk.https.negotiate.cbt should be case-insensitive
a8eab4
  - JDK-8282295: SymbolPropertyEntry::set_method_type fails with assert
a8eab4
  - JDK-8282312: Minor corrections to evbroadcasti32x4 intrinsic on x86
a8eab4
  - JDK-8282345: handle latest VS2022 in abstract_vm_version
a8eab4
  - JDK-8282382: Report glibc malloc tunables in error reports
a8eab4
  - JDK-8282422: JTable.print() failed with UnsupportedCharsetException on AIX ko_KR locale
a8eab4
  - JDK-8282444: Module finder incorrectly assumes default file system path-separator character
a8eab4
  - JDK-8282499: Bump update version for OpenJDK: jdk-17.0.4
a8eab4
  - JDK-8282509: [exploded image] ResolvedClassTest fails with similar output
a8eab4
  - JDK-8282551: Properly initialize L32X64MixRandom state
a8eab4
  - JDK-8282583: Update BCEL md to include the copyright notice
a8eab4
  - JDK-8282590: C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don't process dead nodes
a8eab4
  - JDK-8282592: C2: assert(false) failed: graph should be schedulable
a8eab4
  - JDK-8282628: Potential memory leak in sun.font.FontConfigManager.getFontConfig()
a8eab4
  - JDK-8282874: Bad performance on gather/scatter API caused by different IntSpecies of indexMap
a8eab4
  - JDK-8282887: Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows
a8eab4
  - JDK-8282929: Localized monetary symbols are not reflected in `toLocalizedPattern` return value
a8eab4
  - JDK-8283017: GHA: Workflows break with update release versions
a8eab4
  - JDK-8283187: C2: loop candidate for superword not always unrolled fully if superword fails
a8eab4
  - JDK-8283217: Leak FcObjectSet in getFontConfigLocations() in fontpath.c
a8eab4
  - JDK-8283249: CompressedClassPointers.java fails on ppc with 'Narrow klass shift: 0' missing
a8eab4
  - JDK-8283279: [Testbug] Improve TestGetSwapSpaceSize
a8eab4
  - JDK-8283315: jrt-fs.jar not always deterministically built
a8eab4
  - JDK-8283323: libharfbuzz optimization level results in extreme build times
a8eab4
  - JDK-8283347: [macos] Bad JNI lookup accessibilityHitTest is shown when Screen magnifier is enabled
a8eab4
  - JDK-8283350: (tz) Update Timezone Data to 2022a
a8eab4
  - JDK-8283408: Fix a C2 crash when filling arrays with unsafe
a8eab4
  - JDK-8283422: Create a new test for JDK-8254790
a8eab4
  - JDK-8283451: C2: assert(_base == Long) failed: Not a Long
a8eab4
  - JDK-8283469: Don't use memset to initialize members in FileMapInfo and fix memory leak
a8eab4
  - JDK-8283497: [windows] print TMP and TEMP in hs_err and VM.info
a8eab4
  - JDK-8283641: Large value for CompileThresholdScaling causes assert
a8eab4
  - JDK-8283725: Launching java with "-Xlog:gc*=trace,safepoint*=trace,class*=trace" crashes the JVM
a8eab4
  - JDK-8283834: Unmappable character for US-ASCII encoding in TestPredicateInputBelowLoopPredicate
a8eab4
  - JDK-8284023: java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo
a8eab4
  - JDK-8284033: Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c
a8eab4
  - JDK-8284094: Memory leak in invoker_completeInvokeRequest()
a8eab4
  - JDK-8284369: TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4
a8eab4
  - JDK-8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer
a8eab4
  - JDK-8284437: Building from different users/workspace is not always deterministic
a8eab4
  - JDK-8284458: CodeHeapState::aggregate() leaks blob_name
a8eab4
  - JDK-8284507: GHA: Only check test results if testing was not skipped
a8eab4
  - JDK-8284532: Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler
a8eab4
  - JDK-8284549: JFR: FieldTable leaks FieldInfoTable member
a8eab4
  - JDK-8284603: [17u] Update Boot JDK used in GHA to 17.0.2
a8eab4
  - JDK-8284620: CodeBuffer may leak _overflow_arena
a8eab4
  - JDK-8284622: Update versions of some Github Actions used in JDK workflow
a8eab4
  - JDK-8284661: Reproducible assembly builds without relative linking
a8eab4
  - JDK-8284754: print more interesting env variables in hs_err and VM.info
a8eab4
  - JDK-8284758: [linux] improve print_container_info
a8eab4
  - JDK-8284848: C2: Compiler blackhole arguments should be treated as globally escaping
a8eab4
  - JDK-8284866: Add test to JDK-8273056
a8eab4
  - JDK-8284884: Replace polling with waiting in javax/swing/text/html/parser/Parser/8078268/bug8078268.java
a8eab4
  - JDK-8284992: Fix misleading Vector API doc for LSHR operator
a8eab4
  - JDK-8285342: Zero build failure with clang due to values not handled in switch
a8eab4
  - JDK-8285394: Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id()
a8eab4
  - JDK-8285397: JNI exception pending in CUPSfuncs.c:250
a8eab4
  - JDK-8285445: cannot open file "NUL:"
a8eab4
  - JDK-8285515: (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4
a8eab4
  - JDK-8285523: Improve test java/io/FileOutputStream/OpenNUL.java
a8eab4
  - JDK-8285686: Update FreeType to 2.12.0
a8eab4
  - JDK-8285726: [11u, 17u] Unify fix for JDK-8284548 with version from head
a8eab4
  - JDK-8285727: [11u, 17u] Unify fix for JDK-8284920 with version from head
a8eab4
  - JDK-8285728: Alpine Linux build fails with busybox tar
a8eab4
  - JDK-8285828: runtime/execstack/TestCheckJDK.java fails with zipped debug symbols
a8eab4
  - JDK-8285921: serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine
a8eab4
  - JDK-8285956: (fs) Excessive default poll interval in PollingWatchService
a8eab4
  - JDK-8286013: Incorrect test configurations for compiler/stable/TestStableShort.java
a8eab4
  - JDK-8286029: Add classpath exemption to globals_vectorApiSupport_***.S.inc
a8eab4
  - JDK-8286198: [linux] Fix process-memory information
a8eab4
  - JDK-8286293: Tests ShortResponseBody and ShortResponseBodyWithRetry should use less resources
a8eab4
  - JDK-8286444: javac errors after JDK-8251329 are not helpful enough to find root cause
a8eab4
  - JDK-8286594: (zipfs) Mention paths with dot elements in ZipException and cleanups
a8eab4
  - JDK-8286601: Mac Aarch: Excessive warnings to be ignored for build jdk
a8eab4
  - JDK-8286855: javac error on invalid jar should only print filename
a8eab4
  - JDK-8287109: Distrust.java failed with CertificateExpiredException
a8eab4
  - JDK-8287119: Add Distrust.java to ProblemList
a8eab4
  - JDK-8287162: (zipfs) Performance regression related to support for POSIX file permissions
a8eab4
  - JDK-8287336: GHA: Workflows break on patch versions
a8eab4
  - JDK-8287362: FieldAccessWatch testcase failed on AIX platform
a8eab4
  - JDK-8287378: GHA: Update cygwin to fix issues in langtools tests on Windows
a8eab4
a8eab4
Notes on individual issues:
a8eab4
===========================
a8eab4
a8eab4
core-libs/java.net:
a8eab4
a8eab4
JDK-8285240: HTTPS Channel Binding support for Java GSS/Kerberos
a8eab4
================================================================
a8eab4
Support has been added for TLS channel binding tokens for
a8eab4
Negotiate/Kerberos authentication over HTTPS through
a8eab4
javax.net.HttpsURLConnection.
a8eab4
a8eab4
Channel binding tokens are increasingly required as an enhanced form
a8eab4
of security which can mitigate certain kinds of socially engineered,
a8eab4
man in the middle (MITM) attacks. They work by communicating from a
a8eab4
client to a server the client's understanding of the binding between
a8eab4
connection security (as represented by a TLS server cert) and higher
a8eab4
level authentication credentials (such as a username and
a8eab4
password). The server can then detect if the client has been fooled by
a8eab4
a MITM and shutdown the session/connection.
a8eab4
a8eab4
The feature is controlled through a new system property
a8eab4
`jdk.https.negotiate.cbt` which is described fully at the following
a8eab4
page:
a8eab4
a8eab4
https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/net/doc-files/net-properties.html#jdk.https.negotiate.cbt
a8eab4
a8eab4
core-libs/java.lang:
a8eab4
a8eab4
JDK-8283137: Incorrect handling of quoted arguments in ProcessBuilder
a8eab4
=====================================================================
a8eab4
ProcessBuilder on Windows is restored to address a regression caused
a8eab4
by JDK-8250568.  Previously, an argument to ProcessBuilder that
a8eab4
started with a double-quote and ended with a backslash followed by a
a8eab4
double-quote was passed to a command incorrectly and may cause the
a8eab4
command to fail.  For example the argument `"C:\\Program Files\"`,
a8eab4
would be seen by the command with extra double-quotes. This update
a8eab4
restores the long standing behavior that does not treat the backslash
a8eab4
before the final double-quote specially.
a8eab4
a8eab4
a8eab4
core-libs/java.util.jar:
a8eab4
a8eab4
JDK-8278386: Default JDK compressor will be closed when IOException is encountered
a8eab4
==================================================================================
a8eab4
`DeflaterOutputStream.close()` and `GZIPOutputStream.finish()` methods
a8eab4
have been modified to close out the associated default JDK compressor
a8eab4
before propagating a Throwable up the
a8eab4
stack. `ZIPOutputStream.closeEntry()` method has been modified to
a8eab4
close out the associated default JDK compressor before propagating an
a8eab4
IOException, not of type ZipException, up the stack.
a8eab4
a8eab4
core-libs/java.io:
a8eab4
a8eab4
JDK-8285660: New System Property to Disable Windows Alternate Data Stream Support in java.io.File
a8eab4
=================================================================================================
a8eab4
The Windows implementation of `java.io.File` allows access to NTFS
a8eab4
Alternate Data Streams (ADS) by default. Such streams have a structure
a8eab4
like “filename:streamname”. A system property `jdk.io.File.enableADS`
a8eab4
has been added to control this behavior. To disable ADS support in
a8eab4
`java.io.File`, the system property `jdk.io.File.enableADS` should be
a8eab4
set to `false` (case ignored). Stricter path checking however prevents
a8eab4
the use of special devices such as `NUL:`
a8eab4
47fed0
New in release OpenJDK 17.0.3 (2022-04-19):
47fed0
===========================================
47fed0
Live versions of these release notes can be found at:
47fed0
  * https://bitly.com/openjdk1703
47fed0
  * https://builds.shipilev.net/backports-monitor/release-notes-17.0.3.txt
47fed0
47fed0
* Security fixes
47fed0
  - JDK-8269938: Enhance XML processing passes redux
47fed0
  - JDK-8270504, CVE-2022-21426: Better XPath expression handling
47fed0
  - JDK-8272255: Completely handle MIDI files
47fed0
  - JDK-8272261: Improve JFR recording file processing
47fed0
  - JDK-8272588: Enhanced recording parsing
47fed0
  - JDK-8272594: Better record of recordings
47fed0
  - JDK-8274221: More definite BER encodings
47fed0
  - JDK-8275082, JDK-8278008, CVE-2022-21476: Update XML Security for Java to 2.3.0
47fed0
  - JDK-8275151, CVE-2022-21443: Improved Object Identification
47fed0
  - JDK-8277227: Better identification of OIDs
47fed0
  - JDK-8277233, CVE-2022-21449: Improve ECDSA signature support
47fed0
  - JDK-8277672, CVE-2022-21434: Better invocation handler handling
47fed0
  - JDK-8278356: Improve file creation
47fed0
  - JDK-8278449: Improve keychain support
47fed0
  - JDK-8278798: Improve supported intrinsic
47fed0
  - JDK-8278805: Enhance BMP image loading
47fed0
  - JDK-8278972, CVE-2022-21496: Improve URL supports
47fed0
  - JDK-8281388: Change wrapping of EncryptedPrivateKeyInfo
47fed0
* Other changes
47fed0
  - JDK-8177814: jdk/editpad is not in jdk TEST.groups
47fed0
  - JDK-8186670: Implement _onSpinWait() intrinsic for AArch64
47fed0
  - JDK-8190748: java/text/Format/DateFormat/DateFormatTest.java and NonGregorianFormatTest fail intermittently
47fed0
  - JDK-8225559: assertion error at TransTypes.visitApply
47fed0
  - JDK-8236505: Mark jdk/editpad/EditPadTest.java as @headful
47fed0
  - JDK-8239502: [TEST_BUG] Test javax/swing/text/FlowView/6318524/bug6318524.java never fails
47fed0
  - JDK-8244602: Add JTREG_REPEAT_COUNT to repeat execution of a test
47fed0
  - JDK-8247980: Exclusive execution of java/util/stream tests slows down tier1
47fed0
  - JDK-8251216: Implement MD5 intrinsics on AArch64
47fed0
  - JDK-8253197: vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java fails with "ERROR: DebuggeeSleepingThread: ThreadDeath lost"
47fed0
  - JDK-8262134: compiler/uncommontrap/TestDeoptOOM.java failed with "guarantee(false) failed: wrong number of expression stack elements during deopt"
47fed0
  - JDK-8263567: gtests don't terminate the VM safely
47fed0
  - JDK-8265150: AsyncGetCallTrace crashes on ResourceMark
47fed0
  - JDK-8266490: Extend the OSContainer API to support the pids controller of cgroups
47fed0
  - JDK-8269032: Stringdedup tests are failing if the ergonomically select GC does not support it
47fed0
  - JDK-8269037: jsig/Testjsig.java doesn't have to be restricted to linux only
47fed0
  - JDK-8269087: CheckSegmentedCodeCache test fails in an emulated-client VM
47fed0
  - JDK-8269175: [macosx-aarch64] wrong CPU speed in hs_err file
47fed0
  - JDK-8269206: A small typo in comment in test/lib/sun/hotspot/WhiteBox.java
47fed0
  - JDK-8269523: runtime/Safepoint/TestAbortOnVMOperationTimeout.java failed when expecting 'VM operation took too long'
47fed0
  - JDK-8269616: serviceability/dcmd/framework/VMVersionTest.java fails with Address already in use error
47fed0
  - JDK-8269849: vmTestbase/gc/gctests/PhantomReference/phantom002/TestDescription.java failed with "OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects"
47fed0
  - JDK-8270117: Broken jtreg link in "Building the JDK" page
47fed0
  - JDK-8270874: JFrame paint artifacts when dragged from standard monitor to HiDPI monitor
47fed0
  - JDK-8271056: C2: "assert(no_dead_loop) failed: dead loop detected" due to cmoving identity
47fed0
  - JDK-8271199: Mutual TLS handshake fails signing client certificate with custom sensitive PKCS11 key
47fed0
  - JDK-8271202: C1: assert(false) failed: live_in set of first block must be empty
47fed0
  - JDK-8271506: Add ResourceHashtable support for deleting selected entries
47fed0
  - JDK-8271721: Split gc/g1/TestMixedGCLiveThreshold into separate tests
47fed0
  - JDK-8272167: AbsPathsInImage.java should skip *.dSYM directories
47fed0
  - JDK-8272327: Shenandoah: Avoid enqueuing duplicate string candidates
47fed0
  - JDK-8272398: Update DockerTestUtils.buildJdkDockerImage()
47fed0
  - JDK-8272541: Incorrect overflow test in Toom-Cook branch of BigInteger multiplication
47fed0
  - JDK-8272553: several hotspot runtime/CommandLine tests don't check exit code
47fed0
  - JDK-8272600: (test) Use native "sleep" in Basic.java
47fed0
  - JDK-8272866: java.util.random package summary contains incorrect mixing function in table
47fed0
  - JDK-8272996: JNDI DNS provider fails to resolve SRV entries when IPV6 stack is enabled
47fed0
  - JDK-8273162: AbstractSplittableWithBrineGenerator does not create a random salt
47fed0
  - JDK-8273277: C2: Move conditional negation into rc_predicate
47fed0
  - JDK-8273341: Update Siphash to version 1.0
47fed0
  - JDK-8273351: bad tag in jdk.random module-info.java
47fed0
  - JDK-8273366: [testbug] javax/swing/UIDefaults/6302464/bug6302464.java fails on macOS12
47fed0
  - JDK-8273381: Assert in PtrQueueBufferAllocatorTest.stress_free_list_allocator_vm
47fed0
  - JDK-8273387: remove some unreferenced gtk-related functions
47fed0
  - JDK-8273433: Enable parallelism in vmTestbase_nsk_sysdict tests
47fed0
  - JDK-8273438: Enable parallelism in vmTestbase/metaspace/stressHierarchy tests
47fed0
  - JDK-8273526: Extend the OSContainer API  pids controller with pids.current
47fed0
  - JDK-8273634: [TEST_BUG] Improve javax/swing/text/ParagraphView/6364882/bug6364882.java
47fed0
  - JDK-8273655: content-types.properties files are missing some common types
47fed0
  - JDK-8273682: Upgrade Jline to 3.20.0
47fed0
  - JDK-8273704: DrawStringWithInfiniteXform.java failed : drawString with InfiniteXform transform takes long time
47fed0
  - JDK-8273895: compiler/ciReplay/TestVMNoCompLevel.java fails due to wrong data size with TieredStopAtLevel=2,3
47fed0
  - JDK-8273933: [TESTBUG] Test must run without preallocated exceptions
47fed0
  - JDK-8273967: gtest os.dll_address_to_function_and_library_name_vm fails on macOS12
47fed0
  - JDK-8273972: Multi-core choke point in CMM engine (LCMSTransform.doTransform)
47fed0
  - JDK-8274130: C2: MulNode::Ideal chained transformations may act on wrong nodes
47fed0
  - JDK-8274171: java/nio/file/Files/probeContentType/Basic.java failed on "Content type" mismatches
47fed0
  - JDK-8274465: Fix javax/swing/text/ParagraphView/6364882/bug6364882.java failures
47fed0
  - JDK-8274471: Add support for RSASSA-PSS in OCSP Response
47fed0
  - JDK-8274506: TestPids.java and TestPidsLimit.java fail with podman run as root
47fed0
  - JDK-8274524: SSLSocket.close() hangs if it is called during the ssl handshake
47fed0
  - JDK-8274562: (fs) UserDefinedFileAttributeView doesn't correctly determine if supported when using OverlayFS
47fed0
  - JDK-8274658: ISO 4217 Amendment 170 Update
47fed0
  - JDK-8274714: Incorrect verifier protected access error message
47fed0
  - JDK-8274750: java/io/File/GetXSpace.java failed: '/dev': 191488 != 190976
47fed0
  - JDK-8274753: ZGC: SEGV in MetaspaceShared::link_shared_classes
47fed0
  - JDK-8274795: AArch64: avoid spilling and restoring r18 in macro assembler
47fed0
  - JDK-8274935: dumptime_table has stale entry
47fed0
  - JDK-8274944: AppCDS dump causes SEGV in VM thread while adjusting lambda proxy class info
47fed0
  - JDK-8275326: C2: assert(no_dead_loop) failed: dead loop detected
47fed0
  - JDK-8275330: C2:  assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions
47fed0
  - JDK-8275536: Add test to check that File::lastModified returns same time stamp as Files.getLastModifiedTime
47fed0
  - JDK-8275586: Zero: Simplify interpreter initialization
47fed0
  - JDK-8275608: runtime/Metaspace/elastic/TestMetaspaceAllocationMT2 too slow
47fed0
  - JDK-8275610: C2: Object field load floats above its null check resulting in a segfault
47fed0
  - JDK-8275643: C2's unaryOp vector intrinsic does not properly handle LongVector.neg
47fed0
  - JDK-8275645: [JVMCI] avoid unaligned volatile reads on AArch64
47fed0
  - JDK-8275650: Problemlist java/io/File/createTempFile/SpecialTempFile.java for Windows 11
47fed0
  - JDK-8275687: runtime/CommandLine/PrintTouchedMethods test shouldn't catch RuntimeException
47fed0
  - JDK-8275800: Redefinition leaks MethodData::_extra_data_lock
47fed0
  - JDK-8275847: Scheduling fails with "too many D-U pinch points" on small method
47fed0
  - JDK-8275874: [JVMCI] only support aligned reads in c2v_readFieldValue
47fed0
  - JDK-8276057: Update JMH devkit to 1.33
47fed0
  - JDK-8276141: XPathFactory set/getProperty method
47fed0
  - JDK-8276177: nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption failed with "assert(def_ik->is_being_redefined()) failed: should be being redefined to get here"
47fed0
  - JDK-8276314: [JVMCI] check alignment of call displacement during code installation
47fed0
  - JDK-8276623: JDK-8275650 accidentally pushed "out" file
47fed0
  - JDK-8276654: element-list order is non deterministic
47fed0
  - JDK-8276662: Scalability bottleneck in SymbolTable::lookup_common()
47fed0
  - JDK-8276764: Enable deterministic file content ordering for Jar and Jmod
47fed0
  - JDK-8276766: Enable jar and jmod to produce deterministic timestamped content
47fed0
  - JDK-8276841: Add support for Visual Studio 2022
47fed0
  - JDK-8277069: [REDO] JDK-8276743 Make openjdk build Zip Archive generation "reproducible"
47fed0
  - JDK-8277137: Set OnSpinWaitInst/OnSpinWaitInstCount defaults to "isb"/1 for Arm Neoverse N1
47fed0
  - JDK-8277180: Intrinsify recursive ObjectMonitor locking for C2 x64 and A64
47fed0
  - JDK-8277299: STACK_OVERFLOW in Java_sun_awt_shell_Win32ShellFolder2_getIconBits
47fed0
  - JDK-8277328: jdk/jshell/CommandCompletionTest.java failures on Windows
47fed0
  - JDK-8277342: vmTestbase/nsk/stress/strace/strace004.java fails with SIGSEGV in InstanceKlass::jni_id_for
47fed0
  - JDK-8277383: VM.metaspace optionally show chunk freelist details
47fed0
  - JDK-8277385: Zero: Enable CompactStrings support
47fed0
  - JDK-8277441: CompileQueue::add fails with assert(_last->next() == __null) failed: not last
47fed0
  - JDK-8277447: Hotspot C1 compiler crashes on Kotlin suspend fun with loop
47fed0
  - JDK-8277449: compiler/vectorapi/TestLongVectorNeg.java fails with release VMs
47fed0
  - JDK-8277488: Add expiry exception for Digicert (geotrustglobalca) expiring in May 2022
47fed0
  - JDK-8277497: Last column cell in the JTable row is read as empty cell
47fed0
  - JDK-8277503: compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java failed with "OnSpinWaitInst with the expected value 'isb' not found."
47fed0
  - JDK-8277762: Allow configuration of HOTSPOT_BUILD_USER
47fed0
  - JDK-8277777: [Vector API] assert(r->is_XMMRegister()) failed: must be in x86_32.ad
47fed0
  - JDK-8277795: ldap connection timeout not honoured under contention
47fed0
  - JDK-8277846: Implement fast-path for ASCII-compatible CharsetEncoders on ppc64
47fed0
  - JDK-8277919: OldObjectSample event causing bloat in the class constant pool in JFR recording
47fed0
  - JDK-8277992: Add fast jdk_svc subtests to jdk:tier3
47fed0
  - JDK-8278016: Add compiler tests to tier{2,3}
47fed0
  - JDK-8278020: ~13% variation in Renaissance-Scrabble
47fed0
  - JDK-8278080: Add --with-cacerts-src='user cacerts folder' to enable deterministic cacerts generation
47fed0
  - JDK-8278099: two sun/security/pkcs11/Signature tests failed with AssertionError
47fed0
  - JDK-8278104: C1 should support the compiler directive 'BreakAtExecute'
47fed0
  - JDK-8278115: gc/stress/gclocker/TestGCLockerWithSerial.java has duplicate -Xmx
47fed0
  - JDK-8278116: runtime/modules/LoadUnloadModuleStress.java has duplicate -Xmx
47fed0
  - JDK-8278163: --with-cacerts-src variable resolved after GenerateCacerts recipe setup
47fed0
  - JDK-8278172: java/nio/channels/FileChannel/BlockDeviceSize.java should only run on Linux
47fed0
  - JDK-8278185: Custom JRE cannot find non-ASCII named module inside
47fed0
  - JDK-8278239: vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine failed with EXCEPTION_ACCESS_VIOLATION at 0x000000000000000d
47fed0
  - JDK-8278241: Implement JVM SpinPause on linux-aarch64
47fed0
  - JDK-8278309: [windows] use of uninitialized OSThread::_state
47fed0
  - JDK-8278344: sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output
47fed0
  - JDK-8278346: java/nio/file/Files/probeContentType/Basic.java fails on Linux SLES15 machine
47fed0
  - JDK-8278381: [GCC 11] Address::make_raw() does not initialize rspec
47fed0
  - JDK-8278384: Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT
47fed0
  - JDK-8278389: SuspendibleThreadSet::_suspend_all should be volatile/atomic
47fed0
  - JDK-8278526: [macos] Screen reader reads SwingSet2 JTable row selection as null, dimmed row for last column
47fed0
  - JDK-8278604: SwingSet2 table demo does not have accessible description set for images
47fed0
  - JDK-8278627: Shenandoah: TestHeapDump test failed
47fed0
  - JDK-8278758: runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134
47fed0
  - JDK-8278822: Bump update version for OpenJDK: jdk-17.0.3
47fed0
  - JDK-8278824: Uneven work distribution when scanning heap roots in G1
47fed0
  - JDK-8278871: [JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob
47fed0
  - JDK-8278951: containers/cgroup/PlainRead.java fails on Ubuntu 21.10
47fed0
  - JDK-8278987: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in __write_sample_info__
47fed0
  - JDK-8279011: JFR: JfrChunkWriter incorrectly handles int64_t chunk size as size_t
47fed0
  - JDK-8279076: C2: Bad AD file when matching SqrtF with UseSSE=0
47fed0
  - JDK-8279124: VM does not handle SIGQUIT during initialization
47fed0
  - JDK-8279225: [arm32] C1 longs comparison operation destroys argument registers
47fed0
  - JDK-8279300: [arm32] SIGILL when running GetObjectSizeIntrinsicsTest
47fed0
  - JDK-8279379: GHA: Print tests that are in error
47fed0
  - JDK-8279385: [test]  Adjust sun/security/pkcs12/KeytoolOpensslInteropTest.java after 8278344
47fed0
  - JDK-8279412: [JVMCI] failed speculations list must outlive any nmethod that refers to it
47fed0
  - JDK-8279445: Update JMH devkit to 1.34
47fed0
  - JDK-8279453: Disable tools/jar/ReproducibleJar.java on 32-bit platforms
47fed0
  - JDK-8279505: Update documentation for RETRY_COUNT and REPEAT_COUNT
47fed0
  - JDK-8279669: test/jdk/com/sun/jdi/TestScaffold.java uses wrong condition
47fed0
  - JDK-8279695: [TESTBUG] modify compiler/loopopts/TestSkeletonPredicateNegation.java to run on C1 also
47fed0
  - JDK-8279702: [macosx] ignore xcodebuild warnings on M1
47fed0
  - JDK-8279833: Loop optimization issue in String.encodeUTF8_UTF16
47fed0
  - JDK-8279924: [PPC64, s390] implement frame::is_interpreted_frame_valid checks
47fed0
  - JDK-8279998: PPC64 debug builds fail with "untested: RangeCheckStub: predicate_failed_trap_id"
47fed0
  - JDK-8280002: jmap -histo may leak stream
47fed0
  - JDK-8280155: [PPC64, s390] frame size checks are not yet correct
47fed0
  - JDK-8280373: Update Xalan serializer / SystemIDResolver to align with JDK-8270492
47fed0
  - JDK-8280414: Memory leak in DefaultProxySelector
47fed0
  - JDK-8280526: x86_32 Math.sqrt performance regression with -XX:UseSSE={0,1}
47fed0
  - JDK-8281061: [s390] JFR runs into assertions while validating interpreter frames
47fed0
  - JDK-8281460: Let ObjectMonitor have its own NMT category
47fed0
  - JDK-8282219: jdk/java/lang/ProcessBuilder/Basic.java fails on AIX
47fed0
  - JDK-8282300: Throws NamingException instead of InvalidNameException after JDK-8278972
47fed0
  - JDK-8282397: createTempFile method of java.io.File is failing when called with suffix of spaces character
47fed0
  - JDK-8282761: XPathFactoryImpl remove setProperty and getProperty methods
47fed0
  - JDK-8284548: Invalid XPath expression causes StringIndexOutOfBoundsException
47fed0
  - JDK-8284920: Incorrect Token type causes XPath expression to return empty result
47fed0
47fed0
Notes on individual issues:
47fed0
===========================
47fed0
47fed0
security-libs/java.security:
47fed0
47fed0
JDK-8274791: Support for RSASSA-PSS in OCSP Response
47fed0
====================================================
47fed0
An OCSP response signed with the RSASSA-PSS algorithm is now supported.
47fed0
c5ecb0
New in release OpenJDK 17.0.2 (2022-01-18):
c5ecb0
===========================================
c5ecb0
Live versions of these release notes can be found at:
c5ecb0
  * https://bitly.com/openjdk1702
c5ecb0
  * https://builds.shipilev.net/backports-monitor/release-notes-17.0.2.txt
c5ecb0
c5ecb0
* Security fixes
c5ecb0
  - JDK-8251329: (zipfs) Files.walkFileTree walks infinitely if zip has dir named "." inside
c5ecb0
  - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization
c5ecb0
  - JDK-8268488: More valuable DerValues
c5ecb0
  - JDK-8268494: Better inlining of inlined interfaces
c5ecb0
  - JDK-8268512: More content for ContentInfo
c5ecb0
  - JDK-8268813, CVE-2022-21283: Better String matching
c5ecb0
  - JDK-8269151: Better construction of EncryptedPrivateKeyInfo
c5ecb0
  - JDK-8269944: Better HTTP transport redux
c5ecb0
  - JDK-8270386, CVE-2022-21291: Better verification of scan methods
c5ecb0
  - JDK-8270392, CVE-2022-21293: Improve String constructions
c5ecb0
  - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps
c5ecb0
  - JDK-8270492, CVE-2022-21282: Better resolution of URIs
c5ecb0
  - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management
c5ecb0
  - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities
c5ecb0
  - JDK-8270952, CVE-2022-21277: Improve TIFF file handling
c5ecb0
  - JDK-8271962: Better TrueType font loading
c5ecb0
  - JDK-8271968: Better canonical naming
c5ecb0
  - JDK-8271987: Manifest improved manifest entries
c5ecb0
  - JDK-8272014, CVE-2022-21305: Better array indexing
c5ecb0
  - JDK-8272026, CVE-2022-21340: Verify Jar Verification
c5ecb0
  - JDK-8272236, CVE-2022-21341: Improve serial forms for transport
c5ecb0
  - JDK-8272272: Enhance jcmd communication
c5ecb0
  - JDK-8272462: Enhance image handling
c5ecb0
  - JDK-8273290: Enhance sound handling
c5ecb0
  - JDK-8273756, CVE-2022-21360: Enhance BMP image support
c5ecb0
  - JDK-8273838, CVE-2022-21365: Enhanced BMP processing
c5ecb0
  - JDK-8274096, CVE-2022-21366: Improve decoding of image files
c5ecb0
* Other changes
c5ecb0
  - JDK-4819544: SwingSet2 JTable Demo throws NullPointerException
c5ecb0
  - JDK-8137101: [TEST_BUG] javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java failure due to timing
c5ecb0
  - JDK-8140241: (fc) Data transfer from FileChannel to itself causes hang in case of overlap
c5ecb0
  - JDK-8174819: java/nio/file/WatchService/LotsOfEvents.java fails intermittently
c5ecb0
  - JDK-8190753: (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative initial size for ByteArrayOutputStream
c5ecb0
  - JDK-8214761: Bug in parallel Kahan summation implementation
c5ecb0
  - JDK-8223923: C2: Missing interference with mismatched unsafe accesses
c5ecb0
  - JDK-8233020: (fs) UnixFileSystemProvider should use StaticProperty.userDir().
c5ecb0
  - JDK-8238649: Call new Win32 API SetThreadDescription in os::set_native_thread_name
c5ecb0
  - JDK-8244675: assert(IncrementalInline || (_late_inlines.length() == 0 && !has_mh_late_inlines()))
c5ecb0
  - JDK-8261236: C2: ClhsdbJstackXcompStress test fails when StressGCM is enabled
c5ecb0
  - JDK-8261579: AArch64: Support for weaker memory ordering in Atomic
c5ecb0
  - JDK-8262031: Create implementation for NSAccessibilityNavigableStaticText protocol
c5ecb0
  - JDK-8262095: NPE in Flow$FlowAnalyzer.visitApply: Cannot invoke getThrownTypes because tree.meth.type is null
c5ecb0
  - JDK-8263059: security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java fails due to revoked cert
c5ecb0
  - JDK-8263364: sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java wedged in getInputStream
c5ecb0
  - JDK-8263375: Support stack watermarks in Zero VM
c5ecb0
  - JDK-8263773: Reenable German localization for builds at Oracle
c5ecb0
  - JDK-8264286: Create implementation for NSAccessibilityColumn protocol peer
c5ecb0
  - JDK-8264287: Create implementation for NSAccessibilityComboBox protocol peer
c5ecb0
  - JDK-8264291: Create implementation for NSAccessibilityCell protocol peer
c5ecb0
  - JDK-8264292: Create implementation for NSAccessibilityList protocol peer
c5ecb0
  - JDK-8264293: Create implementation for NSAccessibilityMenu protocol peer
c5ecb0
  - JDK-8264294: Create implementation for NSAccessibilityMenuBar protocol peer
c5ecb0
  - JDK-8264295: Create implementation for NSAccessibilityMenuItem protocol peer
c5ecb0
  - JDK-8264296: Create implementation for NSAccessibilityPopUpButton protocol peer
c5ecb0
  - JDK-8264297: Create implementation for NSAccessibilityProgressIndicator protocol peer
c5ecb0
  - JDK-8264298: Create implementation for NSAccessibilityRow protocol peer
c5ecb0
  - JDK-8264303: Create implementation for NSAccessibilityTabGroup protocol peer
c5ecb0
  - JDK-8266239: Some duplicated javac command-line options have repeated effect
c5ecb0
  - JDK-8266510: Nimbus JTree default tree cell renderer does not use selected text color
c5ecb0
  - JDK-8266988: compiler/jvmci/compilerToVM/IsMatureTest.java fails with Unexpected isMature state for multiple times invoked method: expected false to equal true
c5ecb0
  - JDK-8267256: Extend minimal retry for loopback connections on Windows to PlainSocketImpl
c5ecb0
  - JDK-8267385: Create NSAccessibilityElement implementation for JavaComponentAccessibility
c5ecb0
  - JDK-8267387: Create implementation for NSAccessibilityOutline protocol
c5ecb0
  - JDK-8267388: Create implementation for NSAccessibilityTable protocol
c5ecb0
  - JDK-8268284: javax/swing/JComponent/7154030/bug7154030.java fails with "Exception: Failed to hide opaque button"
c5ecb0
  - JDK-8268294: Reusing HttpClient in a WebSocket.Listener hangs.
c5ecb0
  - JDK-8268361: Fix the infinite loop in next_line
c5ecb0
  - JDK-8268457: XML Transformer outputs Unicode supplementary character incorrectly to HTML
c5ecb0
  - JDK-8268464: Remove dependancy of TestHttpsServer, HttpTransaction, HttpCallback from open/test/jdk/sun/net/www/protocol/https/ tests
c5ecb0
  - JDK-8268626: Remove native pre-jdk9 support for jtreg  failure handler
c5ecb0
  - JDK-8268860: Windows-Aarch64 build is failing in GitHub actions
c5ecb0
  - JDK-8268882: C2: assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc
c5ecb0
  - JDK-8268885: duplicate checkcast when destination type is not first type of intersection type
c5ecb0
  - JDK-8268893: jcmd to trim the glibc heap
c5ecb0
  - JDK-8268894: forged ASTs can provoke an AIOOBE at com.sun.tools.javac.jvm.ClassWriter::writePosition
c5ecb0
  - JDK-8268927: Windows: link error: unresolved external symbol "int __cdecl convert_to_unicode(char const *,wchar_t * *)"
c5ecb0
  - JDK-8269031: linux x86_64 check for binutils 2.25 or higher after 8265783
c5ecb0
  - JDK-8269113: Javac throws when compiling switch (null)
c5ecb0
  - JDK-8269216: Useless initialization in com/sun/crypto/provider/PBES2Parameters.java
c5ecb0
  - JDK-8269269: [macos11] SystemIconTest fails with ClassCastException
c5ecb0
  - JDK-8269280: (bf) Replace StringBuffer in *Buffer.toString()
c5ecb0
  - JDK-8269481: SctpMultiChannel never releases own file descriptor
c5ecb0
  - JDK-8269637: javax/swing/JFileChooser/FileSystemView/SystemIconTest.java fails on windows
c5ecb0
  - JDK-8269656: The test test/langtools/tools/javac/versions/Versions.java has duplicate test cycles
c5ecb0
  - JDK-8269687: pauth_aarch64.hpp include name is incorrect
c5ecb0
  - JDK-8269850: Most JDK releases report macOS version 12 as 10.16 instead of 12.0
c5ecb0
  - JDK-8269924: Shenandoah: Introduce weak/strong marking asserts
c5ecb0
  - JDK-8269951: [macos] Focus not painted in JButton when  setBorderPainted(false) is invoked
c5ecb0
  - JDK-8270110: Shenandoah: Add test for JDK-8269661
c5ecb0
  - JDK-8270116: Expand ButtonGroupLayoutTraversalTest.java to run in all LaFs, including Aqua on macOS
c5ecb0
  - JDK-8270171: Shenandoah: Cleanup TestStringDedup and TestStringDedupStress tests
c5ecb0
  - JDK-8270290: NTLM authentication fails if HEAD request is used
c5ecb0
  - JDK-8270317: Large Allocation in CipherSuite
c5ecb0
  - JDK-8270320: JDK-8270110 committed invalid copyright headers
c5ecb0
  - JDK-8270517: Add Zero support for LoongArch
c5ecb0
  - JDK-8270533: AArch64: size_fits_all_mem_uses should return false if its output is a CAS
c5ecb0
  - JDK-8270886: Crash in PhaseIdealLoop::verify_strip_mined_scheduling
c5ecb0
  - JDK-8270893: IndexOutOfBoundsException while reading large TIFF file
c5ecb0
  - JDK-8270901: Typo PHASE_CPP in CompilerPhaseType
c5ecb0
  - JDK-8270946: X509CertImpl.getFingerprint should not return the empty String
c5ecb0
  - JDK-8271071: accessibility of a table on macOS lacks cell navigation
c5ecb0
  - JDK-8271121: ZGC: stack overflow (segv) when -Xlog:gc+start=debug
c5ecb0
  - JDK-8271142: package help is not displayed for missing X11/extensions/Xrandr.h
c5ecb0
  - JDK-8271170: Add unit test for what jpackage app launcher puts in the environment
c5ecb0
  - JDK-8271215: Fix data races in G1PeriodicGCTask
c5ecb0
  - JDK-8271254: javac generates unreachable code when using empty semicolon statement
c5ecb0
  - JDK-8271287: jdk/jshell/CommandCompletionTest.java fails with "lists don't have the same size expected"
c5ecb0
  - JDK-8271308: (fc) FileChannel.transferTo() transfers no more than Integer.MAX_VALUE bytes in one call
c5ecb0
  - JDK-8271315: Redo: Nimbus JTree renderer properties persist across L&F changes
c5ecb0
  - JDK-8271323: [TESTBUG] serviceability/sa/ClhsdbCDSCore.java fails with -XX:TieredStopAtLevel=1
c5ecb0
  - JDK-8271340: Crash PhaseIdealLoop::clone_outer_loop
c5ecb0
  - JDK-8271341: Opcode() != Op_If && Opcode() != Op_RangeCheck) || outcnt() == 2 assert failure with Test7179138_1.java
c5ecb0
  - JDK-8271459: C2: Missing NegativeArraySizeException when creating StringBuilder with negative capacity
c5ecb0
  - JDK-8271463: Updating RE Configs for Upcoming CPU Release 17.0.2 on master branch for jdk17u-cpu and jdk17u-cpu-open repos.
c5ecb0
  - JDK-8271490: [ppc] [s390]: Crash in JavaThread::pd_get_top_frame_for_profiling
c5ecb0
  - JDK-8271560: sun/security/ssl/DHKeyExchange/LegacyDHEKeyExchange.java still fails due to "An established connection was aborted by the software in your host machine"
c5ecb0
  - JDK-8271567: AArch64: AES Galois CounterMode (GCM) interleaved implementation using vector instructions
c5ecb0
  - JDK-8271600: C2: CheckCastPP which should closely follow Allocate is sunk of a loop
c5ecb0
  - JDK-8271605: Update JMH devkit to 1.32
c5ecb0
  - JDK-8271718: Crash when during color transformation the color profile is replaced
c5ecb0
  - JDK-8271722: [TESTBUG] gc/g1/TestMixedGCLiveThreshold.java can fail if G1 Full GC uses >1 workers
c5ecb0
  - JDK-8271855: [TESTBUG] Wrong weakCompareAndSet assumption in UnsafeIntrinsicsTest
c5ecb0
  - JDK-8271862: C2 intrinsic for Reference.refersTo() is often not used
c5ecb0
  - JDK-8271868: Warn user when using mac-sign option with unsigned app-image.
c5ecb0
  - JDK-8271895: UnProblemList javax/swing/JComponent/7154030/bug7154030.java in JDK18
c5ecb0
  - JDK-8271954: C2: assert(false) failed: Bad graph detected in build_loop_late
c5ecb0
  - JDK-8272047: java/nio/channels/FileChannel/Transfer2GPlus.java failed with Unexpected transfer size: 2147418112
c5ecb0
  - JDK-8272095: ProblemList java/nio/channels/FileChannel/Transfer2GPlus.java on linux-aarch64
c5ecb0
  - JDK-8272114: Unused _last_state in osThread_windows
c5ecb0
  - JDK-8272170: Missing memory barrier when checking active state for regions
c5ecb0
  - JDK-8272305: several hotspot runtime/modules don't check exit codes
c5ecb0
  - JDK-8272318: Improve performance of HeapDumpAllTest
c5ecb0
  - JDK-8272328: java.library.path is not set properly by Windows jpackage app launcher
c5ecb0
  - JDK-8272335: runtime/cds/appcds/MoveJDKTest.java doesn't check exit codes
c5ecb0
  - JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches all exceptions
c5ecb0
  - JDK-8272345: macos doesn't check `os::set_boot_path()` result
c5ecb0
  - JDK-8272369: java/io/File/GetXSpace.java failed with "RuntimeException: java.nio.file.NoSuchFileException: /run/user/0"
c5ecb0
  - JDK-8272391: Undeleted debug information
c5ecb0
  - JDK-8272413: Incorrect num of element count calculation for vector cast
c5ecb0
  - JDK-8272473: Parsing epoch seconds at a DST transition with a non-UTC parser is wrong
c5ecb0
  - JDK-8272562: C2: assert(false) failed: Bad graph detected in build_loop_late
c5ecb0
  - JDK-8272570: C2: crash in PhaseCFG::global_code_motion
c5ecb0
  - JDK-8272574: C2: assert(false) failed: Bad graph detected in build_loop_late
c5ecb0
  - JDK-8272639: jpackaged applications using microphone on mac
c5ecb0
  - JDK-8272703: StressSeed should be set via FLAG_SET_ERGO
c5ecb0
  - JDK-8272720: Fix the implementation of loop unrolling heuristic with LoopPercentProfileLimit
c5ecb0
  - JDK-8272783: Epsilon: Refactor tests to improve performance
c5ecb0
  - JDK-8272836: Limit run time for java/lang/invoke/LFCaching tests
c5ecb0
  - JDK-8272838: Move CriticalJNI tests out of tier1
c5ecb0
  - JDK-8272846: Move some runtime/Metaspace/elastic/ tests out of tier1
c5ecb0
  - JDK-8272850: Drop zapping values in the Zap* option descriptions
c5ecb0
  - JDK-8272854: split runtime/CommandLine/PrintTouchedMethods.java test
c5ecb0
  - JDK-8272856: DoubleFlagWithIntegerValue uses G1GC-only flag
c5ecb0
  - JDK-8272859: Javadoc external links should only have feature version number in URL
c5ecb0
  - JDK-8272914: Create hotspot:tier2 and hotspot:tier3 test groups
c5ecb0
  - JDK-8272970: Parallelize runtime/InvocationTests/
c5ecb0
  - JDK-8272973: Incorrect compile command used by TestIllegalArrayCopyBeforeInfiniteLoop
c5ecb0
  - JDK-8273021: C2: Improve Add and Xor ideal optimizations
c5ecb0
  - JDK-8273026: Slow LoginContext.login() on multi threading application
c5ecb0
  - JDK-8273135: java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java crashes in liblcms.dylib with NULLSeek+0x7
c5ecb0
  - JDK-8273165: GraphKit::combine_exception_states fails with "matching stack sizes" assert
c5ecb0
  - JDK-8273176: handle latest VS2019 in abstract_vm_version
c5ecb0
  - JDK-8273229: Update OS detection code to recognize Windows Server 2022
c5ecb0
  - JDK-8273234: extended 'for' with expression of type tvar causes the compiler to crash
c5ecb0
  - JDK-8273235: tools/launcher/HelpFlagsTest.java Fails on Windows 32bit
c5ecb0
  - JDK-8273278: Support XSLT on GraalVM Native Image--deterministic bytecode generation in XSLT
c5ecb0
  - JDK-8273308: PatternMatchTest.java fails on CI
c5ecb0
  - JDK-8273314: Add tier4 test groups
c5ecb0
  - JDK-8273315: Parallelize and increase timeouts for java/foreign/TestMatrix.java test
c5ecb0
  - JDK-8273318: Some containers/docker/TestJFREvents.java configs are running out of memory
c5ecb0
  - JDK-8273333: Zero should warn about unimplemented -XX:+LogTouchedMethods
c5ecb0
  - JDK-8273335: compiler/blackhole tests should not run with interpreter-only VMs
c5ecb0
  - JDK-8273342: Null pointer dereference in classFileParser.cpp:2817
c5ecb0
  - JDK-8273359: CI: ciInstanceKlass::get_canonical_holder() doesn't respect instance size
c5ecb0
  - JDK-8273361: InfoOptsTest is failing in tier1
c5ecb0
  - JDK-8273373: Zero: Cannot invoke JVM in primordial threads on Zero
c5ecb0
  - JDK-8273375: Remove redundant 'new String' calls after concatenation in java.desktop
c5ecb0
  - JDK-8273376: Zero: Disable vtable/itableStub gtests
c5ecb0
  - JDK-8273378: Shenandoah: Remove the remaining uses of os::is_MP
c5ecb0
  - JDK-8273408: java.lang.AssertionError: typeSig ERROR on generated class property of record
c5ecb0
  - JDK-8273416: C2: assert(false) failed: bad AD file after JDK-8252372 with UseSSE={0,1}
c5ecb0
  - JDK-8273440: Zero: Disable runtime/Unsafe/InternalErrorTest.java
c5ecb0
  - JDK-8273450: Fix the copyright header of SVML files
c5ecb0
  - JDK-8273451: Remove unreachable return in  mutexLocker::wait
c5ecb0
  - JDK-8273483: Zero: Clear pending JNI exception check in native method handler
c5ecb0
  - JDK-8273486: Zero: Handle DiagnoseSyncOnValueBasedClasses VM option
c5ecb0
  - JDK-8273487: Zero: Handle "zero" variant in runtime tests
c5ecb0
  - JDK-8273489: Zero: Handle UseHeavyMonitors on all monitorenter paths
c5ecb0
  - JDK-8273498: compiler/c2/Test7179138_1.java timed out
c5ecb0
  - JDK-8273505: runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java#default-cl crashed with SIGSEGV in MetaspaceShared::link_shared_classes
c5ecb0
  - JDK-8273514: java/util/DoubleStreamSums/CompensatedSums.java failure
c5ecb0
  - JDK-8273575: memory leak in appendBootClassPath(), paths must be deallocated
c5ecb0
  - JDK-8273592: Backout JDK-8271868
c5ecb0
  - JDK-8273593: [REDO] Warn user when using mac-sign option with unsigned app-image.
c5ecb0
  - JDK-8273595: tools/jpackage tests do not work on apt-based Linux distros like Debian
c5ecb0
  - JDK-8273606: Zero: SPARC64 build fails with si_band type mismatch
c5ecb0
  - JDK-8273614: Shenandoah: intermittent  timeout with ConcurrentGCBreakpoint tests
c5ecb0
  - JDK-8273638: javax/swing/JTable/4235420/bug4235420.java fails in GTK L&F
c5ecb0
  - JDK-8273646: Add openssl from path variable also in to Default System Openssl Path in OpensslArtifactFetcher
c5ecb0
  - JDK-8273678: TableAccessibility and TableRowAccessibility miss autorelease
c5ecb0
  - JDK-8273695: Safepoint deadlock on VMOperation_lock
c5ecb0
  - JDK-8273790: Potential cyclic dependencies between Gregorian and CalendarSystem
c5ecb0
  - JDK-8273806: compiler/cpuflags/TestSSE4Disabled.java should test for CPU feature explicitly
c5ecb0
  - JDK-8273807: Zero: Drop incorrect test block from compiler/startup/NumCompilerThreadsCheck.java
c5ecb0
  - JDK-8273808: Cleanup AddFontsToX11FontPath
c5ecb0
  - JDK-8273826: Correct Manifest file name and NPE checks
c5ecb0
  - JDK-8273887: [macos] java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java timed out
c5ecb0
  - JDK-8273894: ConcurrentModificationException raised every time ReferralsCache drops referral
c5ecb0
  - JDK-8273902: Memory leak in OopStorage due to bug in OopHandle::release()
c5ecb0
  - JDK-8273924: ArrayIndexOutOfBoundsException thrown in java.util.JapaneseImperialCalendar.add()
c5ecb0
  - JDK-8273935: (zipfs) Files.getFileAttributeView() throws UOE instead of returning null when view not supported
c5ecb0
  - JDK-8273958: gtest/MetaspaceGtests executes unnecessary tests in debug builds
c5ecb0
  - JDK-8273961: jdk/nio/zipfs/ZipFSTester.java fails if file path contains '+' character
c5ecb0
  - JDK-8273965: some testlibrary_tests/ir_framework tests fail when c1 disabled
c5ecb0
  - JDK-8273968: JCK javax_xml tests fail in CI
c5ecb0
  - JDK-8274056: JavaAccessibilityUtilities leaks JNI objects
c5ecb0
  - JDK-8274074: SIGFPE with C2 compiled code with -XX:+StressGCM
c5ecb0
  - JDK-8274083: Update testing docs to mention tiered testing
c5ecb0
  - JDK-8274087: Windows DLL path not set correctly.
c5ecb0
  - JDK-8274145: C2: condition incorrectly made redundant with dominating main loop exit condition
c5ecb0
  - JDK-8274205: Handle KDC_ERR_SVC_UNAVAILABLE error code from KDC
c5ecb0
  - JDK-8274215: Remove globalsignr2ca root from 17.0.2
c5ecb0
  - JDK-8274242: Implement fast-path for ASCII-compatible CharsetEncoders on x86
c5ecb0
  - JDK-8274265: Suspicious string concatenation in logTestUtils.inline.hpp
c5ecb0
  - JDK-8274293: Build failure on macOS with Xcode 13.0 as vfork is deprecated
c5ecb0
  - JDK-8274325: C4819 warning at vm_version_x86.cpp on Windows after JDK-8234160
c5ecb0
  - JDK-8274326: [macos] Ensure initialisation of sun/lwawt/macosx/CAccessibility in JavaComponentAccessibility.m
c5ecb0
  - JDK-8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern
c5ecb0
  - JDK-8274338: com/sun/jdi/RedefineCrossEvent.java failed "assert(m != __null) failed: NULL mirror"
c5ecb0
  - JDK-8274347: Passing a *nested* switch expression as a parameter causes an NPE during compile
c5ecb0
  - JDK-8274349: ForkJoinPool.commonPool() does not work with 1 CPU
c5ecb0
  - JDK-8274381: missing CAccessibility definitions in JNI code
c5ecb0
  - JDK-8274383: JNI call of getAccessibleSelection on a wrong thread
c5ecb0
  - JDK-8274401: C2: GraphKit::load_array_element bypasses Access API
c5ecb0
  - JDK-8274406: RunThese30M.java failed "assert(!LCA_orig->dominates(pred_block) || early->dominates(pred_block)) failed: early is high enough"
c5ecb0
  - JDK-8274407: (tz) Update Timezone Data to 2021c
c5ecb0
  - JDK-8274435: EXCEPTION_ACCESS_VIOLATION in BFSClosure::closure_impl
c5ecb0
  - JDK-8274467: TestZoneInfo310.java fails with tzdata2021b
c5ecb0
  - JDK-8274468: TimeZoneTest.java fails with tzdata2021b
c5ecb0
  - JDK-8274501: c2i entry barriers read int as long on AArch64
c5ecb0
  - JDK-8274521: jdk/jfr/event/gc/detailed/TestGCLockerEvent.java fails when other GC is selected
c5ecb0
  - JDK-8274522: java/lang/management/ManagementFactory/MXBeanException.java test fails with Shenandoah
c5ecb0
  - JDK-8274523: java/lang/management/MemoryMXBean/MemoryTest.java test should handle Shenandoah
c5ecb0
  - JDK-8274550: c2i entry barriers read int as long on PPC
c5ecb0
  - JDK-8274560: JFR: Add test for OldObjectSample event when using Shenandoah
c5ecb0
  - JDK-8274606: Fix jaxp/javax/xml/jaxp/unittest/transform/SurrogateTest.java test
c5ecb0
  - JDK-8274642: jdk/jshell/CommandCompletionTest.java fails with NoSuchElementException after JDK-8271287
c5ecb0
  - JDK-8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume.
c5ecb0
  - JDK-8274736: Concurrent read/close of SSLSockets causes SSLSessions to be invalidated unnecessarily
c5ecb0
  - JDK-8274770: [PPC64] resolve_jobject needs a generic implementation to support load barriers
c5ecb0
  - JDK-8274773: [TESTBUG] UnsafeIntrinsicsTest intermittently fails on weak memory model platform
c5ecb0
  - JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST
c5ecb0
  - JDK-8274840: Update OS detection code to recognize Windows 11
c5ecb0
  - JDK-8274848: LambdaMetaFactory::metafactory on REF_invokeSpecial impl method has incorrect behavior
c5ecb0
  - JDK-8274851: [ppc64] Port zgc to linux on ppc64le
c5ecb0
  - JDK-8274942: AssertionError at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:155)
c5ecb0
  - JDK-8275008: gtest build failure due to stringop-overflow warning with gcc11
c5ecb0
  - JDK-8275049: [ZGC] missing null check in ZNMethod::log_register
c5ecb0
  - JDK-8275051: Shenandoah: Correct ordering of requested gc cause and gc request flag
c5ecb0
  - JDK-8275071: [macos] A11y cursor gets stuck when combobox is closed
c5ecb0
  - JDK-8275104: IR framework does not handle client VM builds correctly
c5ecb0
  - JDK-8275110: Correct RE Configs for CPU Release 17.0.2 on master branch for jdk17u-cpu and jdk17u-cpu-open repos.
c5ecb0
  - JDK-8275131: Exceptions after a touchpad gesture on macOS
c5ecb0
  - JDK-8275141: recover corrupted line endings for the version-numbers.conf
c5ecb0
  - JDK-8275145: file.encoding system property has an incorrect value on Windows
c5ecb0
  - JDK-8275226: Shenandoah: Relax memory constraint for worker claiming tasks/ranges
c5ecb0
  - JDK-8275302: unexpected compiler error: cast, intersection types and sealed
c5ecb0
  - JDK-8275426: PretouchTask num_chunks calculation can overflow
c5ecb0
  - JDK-8275604: Zero: Reformat opclabels_data
c5ecb0
  - JDK-8275666: serviceability/jvmti/GetObjectSizeClass.java shouldn't have vm.flagless
c5ecb0
  - JDK-8275703: System.loadLibrary fails on Big Sur for libraries hidden from filesystem
c5ecb0
  - JDK-8275720: CommonComponentAccessibility.createWithParent isWrapped causes mem leak
c5ecb0
  - JDK-8275766: (tz) Update Timezone Data to 2021e
c5ecb0
  - JDK-8275809: crash in [CommonComponentAccessibility getCAccessible:withEnv:]
c5ecb0
  - JDK-8275811: Incorrect instance to dispose
c5ecb0
  - JDK-8275819: [TableRowAccessibility accessibilityChildren] method is ineffective
c5ecb0
  - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e
c5ecb0
  - JDK-8275863: Use encodeASCII for ASCII-compatible DoubleByte encodings
c5ecb0
  - JDK-8275872: Sync J2DBench run and analyze Makefile targets with build.xml
c5ecb0
  - JDK-8276025: Hotspot's libsvml.so may conflict with user dependency
c5ecb0
  - JDK-8276066: Reset LoopPercentProfileLimit for x86 due to suboptimal performance
c5ecb0
  - JDK-8276076: Updating RE Configs for BUILD REQUEST 17.0.2+3
c5ecb0
  - JDK-8276105: C2: Conv(D|F)2(I|L)Nodes::Ideal should handle rounding correctly
c5ecb0
  - JDK-8276112: Inconsistent scalar replacement debug info at safepoints
c5ecb0
  - JDK-8276122: Change openjdk project in jcheck to jdk-updates
c5ecb0
  - JDK-8276130: Fix Github Actions of JDK17u to account for update version scheme
c5ecb0
  - JDK-8276139: TestJpsHostName.java not reliable, better to expand HostIdentifierCreate.java test
c5ecb0
  - JDK-8276157: C2: Compiler stack overflow during escape analysis on Linux x86_32
c5ecb0
  - JDK-8276201: Shenandoah: Race results degenerated GC to enter wrong entry point
c5ecb0
  - JDK-8276205: Shenandoah: CodeCache_lock should always be held for initializing code cache iteration
c5ecb0
  - JDK-8276306: jdk/jshell/CustomInputToolBuilder.java fails intermittently on storage acquisition
c5ecb0
  - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766
c5ecb0
  - JDK-8276550: Use SHA256 hash in build.tools.depend.Depend
c5ecb0
  - JDK-8276572: Fake libsyslookup.so library causes tooling issues
c5ecb0
  - JDK-8276774: Cookie stored in CookieHandler not sent if user headers contain cookie
c5ecb0
  - JDK-8276801: gc/stress/CriticalNativeStress.java fails intermittently with Shenandoah
c5ecb0
  - JDK-8276805: java/awt/print/PrinterJob/CheckPrivilege.java fails due to disabled SecurityManager
c5ecb0
  - JDK-8276845: (fs) java/nio/file/spi/SetDefaultProvider.java fails on x86_32
c5ecb0
  - JDK-8276846: JDK-8273416 is incomplete for UseSSE=1
c5ecb0
  - JDK-8276854: Windows GHA builds fail due to broken Cygwin
c5ecb0
  - JDK-8276864: Update boot JDKs to 17.0.1 in GHA
c5ecb0
  - JDK-8276905: Use appropriate macosx_version_minimum value while compiling metal shaders
c5ecb0
  - JDK-8276927: [ppc64] Port shenandoahgc to linux on ppc64le
c5ecb0
  - JDK-8277029: JMM GetDiagnosticXXXInfo APIs should verify output array sizes
c5ecb0
  - JDK-8277093: Vector should throw ClassNotFoundException for a missing class of an element
c5ecb0
  - JDK-8277159: Fix java/nio/file/FileStore/Basic.java test by ignoring /run/user/* mount points
c5ecb0
  - JDK-8277195: missing CAccessibility definition in [CommonComponentAccessibility accessibilityHitTest]
c5ecb0
  - JDK-8277212: GC accidentally cleans valid megamorphic vtable inline caches
c5ecb0
  - JDK-8277224: sun.security.pkcs.PKCS9Attributes.toString() throws NPE
c5ecb0
  - JDK-8277529: SIGSEGV in C2 CompilerThread Node::rematerialize() compiling Packet::readUnsignedTrint
c5ecb0
  - JDK-8277981: String Deduplication table is never cleaned up due to bad dead_factor_for_cleanup
c5ecb0
c5ecb0
Notes on individual issues:
c5ecb0
===========================
c5ecb0
c5ecb0
core-libs/java.io:serialization:
c5ecb0
c5ecb0
JDK-8277157: Vector should throw ClassNotFoundException for a missing class of an element
c5ecb0
=========================================================================================
c5ecb0
`java.util.Vector` is updated to correctly report
c5ecb0
`ClassNotFoundException that occurs during deserialization using
c5ecb0
`java.io.ObjectInputStream.GetField.get(name, object)` when the class
c5ecb0
of an element of the Vector is not found. Without this fix, a
c5ecb0
`StreamCorruptedException` is thrown that does not provide information
c5ecb0
about the missing class.
c5ecb0
c5ecb0
security-libs/java.security:
c5ecb0
c5ecb0
JDK-8272535: Removed Google's GlobalSign Root Certificate
c5ecb0
=========================================================
c5ecb0
The following root certificate from Google has been removed from the
c5ecb0
`cacerts` keystore:
c5ecb0
c5ecb0
Alias Name: globalsignr2ca [jdk]
c5ecb0
Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
c5ecb0
c5ecb0
core-libs/java.io:
c5ecb0
c5ecb0
JDK-8275343: file.encoding System Property Has an Incorrect Value on Windows
c5ecb0
============================================================================
c5ecb0
The initialization of the `file.encoding` system property on non macOS
c5ecb0
platforms has been reverted to align with the behavior on or before
c5ecb0
JDK 11.  This has been an issue especially on Windows where the system
c5ecb0
and user's locales are not the same.
c5ecb0
c5ecb0
hotspot/gc:
c5ecb0
c5ecb0
JDK-8277533: ZGC: Fixed long Process Non-Strong References times
c5ecb0
================================================================
c5ecb0
A bug has been fixed that could cause long "Concurrent Process
c5ecb0
Non-Strong References" times with ZGC. The bug blocked the GC from
c5ecb0
making significant progress, and caused both latency and throughput
c5ecb0
issues for the Java application.
c5ecb0
c5ecb0
The long times could be seen in the GC logs when running with `-Xlog:gc*` e.g.
c5ecb0
c5ecb0
[17606.140s][info][gc,phases ] GC(719) Concurrent Process Non-Strong References 25781.928ms
c5ecb0
c5ecb0
core-libs/java.time:
c5ecb0
c5ecb0
JDK-8274857:  Update Timezone Data to 2021c
c5ecb0
===========================================
c5ecb0
IANA Time Zone Database, on which JDK's Date/Time libraries are based,
c5ecb0
has been updated to version 2021c
c5ecb0
(https://mm.icann.org/pipermail/tz-announce/2021-October/000067.html). Note
c5ecb0
that with this update, some of the time zone rules prior to the year
c5ecb0
1970 have been modified according to the changes which were introduced
c5ecb0
with 2021b. For more detail, refer to the announcement of 2021b
c5ecb0
(https://mm.icann.org/pipermail/tz-announce/2021-September/000066.html)
c5ecb0
276dd6
New in release OpenJDK 17.0.1 (2021-10-19):
276dd6
===========================================
276dd6
Live versions of these release notes can be found at:
276dd6
  * https://builds.shipilev.net/backports-monitor/release-notes-17.0.1.txt
276dd6
276dd6
* Security fixes
276dd6
  - JDK-8263314: Enhance XML Dsig modes
276dd6
  - JDK-8265167, CVE-2021-35556: Richer Text Editors
276dd6
  - JDK-8265574: Improve handling of sheets
276dd6
  - JDK-8265580, CVE-2021-35559: Enhanced style for RTF kit
276dd6
  - JDK-8265776: Improve Stream handling for SSL
276dd6
  - JDK-8266097, CVE-2021-35561: Better hashing support
276dd6
  - JDK-8266103: Better specified spec values
276dd6
  - JDK-8266109: More Resilient Classloading
276dd6
  - JDK-8266115: More Manifest Jar Loading
276dd6
  - JDK-8266137, CVE-2021-35564: Improve Keystore integrity
276dd6
  - JDK-8266689, CVE-2021-35567: More Constrained Delegation
276dd6
  - JDK-8267086: ArrayIndexOutOfBoundsException in java.security.KeyFactory.generatePublic
276dd6
  - JDK-8267712: Better LDAP reference processing
276dd6
  - JDK-8267729, CVE-2021-35578: Improve TLS client handshaking
276dd6
  - JDK-8267735, CVE-2021-35586: Better BMP support
276dd6
  - JDK-8268193: Improve requests of certificates
276dd6
  - JDK-8268199: Correct certificate requests
276dd6
  - JDK-8268205: Enhance DTLS client handshake
276dd6
  - JDK-8268500: Better specified ParameterSpecs
276dd6
  - JDK-8268506: More Manifest Digests
276dd6
  - JDK-8269618, CVE-2021-35603: Better session identification
276dd6
  - JDK-8269624: Enhance method selection support
276dd6
  - JDK-8270398: Enhance canonicalization
276dd6
  - JDK-8270404: Better canonicalization
276dd6
* Other changes
276dd6
  - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021
276dd6
  - JDK-8243543: jtreg test security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java fails
276dd6
  - JDK-8248899: security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java fails, Certificate has been revoked
276dd6
  - JDK-8261088: Repeatable annotations without @Target cannot have containers that target module declarations
276dd6
  - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during "PrinterJob.print"
276dd6
  - JDK-8263531: Remove unused buffer int
276dd6
  - JDK-8266182: Automate manual steps listed in the test jdk/sun/security/pkcs12/ParamsTest.java
276dd6
  - JDK-8267625: AARCH64: typo in LIR_Assembler::emit_profile_type
276dd6
  - JDK-8267666: Add option to jcmd GC.heap_dump to use existing file
276dd6
  - JDK-8268019: C2: assert(no_dead_loop) failed: dead loop detected
276dd6
  - JDK-8268261: C2: assert(n != __null) failed: Bad immediate dominator info.
276dd6
  - JDK-8268427: Improve AlgorithmConstraints:checkAlgorithm performance
276dd6
  - JDK-8268963: [IR Framework] Some default regexes matching on PrintOptoAssembly in IRNode.java do not work on all platforms
276dd6
  - JDK-8269297: Bump version numbers for JDK 17.0.1
276dd6
  - JDK-8269478: Shenandoah: gc/shenandoah/mxbeans tests should be more resilient
276dd6
  - JDK-8269574: C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events
276dd6
  - JDK-8269763: The JEditorPane is blank after JDK-8265167
276dd6
  - JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu usage in containers
276dd6
  - JDK-8269882: stack-use-after-scope in NewObjectA
276dd6
  - JDK-8269897: Shenandoah: Resolve UNKNOWN access strength, where possible
276dd6
  - JDK-8269934: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
276dd6
  - JDK-8269993: [Test]: java/net/httpclient/DigestEchoClientSSL.java contains redundant @run tags
276dd6
  - JDK-8270094: Shenandoah: Provide human-readable labels for test configurations
276dd6
  - JDK-8270096: Shenandoah: Optimize gc/shenandoah/TestRefprocSanity.java for interpreter mode
276dd6
  - JDK-8270098: ZGC: ZBarrierSetC2::clone_at_expansion fails with "Guard against surprises" assert
276dd6
  - JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm Setup
276dd6
  - JDK-8270280: security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA.java  OCSP response error
276dd6
  - JDK-8270344: Session resumption errors
276dd6
  - JDK-8271203: C2: assert(iff->Opcode() == Op_If || iff->Opcode() == Op_CountedLoopEnd || iff->Opcode() == Op_RangeCheck) failed: Check this code when new subtype is added
276dd6
  - JDK-8271276: C2: Wrong JVM state used for receiver null check
276dd6
  - JDK-8271335: Updating RE Configs for BUILD REQUEST 17.0.1+4
276dd6
  - JDK-8271589: fatal error with variable shift count integer rotate operation.
276dd6
  - JDK-8271723: Unproblemlist runtime/InvocationTests/invokevirtualTests.java
276dd6
  - JDK-8271730: Client authentication using RSASSA-PSS fails after correct certificate requests
276dd6
  - JDK-8271925: ZGC: Arraycopy stub passes invalid oop to load barrier
276dd6
  - JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path contains colon
276dd6
  - JDK-8272131: PhaseMacroExpand::generate_slow_arraycopy crash when clone null CallProjections.fallthrough_ioproj
276dd6
  - JDK-8272326: java/util/Random/RandomTestMoments.java had two Gaussian fails
276dd6
  - JDK-8272332: --with-harfbuzz=system doesn't add -lharfbuzz after JDK-8255790
276dd6
  - JDK-8272472: StackGuardPages test doesn't build with glibc 2.34
276dd6
  - JDK-8272581: sun/security/pkcs11/Provider/MultipleLogins.sh fails after JDK-8266182
276dd6
  - JDK-8272602: [macos] not all KEY_PRESSED events sent when control modifier is used
276dd6
  - JDK-8272700: [macos] Build failure with Xcode 13.0 after JDK-8264848
276dd6
  - JDK-8272708: [Test]: Cleanup: test/jdk/security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java no longer needs ocspEnabled
276dd6
  - JDK-8272806: [macOS] "Apple AWT Internal Exception" when input method is changed
276dd6
  - JDK-8273358: macOS Monterey does not have the font Times needed by Serif
276dd6
276dd6
Notes on individual issues:
276dd6
===========================
276dd6
276dd6
security-libs/java.security:
276dd6
276dd6
JDK-8271434: Removed IdenTrust Root Certificate
276dd6
===============================================
276dd6
The following root certificate from IdenTrust has been removed from
276dd6
the `cacerts` keystore:
276dd6
276dd6
Alias Name: identrustdstx3 [jdk]
276dd6
Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co.
276dd6
c0ba06
New in release OpenJDK 17.0.0 (2021-09-14):
c0ba06
===========================================
c0ba06
The full list of changes in the interim releases from 11u to 17u can be found at:
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-12.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-13.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-14.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-15.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-16.txt
c0ba06
  * https://builds.shipilev.net/backports-monitor/release-notes-17.txt
c0ba06
c0ba06
Major changes are listed below.  Some changes may have been backported
c0ba06
to earlier releases following their first appearance in OpenJDK 12
c0ba06
through to 17.
c0ba06
c0ba06
NEW FEATURES
c0ba06
============
c0ba06
c0ba06
Language Features
c0ba06
=================
c0ba06
c0ba06
Switch Expressions
c0ba06
==================
c0ba06
https://openjdk.java.net/jeps/325
c0ba06
https://openjdk.java.net/jeps/354
c0ba06
https://openjdk.java.net/jeps/361
c0ba06
c0ba06
Extend the `switch` statement so that it can be used as either a
c0ba06
statement or an expression, and that both forms can use either a
c0ba06
"traditional" or "simplified" scoping and control flow behavior.  Both
c0ba06
forms can use either traditional `case ... :` labels (with fall
c0ba06
through) or new `case ... ->` labels (with no fall through), with a
c0ba06
further new statement for yielding a value from a `switch`
c0ba06
expression. These changes will simplify everyday coding, and also
c0ba06
prepare the way for the use of pattern matching in `switch`.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 12 & 13 and became final in OpenJDK 14.
c0ba06
c0ba06
Text Blocks
c0ba06
===========
c0ba06
https://openjdk.java.net/jeps/355
c0ba06
https://openjdk.java.net/jeps/368
c0ba06
https://openjdk.java.net/jeps/378
c0ba06
c0ba06
Add text blocks to the Java language. A text block is a multi-line
c0ba06
string literal that avoids the need for most escape sequences,
c0ba06
automatically formats the string in a predictable way, and gives the
c0ba06
developer control over format when desired.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 13 & 14 and became final in OpenJDK 15.
c0ba06
c0ba06
Pattern Matching for instanceof
c0ba06
===============================
c0ba06
https://openjdk.java.net/jeps/305
c0ba06
https://openjdk.java.net/jeps/375
c0ba06
https://openjdk.java.net/jeps/394
c0ba06
http://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html
c0ba06
c0ba06
Enhance the Java programming language with pattern matching for the
c0ba06
`instanceof` operator. Pattern matching allows common logic in a
c0ba06
program, namely the conditional extraction of components from objects,
c0ba06
to be expressed more concisely and safely.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 14 & 15 and became final in OpenJDK 16.
c0ba06
c0ba06
Records
c0ba06
=======
c0ba06
https://openjdk.java.net/jeps/359
c0ba06
https://openjdk.java.net/jeps/384
c0ba06
https://openjdk.java.net/jeps/395
c0ba06
c0ba06
Enhance the Java programming language with records.  Records provide a
c0ba06
compact syntax for declaring classes which are transparent holders for
c0ba06
shallowly immutable data.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 14 & 15 and became final in OpenJDK 16.
c0ba06
c0ba06
Sealed Classes
c0ba06
==============
c0ba06
https://openjdk.java.net/jeps/360
c0ba06
https://openjdk.java.net/jeps/397
c0ba06
https://openjdk.java.net/jeps/409
c0ba06
https://cr.openjdk.java.net/~briangoetz/amber/datum.html
c0ba06
c0ba06
Enhance the Java programming language with sealed classes and
c0ba06
interfaces. Sealed classes and interfaces restrict which other classes
c0ba06
or interfaces may extend or implement them.
c0ba06
c0ba06
This was a preview feature (http://openjdk.java.net/jeps/12) in
c0ba06
OpenJDK 15 & 16 and became final in OpenJDK 17.
c0ba06
c0ba06
Restore Always-Strict Floating-Point Semantics
c0ba06
==============================================
c0ba06
https://openjdk.java.net/jeps/306
c0ba06
c0ba06
Make floating-point operations consistently strict, rather than have
c0ba06
both strict floating-point semantics (`strictfp`) and subtly different
c0ba06
default floating-point semantics. This will restore the original
c0ba06
floating-point semantics to the language and VM, matching the
c0ba06
semantics before the introduction of strict and default floating-point
c0ba06
modes in Java SE 1.2.
c0ba06
c0ba06
Pattern Matching for switch
c0ba06
===========================
c0ba06
https://openjdk.java.net/jeps/406
c0ba06
c0ba06
Enhance the Java programming language with pattern matching for
c0ba06
`switch` expressions and statements, along with extensions to the
c0ba06
language of patterns. Extending pattern matching to `switch` allows an
c0ba06
expression to be tested against a number of patterns, each with a
c0ba06
specific action, so that complex data-oriented queries can be
c0ba06
expressed concisely and safely.
c0ba06
c0ba06
This is a preview feature (http://openjdk.java.net/jeps/12) in OpenJDK
c0ba06
17.
c0ba06
c0ba06
Library Features
c0ba06
================
c0ba06
c0ba06
JVM Constants API
c0ba06
=================
c0ba06
https://openjdk.java.net/jeps/334
c0ba06
c0ba06
Introduce an API to model nominal descriptions of key class-file and
c0ba06
run-time artifacts, in particular constants that are loadable from the
c0ba06
constant pool.
c0ba06
c0ba06
Reimplement the Legacy Socket API
c0ba06
=================================
c0ba06
https://openjdk.java.net/jeps/353
c0ba06
c0ba06
Replace the underlying implementation used by the `java.net.Socket`
c0ba06
and `java.net.ServerSocket` APIs with a simpler and more modern
c0ba06
implementation that is easy to maintain and debug. The new
c0ba06
implementation will be easy to adapt to work with user-mode threads,
c0ba06
a.k.a. fibers, currently being explored in Project Loom
c0ba06
(https://openjdk.java.net/projects/loom).
c0ba06
c0ba06
JFR Event Streaming
c0ba06
===================
c0ba06
https://openjdk.java.net/jeps/349
c0ba06
c0ba06
Expose JDK Flight Recorder data for continuous monitoring.
c0ba06
c0ba06
Non-Volatile Mapped Byte Buffers
c0ba06
================================
c0ba06
https://openjdk.java.net/jeps/352
c0ba06
c0ba06
Add new JDK-specific file mapping modes so that the `FileChannel` API
c0ba06
can be used to create `MappedByteBuffer` instances that refer to
c0ba06
non-volatile memory.
c0ba06
c0ba06
Helpful NullPointerExceptions
c0ba06
=============================
c0ba06
https://openjdk.java.net/jeps/358
c0ba06
c0ba06
Improve the usability of `NullPointerException`s generated by the JVM
c0ba06
by describing precisely which variable was `null`.
c0ba06
c0ba06
Foreign-Memory Access API
c0ba06
=========================
c0ba06
https://openjdk.java.net/jeps/370
c0ba06
https://openjdk.java.net/jeps/383
c0ba06
https://openjdk.java.net/jeps/393
c0ba06
c0ba06
Introduce an API to allow Java programs to safely and efficiently
c0ba06
access foreign memory outside of the Java heap.
c0ba06
c0ba06
This was a incubation feature (https://openjdk.java.net/jeps/11) in
c0ba06
OpenJDK 14, 15 & 16, now superseded by the Foreign Function & Memory
c0ba06
API in OpenJDK 17 (see below).
c0ba06
c0ba06
Edwards-Curve Digital Signature Algorithm (EdDSA)
c0ba06
=================================================
c0ba06
https://openjdk.java.net/jeps/339
c0ba06
c0ba06
Implement cryptographic signatures using the Edwards-Curve Digital
c0ba06
Signature Algorithm (EdDSA) as described by RFC 8032
c0ba06
(https://tools.ietf.org/html/rfc8032).
c0ba06
c0ba06
Hidden Classes
c0ba06
==============
c0ba06
https://openjdk.java.net/jeps/371
c0ba06
c0ba06
Introduce hidden classes, which are classes that cannot be used
c0ba06
directly by the bytecode of other classes. Hidden classes are intended
c0ba06
for use by frameworks that generate classes at run time and use them
c0ba06
indirectly, via reflection. A hidden class may be defined as a member
c0ba06
of an access control nest (https://openjdk.java.net/jeps/181), and may
c0ba06
be unloaded independently of other classes.
c0ba06
c0ba06
Reimplement the Legacy DatagramSocket API
c0ba06
=========================================
c0ba06
https://openjdk.java.net/jeps/373
c0ba06
c0ba06
Replace the underlying implementations of the
c0ba06
`java.net.DatagramSocket` and `java.net.MulticastSocket` APIs with
c0ba06
simpler and more modern implementations that are easy to maintain and
c0ba06
debug. The new implementations will be easy to adapt to work with
c0ba06
virtual threads, currently being explored in Project Loom
c0ba06
(https://openjdk.java.net/projects/loom). This is a follow-on to JEP
c0ba06
353 (see above), which already reimplemented the legacy Socket API.
c0ba06
c0ba06
Vector API
c0ba06
==========
c0ba06
https://openjdk.java.net/jeps/338
c0ba06
https://openjdk.java.net/jeps/414
c0ba06
c0ba06
Provide an initial iteration of an incubator module,
c0ba06
`jdk.incubator.vector`, to express vector computations that reliably
c0ba06
compile at runtime to optimal vector hardware instructions on
c0ba06
supported CPU architectures and thus achieve superior performance to
c0ba06
equivalent scalar computations.
c0ba06
c0ba06
This is an incubation feature (https://openjdk.java.net/jeps/11)
c0ba06
introduced in OpenJDK 16.
c0ba06
c0ba06
Unix-Domain Socket Channels
c0ba06
===========================
c0ba06
https://openjdk.java.net/jeps/380
c0ba06
c0ba06
Add Unix-domain (`AF_UNIX`) socket support to the socket channel and
c0ba06
server-socket channel APIs in the `java.nio.channels` package. Extend
c0ba06
the inherited channel mechanism to support Unix-domain socket channels
c0ba06
and server socket channels.
c0ba06
c0ba06
Foreign Linker API (Incubator)
c0ba06
==============================
c0ba06
https://openjdk.java.net/jeps/389
c0ba06
c0ba06
Introduce an API that offers statically-typed, pure-Java access to
c0ba06
native code. This API, together with the Foreign-Memory API (see
c0ba06
above), will considerably simplify the otherwise error-prone process
c0ba06
of binding to a native library.
c0ba06
c0ba06
This was an incubation feature (https://openjdk.java.net/jeps/11)
c0ba06
introduced in OpenJDK 16, now superseded by the Foreign Function &
c0ba06
Memory API in OpenJDK 17 (see below).
c0ba06
c0ba06
Strongly Encapsulate JDK Internals by Default
c0ba06
=============================================
c0ba06
https://openjdk.java.net/jeps/396
c0ba06
https://openjdk.java.net/jeps/403
c0ba06
c0ba06
Strongly encapsulate all internal elements of the JDK by default,
c0ba06
except for critical internal APIs such as `sun.misc.Unsafe`.  It will
c0ba06
no longer be possible to relax the strong encapsulation of internal
c0ba06
elements via a single command-line option, as was possible in OpenJDK
c0ba06
9 through 16.
c0ba06
c0ba06
Enhanced Pseudo-Random Number Generators
c0ba06
========================================
c0ba06
https://openjdk.java.net/jeps/356
c0ba06
c0ba06
Provide new interface types and implementations for pseudo-random
c0ba06
number generators (PRNGs), including jumpable PRNGs and an additional
c0ba06
class of splittable PRNG algorithms (LXM).
c0ba06
c0ba06
Foreign Function & Memory API
c0ba06
=============================
c0ba06
https://openjdk.java.net/jeps/412
c0ba06
c0ba06
Introduce an API by which Java programs can interoperate with code and
c0ba06
data outside of the Java runtime. By efficiently invoking foreign
c0ba06
functions (i.e., code outside the JVM), and by safely accessing
c0ba06
foreign memory (i.e., memory not managed by the JVM), the API enables
c0ba06
Java programs to call native libraries and process native data without
c0ba06
the brittleness and danger of JNI.
c0ba06
c0ba06
This API is an incubation feature (https://openjdk.java.net/jeps/11)
c0ba06
introduced in OpenJDK 17, and is an evolution of the Foreign Memory
c0ba06
Access API (OpenJDK 14 through 16) and Foreign Linker API (OpenJDK
c0ba06
16) (see above).
c0ba06
c0ba06
Context-Specific Deserialization Filters
c0ba06
========================================
c0ba06
https://openjdk.java.net/jeps/415
c0ba06
c0ba06
Allow applications to configure context-specific and
c0ba06
dynamically-selected deserialization filters via a JVM-wide filter
c0ba06
factory that is invoked to select a filter for each individual
c0ba06
deserialization operation.
c0ba06
c0ba06
Tools
c0ba06
=====
c0ba06
c0ba06
Packaging Tool
c0ba06
==============
c0ba06
https://openjdk.java.net/jeps/343
c0ba06
https://openjdk.java.net/jeps/392
c0ba06
c0ba06
Provide the `jpackage` tool, for packaging self-contained Java
c0ba06
applications.
c0ba06
c0ba06
JVM Features
c0ba06
============
c0ba06
c0ba06
Shenandoah: A Low-Pause-Time Garbage Collector
c0ba06
==============================================
c0ba06
https://openjdk.java.net/jeps/189
c0ba06
https://openjdk.java.net/jeps/379
c0ba06
c0ba06
Add a new garbage collection (GC) algorithm named Shenandoah which
c0ba06
reduces GC pause times by doing evacuation work concurrently with the
c0ba06
running Java threads.  Pause times with Shenandoah are independent of
c0ba06
heap size, meaning you will have the same consistent pause times
c0ba06
whether your heap is 200 MB or 200 GB.
c0ba06
c0ba06
Shenandoah has been provided in Red Hat builds of OpenJDK 8 since
c0ba06
8u131 in April 2017 and in all 11u builds.
c0ba06
c0ba06
Upstream, it was introduced in OpenJDK 12 as an experimental feature
c0ba06
and became a production feature in OpenJDK 15. It was backported to
c0ba06
OpenJDK 11 with the 11.0.9 release in October 2020.
c0ba06
c0ba06
Abortable Mixed Collections for G1
c0ba06
==================================
c0ba06
https://openjdk.java.net/jeps/344
c0ba06
c0ba06
Make G1 mixed collections abortable if they might exceed the pause
c0ba06
target.
c0ba06
c0ba06
Promptly Return Unused Committed Memory from G1
c0ba06
===============================================
c0ba06
https://openjdk.java.net/jeps/346
c0ba06
c0ba06
Enhance the G1 garbage collector to automatically return Java heap
c0ba06
memory to the operating system when idle.
c0ba06
c0ba06
Dynamic CDS Archives
c0ba06
====================
c0ba06
https://openjdk.java.net/jeps/310
c0ba06
https://openjdk.java.net/jeps/350
c0ba06
c0ba06
Extend application class-data sharing to allow the dynamic archiving
c0ba06
of classes at the end of Java application execution. The archived
c0ba06
classes will include all loaded application classes and library
c0ba06
classes that are not present in the default, base-layer CDS archive.
c0ba06
c0ba06
ZGC: Uncommit Unused Memory (Experimental)
c0ba06
==========================================
c0ba06
https://openjdk.java.net/jeps/351
c0ba06
c0ba06
Enhance ZGC to return unused heap memory to the operating system.
c0ba06
c0ba06
NUMA-Aware Memory Allocation for G1
c0ba06
===================================
c0ba06
https://openjdk.java.net/jeps/345
c0ba06
c0ba06
Improve G1 performance on large machines by implementing NUMA-aware
c0ba06
memory allocation.
c0ba06
c0ba06
ZGC on macOS (Experimental)
c0ba06
===========================
c0ba06
https://openjdk.java.net/jeps/364
c0ba06
c0ba06
Port the ZGC garbage collector to macOS.
c0ba06
c0ba06
ZGC on Windows (Experimental)
c0ba06
=============================
c0ba06
https://openjdk.java.net/jeps/365
c0ba06
c0ba06
Port the ZGC garbage collector to Windows.
c0ba06
c0ba06
ZGC: A Scalable Low-Latency Garbage Collector (Production)
c0ba06
==========================================================
c0ba06
https://openjdk.java.net/jeps/377
c0ba06
c0ba06
Change the Z Garbage Collector from an experimental feature into a
c0ba06
product feature.
c0ba06
c0ba06
ZGC: Concurrent Thread-Stack Processing
c0ba06
=======================================
c0ba06
https://openjdk.java.net/jeps/376
c0ba06
c0ba06
Move ZGC thread-stack processing from safepoints to a concurrent
c0ba06
phase.
c0ba06
c0ba06
Elastic Metaspace
c0ba06
=================
c0ba06
https://openjdk.java.net/jeps/387
c0ba06
c0ba06
Return unused HotSpot class-metadata (i.e., metaspace) memory to the
c0ba06
operating system more promptly, reduce metaspace footprint, and
c0ba06
simplify the metaspace code in order to reduce maintenance costs.
c0ba06
c0ba06
Ports
c0ba06
=====
c0ba06
c0ba06
Alpine Linux Port
c0ba06
=================
c0ba06
https://openjdk.java.net/jeps/386
c0ba06
c0ba06
Port the JDK to Alpine Linux, and to other Linux distributions that
c0ba06
use musl as their primary C library, on both the x64 and AArch64
c0ba06
architectures,
c0ba06
c0ba06
Windows/AArch64 Port
c0ba06
====================
c0ba06
https://openjdk.java.net/jeps/388
c0ba06
c0ba06
Port the JDK to Windows/AArch64.
c0ba06
c0ba06
New macOS Rendering Pipeline
c0ba06
============================
c0ba06
https://openjdk.java.net/jeps/382
c0ba06
c0ba06
Implement a Java 2D internal rendering pipeline for macOS using the
c0ba06
Apple Metal API as alternative to the existing pipeline, which uses
c0ba06
the deprecated Apple OpenGL API.
c0ba06
c0ba06
macOS/AArch64 Port
c0ba06
==================
c0ba06
https://openjdk.java.net/jeps/391
c0ba06
c0ba06
Port the JDK to macOS/AArch64.
c0ba06
c0ba06
DEPRECATIONS
c0ba06
============
c0ba06
c0ba06
Deprecate the ParallelScavenge + SerialOld GC Combination
c0ba06
=========================================================
c0ba06
https://openjdk.java.net/jeps/366
c0ba06
c0ba06
Deprecate the combination of the Parallel Scavenge and Serial Old
c0ba06
garbage collection algorithms.
c0ba06
c0ba06
Deprecate and Disable Biased Locking
c0ba06
====================================
c0ba06
https://openjdk.java.net/jeps/374
c0ba06
c0ba06
Disable biased locking by default, and deprecate all related
c0ba06
command-line options.
c0ba06
c0ba06
Warnings for Value-Based Classes
c0ba06
================================
c0ba06
https://openjdk.java.net/jeps/390
c0ba06
c0ba06
Designate the primitive wrapper classes as value-based and deprecate
c0ba06
their constructors for removal, prompting new deprecation
c0ba06
warnings. Provide warnings about improper attempts to synchronize on
c0ba06
instances of any value-based classes in the Java Platform.
c0ba06
c0ba06
Deprecate the Applet API for Removal
c0ba06
====================================
c0ba06
https://openjdk.java.net/jeps/398
c0ba06
c0ba06
Deprecate the Applet API for removal.  It is essentially irrelevant
c0ba06
since all web-browser vendors have either removed support for Java
c0ba06
browser plug-ins or announced plans to do so.
c0ba06
c0ba06
Deprecate the Security Manager for Removal
c0ba06
==========================================
c0ba06
https://openjdk.java.net/jeps/411
c0ba06
c0ba06
Deprecate the Security Manager for removal in a future release. The
c0ba06
Security Manager dates from Java 1.0. It has not been the primary
c0ba06
means of securing client-side Java code for many years, and it has
c0ba06
rarely been used to secure server-side code. To move Java forward, we
c0ba06
intend to deprecate the Security Manager for removal in concert with
c0ba06
the legacy Applet API (see above).  .
c0ba06
c0ba06
REMOVALS
c0ba06
========
c0ba06
c0ba06
Remove the Concurrent Mark Sweep (CMS) Garbage Collector
c0ba06
========================================================
c0ba06
https://openjdk.java.net/jeps/363
c0ba06
c0ba06
Remove the Concurrent Mark Sweep (CMS) garbage collector.
c0ba06
c0ba06
Remove the Pack200 Tools and API
c0ba06
================================
c0ba06
https://openjdk.java.net/jeps/336
c0ba06
https://openjdk.java.net/jeps/367
c0ba06
c0ba06
Remove the `pack200` and `unpack200` tools, and the `Pack200` API in
c0ba06
the `java.util.jar` package.  These tools and API were deprecated for
c0ba06
removal in OpenJDK 11 with the express intent to remove them in a
c0ba06
future release.
c0ba06
c0ba06
Remove the Nashorn JavaScript Engine
c0ba06
====================================
c0ba06
https://openjdk.java.net/jeps/372
c0ba06
c0ba06
Remove the Nashorn JavaScript script engine and APIs, and the `jjs`
c0ba06
tool. The engine, the APIs, and the tool were deprecated for removal
c0ba06
in OpenJDK 11 with the express intent to remove them in a future
c0ba06
release.
c0ba06
c0ba06
Remove the Solaris and SPARC Ports
c0ba06
==================================
c0ba06
https://openjdk.java.net/jeps/362
c0ba06
https://openjdk.java.net/jeps/381
c0ba06
c0ba06
Remove the source code and build support for the Solaris/SPARC,
c0ba06
Solaris/x64, and Linux/SPARC ports.  These ports were deprecated for
c0ba06
removal in OpenJDK 14 (JEP 362) and removed in OpenJDK 15 (JEP 381).
c0ba06
c0ba06
Remove RMI Activation
c0ba06
=====================
c0ba06
https://openjdk.java.net/jeps/385
c0ba06
https://openjdk.java.net/jeps/407
c0ba06
https://docs.oracle.com/en/java/javase/14/docs/specs/rmi/activation.html
c0ba06
c0ba06
Remove the Remote Method Invocation (RMI) Activation mechanism, while
c0ba06
preserving the rest of RMI.  RMI Activation is an obsolete part of RMI
c0ba06
that has been optional since OpenJDK 8 and was deprecated in OpenJDK
c0ba06
15.
c0ba06
c0ba06
Remove the Experimental AOT and JIT Compiler
c0ba06
============================================
c0ba06
https://openjdk.java.net/jeps/410
c0ba06
c0ba06
Remove the experimental Java-based ahead-of-time (AOT) and
c0ba06
just-in-time (JIT) compiler.  This compiler has seen little use since
c0ba06
its introduction and the effort required to maintain it is
c0ba06
significant.  Retain the experimental Java-level JVM compiler
c0ba06
interface (JVMCI) so that developers can continue to use
c0ba06
externally-built versions of the compiler for JIT compilation.