Blame SOURCES/NEWS

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