RELEASE NOTES: JDK 17.0.4

Notes generated: Thu May 19 01:47:14 CEST 2022

JEPs

None.

RELEASE NOTES

core-libs/java.net

Issue Description
JDK-8279842

HTTPS Channel Binding support for Java GSS/Kerberos


Support has been added for TLS channel binding tokens for Negotiate/Kerberos authentication over HTTPS through javax.net.HttpsURLConnection.

Channel binding tokens are increasingly required as an enhanced form of security which can mitigate certain kinds of socially engineered, man in the middle (MITM) attacks. They work by communicating from a client to a server the client's understanding of the binding between connection security (as represented by a TLS server cert) and higher level authentication credentials (such as a username and password). The server can then detect if the client has been fooled by a MITM and shutdown the session/connection.

The feature is controlled through a new system property jdk.https.negotiate.cbt which is described fully at the following page: https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/net/doc-files/net-properties.html#jdk.https.negotiate.cbt


core-libs/java.util.jar

Issue Description
JDK-8193682

Closes Out Compressor When IOException Encountered While Using Default JDK Compressor in GZIPOutputStream.finish() , ZipOutputStream.closeEntry() and DeflaterOutputStream.close()


DeflaterOutputStream.close() and GZIPOutputStream.finish() has been changed to close out the associated default JDK compressor before propagating a Throwable up the stack. ZIPOutputStream.closeEntry() has been changed to close out the associated default JDK compressor before propagating an IOException, not of type ZipException, up the stack.


core-libs/java.io

Issue Description
JDK-8285445

Enable Windows Alternate Data Streams by default


The Windows implementation of java.io.File has been changed so that strict validity checks are not performed by default on file paths. This includes allowing colons (‘:’) in the path other than only immediately after a single drive letter. It also allows paths that represent NTFS Alternate Data Streams (ADS), such as “filename:streamname”. This restores the default behavior of java.io.File to what it was prior to the April 2022 CPU in which strict validity checks were not performed by default on file paths on Windows. To re-enable strict path checking in java.io.File, the system property jdk.io.File.enableADS should be set to false (case ignored). This might be preferable, for example, if Windows special device paths such as NUL: are not used.


FIXED ISSUES

client-libs

Priority Bug Summary
P4 JDK-8281338 NSAccessibilityPressAction action for tree node and NSAccessibilityShowMenuAcgtion action not working

client-libs/2d

Priority Bug Summary
P3 JDK-8283217 Leak FcObjectSet in getFontConfigLocations() in fontpath.c
P3 JDK-8285686 Update FreeType to 2.12.0
P4 JDK-8280964 [Linux aarch64] : drawImage dithers TYPE_BYTE_INDEXED images incorrectly
P4 JDK-8282628 Potential memory leak in sun.font.FontConfigManager.getFontConfig()
P4 JDK-8278549 UNIX sun/font coding misses SUSE distro detection on recent distro SUSE 15

client-libs/java.awt

Priority Bug Summary
P3 JDK-8274751 Drag And Drop hangs on Windows
P3 JDK-8274939 Incorrect size of the pixel storage is used by the robot on macOS
P3 JDK-8284023 java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo
P3 JDK-8284033 Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c
P4 JDK-8280956 Re-examine copyright headers on files in src/java.desktop/macosx/native/libawt_lwawt/awt/a11y
P4 JDK-8249592 Robot.mouseMove moves cursor to incorrect location when display scale varies and Java runs in DPI Unaware mode

client-libs/java.awt:i18n

Priority Bug Summary
P3 JDK-8278472 Invalid value set to CANDIDATEFORM structure

client-libs/javax.accessibility

Priority Bug Summary
P3 JDK-8279586 [macos] custom JCheckBox and JRadioBox with custom icon set: focus is still displayed after unchecking
P3 JDK-8279227 Access Bridge: Wrong frame position and hit test result on HiDPI display
P3 JDK-8277922 Unable to click JCheckBox in JTable through Java Access Bridge
P4 JDK-8283347 [macos] Bad JNI lookup accessibilityHitTest is shown when Screen magnifier is enabled

client-libs/javax.imageio

Priority Bug Summary
P3 JDK-8274735 javax.imageio.IIOException: Unsupported Image Type while processing a valid JPEG image

client-libs/javax.swing

Priority Bug Summary
P4 JDK-8284884 Replace polling with waiting in javax/swing/text/html/parser/Parser/8078268/bug8078268.java

core-libs

Priority Bug Summary
P3 JDK-8284992 Fix misleading Vector API doc for LSHR operator
P4 JDK-8278014 [vectorapi] Remove test run script
P4 JDK-8286029 Add classpath exemption to globals_vectorApiSupport_***.S.inc

core-libs/java.io

Priority Bug Summary
P3 JDK-8285445 cannot open file "NUL:"

core-libs/java.io:serialization

Priority Bug Summary
P3 JDK-8278065 Refactor subclassAudits to use ClassValue
P4 JDK-8268595 java/io/Serializable/serialFilter/GlobalFilterTest.java#id1 failed in timeout
P4 JDK-8277072 ObjectStreamClass caches keep ClassLoaders alive
P4 JDK-8280041 Retry loop issues in java.io.ClassCache

core-libs/java.lang

Priority Bug Summary
P3 JDK-8282008 Incorrect handling of quoted arguments in ProcessBuilder
P4 JDK-8276880 Remove java/lang/RuntimeTests/exec/ExecWithDir as unnecessary

core-libs/java.lang.invoke

Priority Bug Summary
P4 JDK-8281168 Micro-optimize VarForm.getMemberName for interpreter

core-libs/java.lang.module

Priority Bug Summary
P3 JDK-8282444 Module finder incorrectly assumes default file system path-separator character

core-libs/java.net

Priority Bug Summary
P3 JDK-8282293 Domain value for system property jdk.https.negotiate.cbt should be case-insensitive
P3 JDK-8279842 HTTPS Channel Binding support for Java GSS/Kerberos
P4 JDK-8273142 Remove dependancy of TestHttpServer, HttpTransaction, HttpCallback from open/test/jdk/sun/net/www/protocol/http/ tests
P4 JDK-8274561 sun/net/ftp/TestFtpTimeValue.java timed out on slow machines
P4 JDK-8286293 Tests ShortResponseBody and ShortResponseBodyWithRetry should use less resources

core-libs/java.nio

Priority Bug Summary
P3 JDK-8265261 java/nio/file/Files/InterruptCopy.java fails with java.lang.RuntimeException: Copy was not interrupted
P4 JDK-8285956 (fs) Excessive default poll interval in PollingWatchService

core-libs/java.text

Priority Bug Summary
P3 JDK-8282929 Localized monetary symbols are not reflected in `toLocalizedPattern` return value

core-libs/java.time

Priority Bug Summary
P3 JDK-8283350 (tz) Update Timezone Data to 2022a

core-libs/java.util

Priority Bug Summary
P4 JDK-8284866 Add test to JDK-8273056
P4 JDK-8273056 java.util.random does not correctly sample exponential or Gaussian distributions
P4 JDK-8282551 Properly initialize L32X64MixRandom state

core-libs/java.util.jar

Priority Bug Summary
P4 JDK-8278794 Infinite loop in DeflaterOutputStream.finish()
P4 JDK-8193682 Infinite loop in ZipOutputStream.close()
P4 JDK-8277087 ZipException: zip END header not found at ZipFile#Source.findEND

core-libs/java.util.regex

Priority Bug Summary
P4 JDK-8273169 java/util/regex/NegativeArraySize.java failed after JDK-8271302
P4 JDK-8269753 Misplaced caret in PatternSyntaxException's detail message
P5 JDK-8271302 Regex Test Refresh

core-libs/java.util:i18n

Priority Bug Summary
P4 JDK-8282887 Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows

core-svc/debugger

Priority Bug Summary
P3 JDK-8281615 Deadlock caused by jdwp agent
P3 JDK-8276990 Memory leak in invoker.c fillInvokeRequest() during JDI operations
P4 JDK-8274687 JDWP deadlocks if some Java thread reaches wait in blockOnDebuggerSuspend

core-svc/javax.management

Priority Bug Summary
P4 JDK-8206187 javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java fails with Port already in use

docs/hotspot

Priority Bug Summary
P4 JDK-8280543 Update the "java" and "jcmd" tool specification for CDS

hotspot/compiler

Priority Bug Summary
P2 JDK-8279837 C2: assert(is_Loop()) failed: invalid node class: Region
P2 JDK-8275638 GraphKit::combine_exception_states fails with "matching stack sizes" assert
P2 JDK-8279356 Method linking fails with guarantee(mh->adapter() != NULL) failed: Adapter blob must already exist!
P3 JDK-8282509 [exploded image] ResolvedClassTest fails with similar output
P3 JDK-8279437 [JVMCI] exception in HotSpotJVMCIRuntime.translate can exit the VM
P3 JDK-8281266 [JVMCI] MetaUtil.toInternalName() doesn't handle hidden classes correctly
P3 JDK-8279219 [REDO] C2 crash when allocating array of size too large
P3 JDK-8265317 [vector] assert(payload->is_object()) failed: expected 'object' value for scalar-replaced boxed vector but got: NULL
P3 JDK-8281811 assert(_base == Tuple) failed: Not a Tuple after JDK-8280799
P3 JDK-8281544 assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/
P3 JDK-8256368 Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers
P3 JDK-8282874 Bad performance on gather/scatter API caused by different IntSpecies of indexMap
P3 JDK-8274983 C1 optimizes the invocation of private interface methods
P3 JDK-8275337 C1: assert(false) failed: live_in set of first block must be empty
P3 JDK-8279515 C1: No inlining through invokedynamic and invokestatic call sites when resolved class is not linked
P3 JDK-8280600 C2: assert(!had_error) failed: bad dominance
P3 JDK-8283451 C2: assert(_base == Long) failed: Not a Long
P3 JDK-8282590 C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don't process dead nodes
P3 JDK-8273139 C2: assert(f <= 1 && f >= 0) failed: Incorrect frequency
P3 JDK-8282592 C2: assert(false) failed: graph should be schedulable
P3 JDK-8275854 C2: assert(stride_con != 0) failed: missed some peephole opt
P3 JDK-8275830 C2: Receiver downcast is missing when inlining through method handle linkers
P3 JDK-8279822 CI: Constant pool entries in error state are not supported
P3 JDK-8278948 compiler/vectorapi/reshape/TestVectorCastAVX1.java crashes in assembler
P3 JDK-8280867 Cpuid1Ecx feature parsing is incorrect for AMD CPUs
P3 JDK-8283408 Fix a C2 crash when filling arrays with unsafe
P3 JDK-8278796 Incorrect behavior of FloatVector.withLane on X86
P3 JDK-8286013 Incorrect test configurations for compiler/stable/TestStableShort.java
P3 JDK-8277906 Incorrect type for IV phi of long counted loops after CCP
P3 JDK-8283641 Large value for CompileThresholdScaling causes assert
P3 JDK-8280901 MethodHandle::linkToNative stub is missing w/ -Xint
P3 JDK-8282312 Minor corrections to evbroadcasti32x4 intrinsic on x86
P3 JDK-8281822 Test failures on non-DTrace builds due to incomplete DTrace* flags handling
P3 JDK-8236136 tests which use CompilationMode shouldn't be run w/ TieredStopAtLevel
P3 JDK-8278966 two microbenchmarks tests fail "assert(!jvms->method()->has_exception_handlers()) failed: no exception handler expected" after JDK-8275638
P3 JDK-8274855 vectorapi tests failing with assert(!vbox->is_Phi()) failed
P3 JDK-8273095 vmTestbase/vm/mlvm/anonloader/stress/oome/heap/Test.java fails with "wrong OOME"
P3 JDK-8282231 x86-32: runtime call to SharedRuntime::ldiv corrupts registers
P3 JDK-8280799 С2: assert(false) failed: cyclic dependency prevents range check elimination
P4 JDK-8282142 [TestCase] compiler/inlining/ResolvedClassTest.java will fail when --with-jvm-features=-compiler1
P4 JDK-8279560 AArch64: generate_compare_long_string_same_encoding and LARGE_LOOP_PREFETCH alignment
P4 JDK-8268231 Aarch64: Use Ldp in intrinsics for String.compareTo
P4 JDK-8271008 appcds/*/MethodHandlesAsCollectorTest.java tests time out because of excessive GC (CodeCache GC Threshold) in loom
P4 JDK-8277893 Arraycopy stress tests
P4 JDK-8277055 Assert "missing inlining msg" with -XX:+PrintIntrinsics
P4 JDK-8284848 C2: Compiler blackhole arguments should be treated as globally escaping
P4 JDK-8280123 C2: Infinite loop in CMoveINode::Ideal during IGVN
P4 JDK-8283187 C2: loop candidate for superword not always unrolled fully if superword fails
P4 JDK-8284620 CodeBuffer may leak _overflow_arena
P4 JDK-8284458 CodeHeapState::aggregate() leaks blob_name
P4 JDK-8258814 Compilation logging crashes for thread suspension / debugging tests
P4 JDK-8282172 CompileBroker::log_metaspace_failure is called from non-Java/compiler threads
P4 JDK-8285394 Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id()
P4 JDK-8271055 Crash during deoptimization with "assert(bb->is_reachable()) failed: getting result from unreachable basicblock" with -XX:+VerifyStack
P4 JDK-8283422 Create a new test for JDK-8254790
P4 JDK-8281043 Intrinsify recursive ObjectMonitor locking for PPC64
P4 JDK-8269129 Multiple tier1 tests in hotspot/jtreg/compiler are failing for client VMs
P4 JDK-8281522 Rename ADLC classes which have the same name as hotspot variants
P4 JDK-8272493 Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2
P4 JDK-8284369 TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4
P4 JDK-8270468 TestRangeCheckEliminated fails because methods are not compiled
P4 JDK-8283834 Unmappable character for US-ASCII encoding in TestPredicateInputBelowLoopPredicate
P4 JDK-8279668 x86: AVX2 versions of vpxor should be asserted
P5 JDK-8282045 When loop strip mining fails, safepoints are removed from loop anyway

hotspot/gc

Priority Bug Summary
P2 JDK-8263461 jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java uses wrong mechanism to cause evacuation failure
P3 JDK-8276796 gc/TestSystemGC.java large pages subtest fails with ZGC
P4 JDK-8268906 gc/g1/mixedgc/TestOldGenCollectionUsage.java assumes that GCs take 1ms minimum
P4 JDK-8270021 Incorrect log decorators in gc/g1/plab/TestPLABEvacuationFailure.java
P4 JDK-8269077 TestSystemGC uses "require vm.gc.G1" for large pages subtest

hotspot/jfr

Priority Bug Summary
P3 JDK-8284549 JFR: FieldTable leaks FieldInfoTable member
P3 JDK-8284532 Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler
P4 JDK-8281318 Improve jfr/event/allocation tests reliability
P4 JDK-8281638 jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions
P4 JDK-8280684 JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.

hotspot/jvmti

Priority Bug Summary
P4 JDK-8282170 JVMTI SetBreakpoint metaspace allocation test
P4 JDK-8278519 serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java failed "assert(handle != __null) failed: JNI handle should not be null"
P4 JDK-8264605 vmTestbase/nsk/jvmti/SuspendThread/suspendthrd003/TestDescription.java failed with "agent_tools.cpp, 471: (foundThread = (jthread) jni_env->NewGlobalRef(foundThread)) != NULL"

hotspot/runtime

Priority Bug Summary
P2 JDK-8280476 [macOS] : hotspot arm64 bug exposed by latest clang
P3 JDK-8281274 deal with ActiveProcessorCount in os::Linux::print_container_info
P3 JDK-8283469 Don't use memset to initialize members in FileMapInfo and fix memory leak
P3 JDK-8284754 print more interesting env variables in hs_err and VM.info
P3 JDK-8282295 SymbolPropertyEntry::set_method_type fails with assert
P3 JDK-8275037 Test vmTestbase/nsk/sysdict/vm/stress/btree/btree011/btree011.java crashes with memory exhaustion on Windows
P3 JDK-8281275 Upgrading from 8 to 11 no longer accepts '/' as filepath separator in gc paths
P4 JDK-8286198 [linux] Fix process-memory information
P4 JDK-8284758 [linux] improve print_container_info
P4 JDK-8280593 [PPC64, S390] redundant allocation of MacroAssembler in StubGenerator ctor
P4 JDK-8283497 [windows] print TMP and TEMP in hs_err and VM.info
P4 JDK-8283249 CompressedClassPointers.java fails on ppc with 'Narrow klass shift: 0' missing
P4 JDK-8281771 Crash in java_lang_invoke_MethodType::print_signature
P4 JDK-8272146 Disable Fibonacci test on memory constrained systems
P4 JDK-8270837 fix typos in test TestSigParse.java
P4 JDK-8280940 gtest os.release_multi_mappings_vm is racy
P4 JDK-8282345 handle latest VS2022 in abstract_vm_version
P4 JDK-8276825 hotspot/runtime/SelectionResolution test errors
P4 JDK-8268773 Improvements related to: Failed to start thread - pthread_create failed (EAGAIN)
P4 JDK-8283725 Launching java with "-Xlog:gc*=trace,safepoint*=trace,class*=trace" crashes the JVM
P4 JDK-8280941 os::print_memory_mappings() prints segment preceeding the inclusion range
P4 JDK-8281450 Remove unnecessary operator new and delete from ObjectMonitor
P4 JDK-8267163 Rename anonymous loader tests to hidden loader tests
P4 JDK-8282382 Report glibc malloc tunables in error reports
P4 JDK-8214733 runtime/8176717/TestInheritFD.java timed out
P4 JDK-8271224 runtime/EnclosingMethodAttr/EnclMethodAttr.java doesn't check exit code
P4 JDK-8285828 runtime/execstack/TestCheckJDK.java fails with zipped debug symbols
P4 JDK-8272169 runtime/logging/LoaderConstraintsTest.java doesn't build test.Empty
P4 JDK-8263538 SharedArchiveConsistency.java should test -Xshare:auto as well
P4 JDK-8272168 some hotspot runtime/logging tests don't check exit code
P4 JDK-8269135 TestDifferentProtectionDomains runs into timeout in client VM
P4 JDK-8270435 UT: MonitorUsedDeflationThresholdTest failed: did not find too_many string in output
P4 JDK-8251904 vmTestbase/nsk/sysdict/vm/stress/btree/btree010/btree010.java fails with ClassNotFoundException: nsk.sysdict.share.BTree0LLRLRLRRLR
P4 JDK-8285342 Zero build failure with clang due to values not handled in switch

hotspot/svc

Priority Bug Summary
P4 JDK-8280004 DCmdArgument::parse_value() should handle NULL input
P4 JDK-8285921 serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine

hotspot/test

Priority Bug Summary
P4 JDK-8273804 Platform.isTieredSupported should handle the no-compiler case

infrastructure

Priority Bug Summary
P4 JDK-8282499 Bump update version for OpenJDK: jdk-17.0.4

infrastructure/build

Priority Bug Summary
P3 JDK-8275745 Reproducible copyright headers
P4 JDK-8284603 [17u] Update Boot JDK used in GHA to 17.0.2
P4 JDK-8285728 Alpine Linux build fails with busybox tar
P4 JDK-8279834 Alpine Linux fails to build when --with-source-date enabled
P4 JDK-8278766 Enable OpenJDK build support for reproducible jars and jmods using --date
P4 JDK-8282225 GHA: Allow one concurrent run per PR only
P4 JDK-8284507 GHA: Only check test results if testing was not skipped
P4 JDK-8283017 GHA: Workflows break with update release versions
P4 JDK-8284389 Improve stability of GHA Pre-submit testing by caching cygwin installer
P4 JDK-8283323 libharfbuzz optimization level results in extreme build times
P4 JDK-8279182 MakeZipReproducible ZipEntry timestamps not localized to UTC
P4 JDK-8279958 Provide configure hints for Alpine/apk package managers
P4 JDK-8284622 Update versions of some Github Actions used in JDK workflow
P4 JDK-8281262 Windows builds in different directories are not fully reproducible

security-libs/java.security

Priority Bug Summary
P3 JDK-8278851 Correct signer logic for jars signed with multiple digest algorithms
P3 JDK-8255266 Update Public Suffix List to 3c213aa
P4 JDK-8276863 Remove test/jdk/sun/security/ec/ECDSAJavaVerify.java
P4 JDK-8269933 test/jdk/javax/net/ssl/compatibility/JdkInfo incorrect verification of protocol and cipher support

security-libs/javax.xml.crypto

Priority Bug Summary
P4 JDK-8272908 Missing coverage for certain classes in com.sun.org.apache.xml.internal.security
P4 JDK-8278186 org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method
P4 JDK-8270797 ShortECDSA.java test is not complete

security-libs/org.ietf.jgss

Priority Bug Summary
P3 JDK-8279520 SPNEGO has not passed channel binding info into the underlying mechanism
P4 JDK-8280401 [sspi] gss_accept_sec_context leaves output_token uninitialized

tools

Priority Bug Summary
P3 JDK-8277165 jdeps --multi-release --print-module-deps fails if module-info.class in different versioned directories
P4 JDK-8277166 Data race in jdeps VersionHelper
P4 JDK-8277123 jdeps does not report some exceptions correctly
P4 JDK-8272358 Some tests may fail when executed with other locales than the US
P4 JDK-8277422 tools/jar/JarEntryTime.java fails with modified time mismatch

tools/javac

Priority Bug Summary
P4 JDK-8274233 Minor cleanup for ToolBox
P4 JDK-8274244 ReportOnImportedModuleAnnotation.java fails on rerun

tools/javadoc(tool)

Priority Bug Summary
P4 JDK-8274172 Convert JavadocTester to use NIO

tools/launcher

Priority Bug Summary
P4 JDK-8269373 some tests in jdk/tools/launcher/ fails on localized Windows platform

xml/jaxp

Priority Bug Summary
P4 JDK-8285726 [11u, 17u] Unify fix for JDK-8284548 with version from head
P4 JDK-8285727 [11u, 17u] Unify fix for JDK-8284920 with version from head
P4 JDK-8282583 Update BCEL md to include the copyright notice
P4 JDK-8276657 XSLT compiler tries to define a class with empty name