Version in base suite: 17.0.13+11-2~deb12u1 Base version: openjdk-17_17.0.13+11-2~deb12u1 Target version: openjdk-17_17.0.14+7-1~deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/o/openjdk-17/openjdk-17_17.0.13+11-2~deb12u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/o/openjdk-17/openjdk-17_17.0.14+7-1~deb12u1.dsc /srv/release.debian.org/tmp/iKHNJPeSh2/openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/crash.jar |binary /srv/release.debian.org/tmp/iKHNJPeSh2/openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/input.jar |binary /srv/release.debian.org/tmp/iKHNJPeSh2/openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/input.zip |binary /srv/release.debian.org/tmp/iKHNJPeSh2/openjdk-17-17.0.14+7/test/jdk/javax/sound/midi/SysexMessage/zerosysex.mid |binary openjdk-17-17.0.14+7/.jcheck/conf | 2 openjdk-17-17.0.14+7/README.md | 9 openjdk-17-17.0.14+7/SECURITY.md | 3 openjdk-17-17.0.14+7/debian/changelog | 35 openjdk-17-17.0.14+7/debian/copyright | 100 openjdk-17-17.0.14+7/debian/rules | 49 openjdk-17-17.0.14+7/debian/tests/problems.csv | 51 openjdk-17-17.0.14+7/doc/testing.html | 15 openjdk-17-17.0.14+7/doc/testing.md | 9 openjdk-17-17.0.14+7/make/RunTests.gmk | 43 openjdk-17-17.0.14+7/make/autoconf/lib-alsa.m4 | 19 openjdk-17-17.0.14+7/make/autoconf/lib-x11.m4 | 4 openjdk-17-17.0.14+7/make/autoconf/toolchain.m4 | 8 openjdk-17-17.0.14+7/make/common/NativeCompilation.gmk | 14 openjdk-17-17.0.14+7/make/conf/version-numbers.conf | 6 openjdk-17-17.0.14+7/make/data/publicsuffixlist/VERSION | 4 openjdk-17-17.0.14+7/make/data/publicsuffixlist/public_suffix_list.dat | 605 +++- openjdk-17-17.0.14+7/make/data/tzdata/VERSION | 2 openjdk-17-17.0.14+7/make/data/tzdata/africa | 73 openjdk-17-17.0.14+7/make/data/tzdata/antarctica | 58 openjdk-17-17.0.14+7/make/data/tzdata/asia | 442 +-- openjdk-17-17.0.14+7/make/data/tzdata/australasia | 130 - openjdk-17-17.0.14+7/make/data/tzdata/backward | 15 openjdk-17-17.0.14+7/make/data/tzdata/etcetera | 54 openjdk-17-17.0.14+7/make/data/tzdata/europe | 713 +++-- openjdk-17-17.0.14+7/make/data/tzdata/leapseconds | 8 openjdk-17-17.0.14+7/make/data/tzdata/northamerica | 145 - openjdk-17-17.0.14+7/make/data/tzdata/southamerica | 486 +-- openjdk-17-17.0.14+7/make/data/tzdata/zone.tab | 3 openjdk-17-17.0.14+7/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java | 16 openjdk-17-17.0.14+7/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java | 70 openjdk-17-17.0.14+7/src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp | 5 openjdk-17-17.0.14+7/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp | 25 openjdk-17-17.0.14+7/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp | 3 openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/assembler_ppc.cpp | 8 openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp | 22 openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp | 2 openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/ppc.ad | 1 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/interp_masm_riscv.cpp | 1 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/interpreterRT_riscv.cpp | 12 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp | 63 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp | 1 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/methodHandles_riscv.cpp | 5 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/nativeInst_riscv.cpp | 12 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/nativeInst_riscv.hpp | 35 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/riscv.ad | 4 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp | 16 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp | 27 openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/templateTable_riscv.cpp | 7 openjdk-17-17.0.14+7/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp | 20 openjdk-17-17.0.14+7/src/hotspot/cpu/x86/assembler_x86.cpp | 2 openjdk-17-17.0.14+7/src/hotspot/cpu/x86/assembler_x86.hpp | 2 openjdk-17-17.0.14+7/src/hotspot/cpu/x86/macroAssembler_x86.cpp | 10 openjdk-17-17.0.14+7/src/hotspot/cpu/x86/macroAssembler_x86.hpp | 4 openjdk-17-17.0.14+7/src/hotspot/os/bsd/os_bsd.cpp | 13 openjdk-17-17.0.14+7/src/hotspot/os/windows/os_windows.cpp | 8 openjdk-17-17.0.14+7/src/hotspot/share/classfile/classFileParser.cpp | 4 openjdk-17-17.0.14+7/src/hotspot/share/classfile/classLoaderData.cpp | 30 openjdk-17-17.0.14+7/src/hotspot/share/gc/shared/gcOverheadChecker.cpp | 6 openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp | 1 openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp | 6 openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/shenandoahLock.cpp | 48 openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/shenandoahLock.hpp | 45 openjdk-17-17.0.14+7/src/hotspot/share/jfr/dcmd/jfrDcmds.cpp | 27 openjdk-17-17.0.14+7/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp | 18 openjdk-17-17.0.14+7/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp | 1 openjdk-17-17.0.14+7/src/hotspot/share/jfr/metadata/metadata.xml | 2 openjdk-17-17.0.14+7/src/hotspot/share/memory/guardedMemory.cpp | 4 openjdk-17-17.0.14+7/src/hotspot/share/oops/instanceKlass.cpp | 12 openjdk-17-17.0.14+7/src/hotspot/share/oops/method.cpp | 9 openjdk-17-17.0.14+7/src/hotspot/share/oops/symbol.cpp | 9 openjdk-17-17.0.14+7/src/hotspot/share/opto/compile.cpp | 4 openjdk-17-17.0.14+7/src/hotspot/share/opto/gcm.cpp | 14 openjdk-17-17.0.14+7/src/hotspot/share/opto/loopnode.cpp | 29 openjdk-17-17.0.14+7/src/hotspot/share/opto/node.hpp | 2 openjdk-17-17.0.14+7/src/hotspot/share/opto/subnode.cpp | 90 openjdk-17-17.0.14+7/src/hotspot/share/prims/jniCheck.cpp | 4 openjdk-17-17.0.14+7/src/hotspot/share/prims/unsafe.cpp | 10 openjdk-17-17.0.14+7/src/hotspot/share/prims/whitebox.cpp | 20 openjdk-17-17.0.14+7/src/hotspot/share/runtime/arguments.cpp | 8 openjdk-17-17.0.14+7/src/hotspot/share/runtime/deoptimization.cpp | 2 openjdk-17-17.0.14+7/src/hotspot/share/runtime/java.cpp | 3 openjdk-17-17.0.14+7/src/hotspot/share/runtime/os.cpp | 4 openjdk-17-17.0.14+7/src/hotspot/share/runtime/thread.cpp | 8 openjdk-17-17.0.14+7/src/hotspot/share/utilities/growableArray.hpp | 2 openjdk-17-17.0.14+7/src/java.base/macosx/native/libjava/ProcessHandleImpl_macosx.c | 44 openjdk-17-17.0.14+7/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java | 45 openjdk-17-17.0.14+7/src/java.base/share/classes/java/lang/ThreadLocal.java | 2 openjdk-17-17.0.14+7/src/java.base/share/classes/java/lang/invoke/MethodHandle.java | 5 openjdk-17-17.0.14+7/src/java.base/share/classes/java/lang/invoke/VarHandles.java | 9 openjdk-17-17.0.14+7/src/java.base/share/classes/java/nio/charset/Charset.java | 8 openjdk-17-17.0.14+7/src/java.base/share/classes/java/nio/file/Files.java | 2 openjdk-17-17.0.14+7/src/java.base/share/classes/java/security/MessageDigestSpi.java | 12 openjdk-17-17.0.14+7/src/java.base/share/classes/java/security/cert/X509CertSelector.java | 8 openjdk-17-17.0.14+7/src/java.base/share/classes/java/time/format/DateTimeFormatter.java | 22 openjdk-17-17.0.14+7/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java | 2 openjdk-17-17.0.14+7/src/java.base/share/classes/java/util/zip/ZipFile.java | 3 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java | 5 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/nio/cs/StreamDecoder.java | 8 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/jca/JCAUtil.java | 5 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/pkcs/SignerInfo.java | 7 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/BasicChecker.java | 4 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/Builder.java | 3 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/CertId.java | 2 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java | 4 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/ForwardBuilder.java | 4 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java | 5 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java | 6 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/Vertex.java | 4 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/ssl/SSLLogger.java | 9 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java | 15 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/ssl/X509TrustManagerImpl.java | 15 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/tools/keytool/Main.java | 2 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/util/Debug.java | 4 openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/x509/SerialNumber.java | 5 openjdk-17-17.0.14+7/src/java.base/share/legal/public_suffix.md | 2 openjdk-17-17.0.14+7/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c | 2 openjdk-17-17.0.14+7/src/java.base/unix/native/libjava/ProcessImpl_md.c | 15 openjdk-17-17.0.14+7/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c | 36 openjdk-17-17.0.14+7/src/java.base/windows/classes/java/lang/ProcessImpl.java | 22 openjdk-17-17.0.14+7/src/java.base/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java | 15 openjdk-17-17.0.14+7/src/java.base/windows/native/libjava/java_props_md.c | 9 openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxButton.java | 59 openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxUI.java | 33 openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/com/apple/laf/AquaFileView.java | 15 openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/sun/lwawt/macosx/CDataTransferer.java | 35 openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java | 31 openjdk-17-17.0.14+7/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m | 7 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/beans/introspect/MethodInfo.java | 40 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java | 22 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java | 26 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java | 20 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/COMMarkerSegment.java | 17 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java | 43 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java | 21 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java | 17 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFIFD.java | 12 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFImageWriter.java | 22 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java | 12 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java | 3 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java | 84 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java | 4 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/RIFFReader.java | 12 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/RIFFWriter.java | 13 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SF2Soundbank.java | 6 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SoftMainMixer.java | 571 ++-- openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java | 7 openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SoftTuning.java | 64 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/DefaultListCellRenderer.java | 20 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/JFormattedTextField.java | 8 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/JRootPane.java | 9 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/JTree.java | 19 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboPopup.java | 4 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java | 39 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthParser.java | 7 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/AccessibleHTML.java | 20 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java | 7 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java | 110 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/default.css | 2 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/rtf/RTFGenerator.java | 15 openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/rtf/RTFReader.java | 31 openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/awt/FontDescriptor.java | 12 openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/awt/SunToolkit.java | 4 openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/awt/datatransfer/DataTransferer.java | 65 openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/font/Type1Font.java | 24 openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/java2d/Disposer.java | 8 openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/print/PageableDoc.java | 10 openjdk-17-17.0.14+7/src/java.desktop/share/native/libawt/java2d/SurfaceData.h | 2 openjdk-17-17.0.14+7/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c | 6 openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/X11/XAtom.java | 22 openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/X11/XNETProtocol.java | 19 openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java | 11 openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/XSettings.java | 13 openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/screencast/TokenStorage.java | 91 openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java | 9 openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/font/NativeFont.java | 30 openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/print/AttributeClass.java | 17 openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/print/IPPPrintService.java | 123 openjdk-17-17.0.14+7/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h | 4 openjdk-17-17.0.14+7/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h | 4 openjdk-17-17.0.14+7/src/java.desktop/windows/classes/sun/awt/windows/WDataTransferer.java | 39 openjdk-17-17.0.14+7/src/java.naming/share/classes/com/sun/jndi/ldap/sasl/SaslInputStream.java | 4 openjdk-17-17.0.14+7/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/StringConcat.java | 46 openjdk-17-17.0.14+7/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ppc64/PPC64Frame.java | 3 openjdk-17-17.0.14+7/src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java | 8 openjdk-17-17.0.14+7/src/jdk.jartool/share/classes/sun/tools/jar/Main.java | 15 openjdk-17-17.0.14+7/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties | 18 openjdk-17-17.0.14+7/src/jdk.jdi/share/classes/com/sun/tools/jdi/TargetVM.java | 5 openjdk-17-17.0.14+7/src/jdk.jdwp.agent/share/native/libjdwp/util.c | 2 openjdk-17-17.0.14+7/src/jdk.jfr/share/conf/jfr/default.jfc | 1 openjdk-17-17.0.14+7/src/jdk.jfr/share/conf/jfr/profile.jfc | 1 openjdk-17-17.0.14+7/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java | 13 openjdk-17-17.0.14+7/test/hotspot/jtreg/ProblemList-zgc.txt | 1 openjdk-17-17.0.14+7/test/hotspot/jtreg/ProblemList.txt | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/TEST.groups | 3 openjdk-17-17.0.14+7/test/hotspot/jtreg/applications/jcstress/JcstressRunner.java | 32 openjdk-17-17.0.14+7/test/hotspot/jtreg/applications/jcstress/TestGenerator.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/applications/scimark/Scimark.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arguments/CheckCICompilerCount.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arguments/CheckCompileThresholdScaling.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arguments/TestPrintOptoAssemblyLineNumbers.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeExistingIntrinsicWarningTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeExperimentalUnlockTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeIntrinsicTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeNonEmptyWarningTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeNonStaticWarningTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeNonVoidWarningTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c1/TestRangeCheckEliminated.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c1/TestTraceLinearScanLevel.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/Test7068051.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/TestBit.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/aarch64/TestFarJump.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/aarch64/TestSVEWithJNI.java | 48 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/calls/TestManyArgs.java | 65 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/calls/libTestManyArgs.c | 69 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/ciReplay/CiReplayBase.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/ciReplay/DumpReplayBase.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/ciReplay/SABase.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckCodeCacheInfo.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckLargePages.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckReservedInitialCodeCacheSizeArgOrder.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckSegmentedCodeCache.java | 88 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckUpperLimit.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CodeCacheFullCountTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/controldependency/TestAntiDependencyForPinnedLoads.java | 45 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/cpuflags/RestoreMXCSR.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/TestGenerateStressSeed.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/TestStressCM.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/TestStressIGVNAndCCP.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/VerifyAdapterSharing.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/eliminateAutobox/TestEliminateBoxInDebugInfo.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/inlining/InlineAccessors.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/inlining/PrintInlining.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/inlining/ResolvedClassTest.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnSupportedCPU.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/ContinuousCallSiteTargetChange.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/MHInlineTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/NonInlinedCall/Agent.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/PollutedTrapCounts.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/TestEnableJVMCIProduct.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/TestInvalidJVMCIOption.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/TestJVMCIPrintProperties.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetFlagValueTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/lib/ir_framework/driver/TestVMProcess.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/linkage/TestLinkageErrorInGenerateOopMap.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/loopopts/InfiniteLoopBadControlNeverBranch.java | 57 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMiningIterShortLoop.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWait.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitC1.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitNoneAArch64.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/oracle/CheckCompileCommandOption.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/oracle/TestCompileCommand.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/oracle/TestInvalidCompileCommand.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass/Launcher.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass_classloaders/Launcher.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/runtime/cr8015436/Driver8015436.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/startup/NumCompilerThreadsCheck.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/startup/SmallCodeCacheStartup.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/startup/StartupOutput.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/testlibrary/rtm/RTMTestBase.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/types/correctness/OffTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/vectorization/TestBufferVectorization.java | 12 openjdk-17-17.0.14+7/test/hotspot/jtreg/containers/cgroup/PlainRead.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAgeOutput.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAllocateHeapAt.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAllocateHeapAtError.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAllocateHeapAtMultiple.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestCardTablePageCommits.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestNumWorkerOutput.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestObjectAlignment.java | 33 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestSmallHeap.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestVerifyDuringStartup.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestVerifySilently.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestVerifySubSet.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/GCArguments.java | 18 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestAggressiveHeap.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestArrayAllocatorMallocLimit.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestCompressedClassFlags.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java | 14 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1ConcMarkStepDurationMillis.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1ConcRefinementThreads.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1HeapRegionSize.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1PercentageOptions.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestHeapFreeRatio.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestInitialTenuringThreshold.java | 9 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxHeapSizeTools.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxMinHeapFreeRatioFlags.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxNewSize.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxRAMFlags.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestNewSizeFlags.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestNewSizeThreadIncrease.java | 16 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestObjectTenuringFlags.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestParallelGCThreads.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestParallelRefProc.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestSelectDefaultGC.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestSurvivorRatioFlag.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestTargetSurvivorRatioFlag.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestUnrecognizedVMOptionsHandling.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgoTools.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestUseNUMAInterleaving.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestVerifyBeforeAndAfterGCFlags.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/class_unloading/TestG1ClassUnloadingHWM.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestAlignment.java | 13 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestDieDefault.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestDieWithHeapDump.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestDieWithOnError.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestMaxTLAB.java | 17 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/ergonomics/TestDynamicNumberOfGCThreads.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/ergonomics/TestInitialGCThreadLogging.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/Test2GbHeap.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegions.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsLog.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsWithRefs.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestG1SkipCompaction.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java | 18 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestGCLogMessages.java | 96 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousAllocConcurrentStart.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousAllocNearlyFullRegion.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousCodeCacheRoots.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousConcurrentStartUndo.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestLargePageUseForAuxMemory.java | 38 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestLargePageUseForHeap.java | 28 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestMarkStackSizes.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestMixedGCLiveThreshold.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPLABOutput.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPLABSizeBounds.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPeriodicLogMessages.java | 22 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPrintRegionRememberedSetInfo.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestRemsetLoggingThreads.java | 14 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestRemsetLoggingTools.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestSharedArchiveWithPreTouch.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestShrinkDefragmentedHeap.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestSkipRebuildRemsetPhase.java | 22 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestVerifyGCType.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/mixedgc/TestLogging.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/numa/TestG1NUMATouchRegions.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestDeprecatedPrintFlags.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestGCId.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestPrintReferences.java | 24 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestMetaspaceMemoryPool.java | 9 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestMetaspacePerfCounters.java | 117 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestMetaspaceSizeFlags.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestPerfCountersAndMemoryPools.java | 18 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestSizeTransitions.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/serial/HeapChangeLogging.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestEvilSyncBug.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestObjItrWithHeapDump.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestPeriodicGC.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestVerifyJCStress.java | 52 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/compiler/TestLoadBypassesNullCheck.java | 73 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargeObj.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargerThanHeap.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocSmallObj.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestThreadFailure.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestArgumentRanges.java | 14 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestClassUnloadingArguments.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGC.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGCNoConcurrent.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestHeuristicsUnlock.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestHumongousThresholdArgs.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestLoopMiningArguments.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestModeUnlock.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestRegionSizeArgs.java | 32 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestSelectiveBarrierFlags.java | 12 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestSoftMaxHeapSize.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCounts.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCountsOverride.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierDisable.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierEnable.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestG1.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestParallelGC.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestSerialGC.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestShenandoah.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stress/TestStressG1Humongous.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stress/TestStressG1Uncommit.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/whitebox/TestWBGC.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestSmallHeap.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/resourcehogs/serviceability/jvmti/GetObjectSizeOverflow.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/8176717/TestInheritFD.java | 216 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/BadObjectClass/BootstrapRedefine.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/BadObjectClass/TestUnloadClassError.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/BootClassAppendProp/BootClassPathAppend.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/BootstrapMethod/TestLambdaExceptionInInitializer.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CDSCompressedKPtrs/CDSCompressedKPtrs.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CDSCompressedKPtrs/XShareAuto.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ClassFile/FormatCheckingTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ClassFile/JsrRewriting.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ClassFile/OomWhileParsingRepeatedJsr.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ClassFile/PreviewVersion.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ClassFile/TestCheckedExceptions.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ClassFile/UnsupportedClassFileVersion.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/BooleanFlagWithInvalidValue.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/CompilerConfigFileWarning.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/ConfigFileParsing.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/ConfigFileWarning.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/DoubleFlagWithIntegerValue.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/FlagWithInvalidValue.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/IgnoreUnrecognizedVMOptions.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/NonBooleanFlagWithInvalidBooleanPrefix.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/ObsoleteFlagErrorMessage.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/OptionsValidation/TestJcmdOutput.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/OptionsValidation/common/optionsvalidation/JVMOption.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/OptionsValidation/common/optionsvalidation/JVMOptionsUtils.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/PrintTouchedMethods.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/TestHexArguments.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/TestLongUnrecognizedVMOption.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/TestNullTerminatedFlags.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/TestVMOptions.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/TraceExceptionsTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/UnrecognizedVMOption.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/VMOptionWarning.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CommandLine/VMOptionsFile/TestVMOptionsFile.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CompressedOops/CompressedClassPointers.java | 30 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CompressedOops/CompressedClassSpaceSize.java | 36 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CompressedOops/CompressedKlassPointerAndOops.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CompressedOops/ObjectAlignment.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/CompressedOops/UseCompressedOops.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Dictionary/CleanProtectionDomain.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Dictionary/ProtectionDomainCacheTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/EnclosingMethodAttr/EnclMethodAttr.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/BadNativeStackInErrorHandlingTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/ClassPathEnvVar.java | 85 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/CreateCoredumpOnCrash.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/ErrorFileOverwriteTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/ErrorFileRedirectTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/MachCodeFramesInErrorFile.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/NestedThreadsListHandleInErrorHandlingTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/ProblematicFrameTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/SafeFetchInErrorHandlingTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/SecondaryErrorTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/ShowRegistersOnAssertTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/TestCrashOnOutOfMemoryError.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/TestExitOnOutOfMemoryError.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/TestGZippedHeapDumpOnOutOfMemoryError.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/TestHeapDumpOnOutOfMemoryError.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/TestHeapDumpPath.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/TestOnError.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/TestOnOutOfMemoryError.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/ThreadsListHandleInErrorHandlingTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/TimeoutInErrorHandlingTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ErrorHandling/VeryEarlyAssertTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/GenerateOopMap/TestGenerateOopMapCrash.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/InvocationTests/invocationC1Tests.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/InvocationTests/invocationOldCHATests.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/InvocationTests/invokeinterfaceTests.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/InvocationTests/invokespecialTests.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/InvocationTests/invokevirtualTests.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/LoadClass/LoadClassNegative.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/LoadClass/LongBCP.java | 15 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/LoadClass/TestResize.java | 11 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/LocalLong/LocalLongTest.java | 14 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/LocalVariableTable/TestLVT.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Metaspace/MaxMetaspaceSizeEnvVarTest.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Metaspace/MaxMetaspaceSizeTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/MinimalVM/CDS.java | 9 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/MinimalVM/CheckJNI.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/MinimalVM/Instrumentation.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/MinimalVM/JMX.java | 7 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/MinimalVM/JVMTI.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/MinimalVM/NMT.java | 9 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Monitor/DeflationIntervalsTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Monitor/MonitorUnlinkBatchTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Monitor/MonitorUsedDeflationThresholdTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Monitor/SyncOnValueBasedClassTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/CheckForProperDetailStackTrace.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/CommandLineDetail.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/CommandLineEmptyArgument.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/CommandLineInvalidArgument.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/CommandLineSummary.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/CommandLineTurnOffNMT.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/JcmdWithNMTDisabled.java | 7 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/NMTInitializationTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/NMTWithCDS.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/PrintNMTStatistics.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/NMT/PrintNMTStatisticsWithNMTDisabled.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Nestmates/membership/TestNestHostErrorWithClassUnload.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/PerfMemDestroy/PerfMemDestroy.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/PrintStringTableStats/PrintStringTableStatsTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Safepoint/TestAbortOnVMOperationTimeout.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Safepoint/TestAbortVMOnSafepointTimeout.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/StackGuardPages/TestStackGuardPages.java | 13 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/StackGuardPages/TestStackGuardPagesNative.java | 52 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c | 112 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/StackTrace/LargeClassTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Thread/TestBreakSignalThreadDump.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Thread/TooSmallStackSize.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Throwable/StackTraceLogging.java | 12 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Throwable/TestCatchThrowableOOM.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Throwable/TestMaxJavaStackTraceDepth.java | 12 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/Unsafe/RangeCheck.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/XCheckJniJsig/XCheckJSig.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/DeterministicDump.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/MaxMetaspaceSize.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/SharedStrings.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/TestCDSVMCrash.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/AppCDSOptions.java | 42 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/ProhibitedPackage.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/TestCommon.java | 38 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/VerifyWithDefaultArchive.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/applications/JavacBench.java | 76 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/applications/JavacBenchApp.java | 228 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveTestBase.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/ResolvedReferencesNotNullTest.java | 75 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/ResolvedReferencesTestApp.java | 31 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/ResolvedReferencesWb.java | 83 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/classFileParserBug/Bad_NCDFE_Msg.java | 49 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/classFileParserBug/C.java | 26 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/classFileParserBug/ClassFileParserBug.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/classFileParserBug/TestBadPackageWithInterface.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/classFileParserBug/TestEmptyBootstrapMethodsAttr.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/condy/BadBSMUseTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/condy/CondyLDCTest.java | 14 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/condy/CondyNewInvokeSpecialTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/condy/escapeAnalysis/TestEscapeCondy.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/condy/staticInit/TestInitException.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/contended/Options.java | 24 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/duplAttributes/DuplAttributesTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/execstack/Testexecstack.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/getSysPackage/GetPackageXbootclasspath.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/getSysPackage/GetSysPkgTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/handshake/HandshakeTimeoutTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/handshake/HandshakeTransitionTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/jni/checked/TestCheckedReleaseArrayElements.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/jsig/Testjsig.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/BiasedLockingTest.java | 18 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/ClassInitializationTest.java | 28 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/ClassLoadUnloadTest.java | 15 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/ClassResolutionTest.java | 12 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/CompressedOopsTest.java | 20 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/CondyIndyTest.java | 22 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/DefaultMethodsTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/ExceptionsTest.java | 20 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/ItablesTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/LoaderConstraintsTest.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/ModulesTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/MonitorInflationTest.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/MonitorMismatchTest.java | 18 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/OsCpuLoggingTest.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/ProtectionDomainVerificationTest.java | 26 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/SafepointCleanupTest.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/SafepointTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/StackWalkTest.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/StartupTimeTest.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/ThreadLoggingTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/VMOperationTest.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/VerificationTest.java | 14 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/VtablesTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/logging/loadLibraryTest/LoadLibraryTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/memory/LargePages/TestLargePagesFlags.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/memory/ReadFromNoaccessArea.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/memory/ReserveMemory.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/AccessCheck/MethodAccessReadTwice.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/AccessCheck/p5/c5.jasm | 76 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/AccessCheck/p7/c7.jasm | 113 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/ClassLoaderNoUnnamedModuleTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/IgnoreModulePropertiesTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/ModuleOptionsTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/ModuleOptionsWarn.java | 24 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/ModuleStress/ExportModuleStressTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleStress.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleStressGC.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModule2Dirs.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleCDS.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleClassList.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleDupJavaBase.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleDupModule.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleJavaBase.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleTestJar.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleTestJarDir.java | 16 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleTraceCL.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/Visibility/PatchModuleVisibility.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/Visibility/XbootcpNoVisibility.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/modules/Visibility/XbootcpVisibility.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/os/AvailableProcessors.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/os/THPsInThreadStackPreventionTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/os/TestHugePageDecisionsAtVMStartup.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/os/TestHugePageDetection.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/os/TestTimerSlack.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/os/TestTracePageSizes.java | 13 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/os/TestTrimNative.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/os/TestUseCpuAllocPath.java | 10 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/records/RedefineRecord.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/sealedClasses/RedefinePermittedSubclass.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/sealedClasses/RedefineSealedClass.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack001.java | 77 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack002.java | 137 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack003.java | 83 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack004.java | 84 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack005.java | 80 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack006.java | 84 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack007.java | 86 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack008.java | 138 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack009.java | 78 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack010.java | 128 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack011.java | 127 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack012.java | 129 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack013.java | 140 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack014.java | 143 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack015.java | 166 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack016.java | 162 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack017.java | 141 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack018.java | 178 + openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stack/Stack019.java | 103 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/stringtable/StringTableVerifyTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/symboltable/ShortLivedSymbolCleanup.java | 12 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/verifier/OverriderMsg.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/verifier/TestANewArray.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/verifier/TestMultiANewArray.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/verifier/TraceClassRes.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/whitebox/TestWBDeflateIdleMonitors.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/attach/AttachSetGetFlag.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/attach/AttachWithStalePidFile.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/attach/ShMemLongName.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/dcmd/gc/RunFinalizationTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/dtrace/DTraceOptionsTest.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jdwp/AllModulesCommandTest.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jdwp/DebuggeeLauncher.java | 60 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jdwp/StreamHandler.java | 5 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jvmti/8036666/GetObjectLockCount.java | 7 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jvmti/CanGenerateAllClassHook/CanGenerateAllClassHook.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jvmti/GetObjectSizeClass.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineLeak.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefinePreviousVersions.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineSharedClassJFR.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RetransformClassesZeroLength.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/TransformerDeadlockTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/logging/TestBasicLogOutput.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/logging/TestDefaultLogOutput.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/logging/TestFullNames.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/logging/TestLogRotation.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/logging/TestMultipleXlogArgs.java | 16 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/logging/TestQuotedLogOutputs.java | 14 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/ClhsdbCDSCore.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestClassDump.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestCpoolForInvokeDynamic.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestDefaultMethods.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestG1HeapRegion.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestInstanceKlassSize.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestInstanceKlassSizeForInterface.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestJmapCore.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestObjectAlignment.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestObjectMonitorIterate.java | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/TestRevPtrsForInvokeDynamic.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java | 25 openjdk-17-17.0.14+7/test/hotspot/jtreg/testlibrary/ctw/src/sun/hotspot/tools/ctw/CtwRunner.java | 3 openjdk-17-17.0.14+7/test/hotspot/jtreg/testlibrary/jittester/src/jdk/test/lib/jittester/jtreg/JitTesterDriver.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/testlibrary_tests/ctw/CtwTest.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestDScenarios.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestDTestAndExclude.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/UnloadingTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/gc/huge/quicklook/largeheap/MemOptions/MemOptionsTest.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/metaspace/flags/maxMetaspaceSize/TestMaxMetaspaceSize.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jdi/Accessible/isPackagePrivate/accipp001.java | 28 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jdi/AttachingConnector/attach/attach004/attach004t.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassPrepareEvent/referenceType/refType001.java | 57 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jdi/ClassPrepareEvent/thread/thread001.java | 57 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequestManager/threadDeathRequests/thrdeathreq001.java | 21 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/suspendPolicy/suspendpolicy009.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jdi/ListeningConnector/stopListening/stoplis001.java | 7 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jdi/ListeningConnector/stopListening/stoplis001/TEST.properties | 24 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jdi/ListeningConnector/stopListening/stoplis001/TestDescription.java | 3 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Allocate/alloc001/alloc001.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform003/TestDriver.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/TestDriver.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/README | 2 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/Terminator.java | 172 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/aod/DummyTargetApplication.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/aod/TargetApplicationWaitingAgents.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/jpda/DebugeeArgumentHandler.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/jpda/DebugeeBinder.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/jpda/DebugeeProcess.java | 8 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/jpda/IOPipe.java | 3 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/jpda/SocketIOPipe.java | 20 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/share/test/Tests.java | 4 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack001.java | 91 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack002.java | 153 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack003.java | 94 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack004.java | 97 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack005.java | 92 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack006.java | 96 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack007.java | 98 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack008.java | 149 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack009.java | 95 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack010.java | 145 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack011.java | 145 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack012.java | 147 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack013.java | 158 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack014.java | 161 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack015.java | 183 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack016.java | 210 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack017.java | 190 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack018.java | 218 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack019.java | 137 - openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/vm/compiler/CodeCacheInfo/Test.java | 6 openjdk-17-17.0.14+7/test/hotspot/jtreg/vmTestbase/vm/compiler/CodeCacheInfoOnCompilation/Test.java | 4 openjdk-17-17.0.14+7/test/jdk/ProblemList-zgc.txt | 3 openjdk-17-17.0.14+7/test/jdk/ProblemList.txt | 29 openjdk-17-17.0.14+7/test/jdk/TEST.groups | 30 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/CICO/CICODESFuncTest.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java | 9 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/AESPBEWrapper.java | 7 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/DefaultPBEWrapper.java | 7 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/PBKDF2Wrapper.java | 7 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/CICO.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/CTR.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/Padding.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4511676.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512524.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512704.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4513830.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4517355.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4626070.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCipher.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java | 6 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java | 2 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java | 11 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java | 11 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCopySafe.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java | 14 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/CTR/CounterMode.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/CTS/CTSMode.java | 13 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java | 12 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/DES/PerformanceTest.java | 19 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/DES/Sealtest.java | 9 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java | 20 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java | 19 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java | 11 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java | 29 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/NegativeLength.java | 6 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java | 13 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java | 9 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java | 7 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java | 7 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java | 16 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java | 15 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java | 49 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/TestCipher.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java | 7 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java | 41 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java | 92 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java | 65 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java | 19 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java | 67 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java | 48 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java | 11 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java | 34 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGensLongKey.java | 1 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java | 9 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyGenerator/Test4628062.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java | 9 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java | 8 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Mac/EmptyByteBufferTest.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Mac/HmacPBESHA1.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java | 9 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Mac/LargeByteBufferTest.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Mac/MacClone.java | 13 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Mac/MacKAT.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Mac/MacSameTest.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/Mac/NullByteBufferTest.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESOids.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java | 715 +++-- openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/TLS/TestMasterSecret.java | 3 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/TLS/TestPRF.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/TLS/TestPRF12.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/crypto/provider/TLS/TestPremaster.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/jdi/ClassesByName2Test.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/jdi/JITDebug.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/jdi/JdbLockTest.java | 2 openjdk-17-17.0.14+7/test/jdk/com/sun/jdi/NoLaunchOptionTest.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/jdi/PrivateTransportTest.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/jdi/ProcessAttachTest.java | 7 openjdk-17-17.0.14+7/test/jdk/com/sun/jdi/RunToExit.java | 4 openjdk-17-17.0.14+7/test/jdk/com/sun/jdi/cds/CDSJDITest.java | 6 openjdk-17-17.0.14+7/test/jdk/com/sun/jdi/lib/jdb/Debuggee.java | 2 openjdk-17-17.0.14+7/test/jdk/com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java | 7 openjdk-17-17.0.14+7/test/jdk/com/sun/net/httpserver/AuthenticatorTest | 60 openjdk-17-17.0.14+7/test/jdk/com/sun/net/httpserver/AuthenticatorTest.java | 60 openjdk-17-17.0.14+7/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java | 5 openjdk-17-17.0.14+7/test/jdk/com/sun/security/auth/callback/TextCallbackHandler/Default.java | 55 openjdk-17-17.0.14+7/test/jdk/com/sun/tools/attach/RunnerUtil.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/Choice/ChoicePopupLocation/ChoicePopupLocation.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/Choice/PopupPosTest/PopupPosTest.java | 25 openjdk-17-17.0.14+7/test/jdk/java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.java | 134 - openjdk-17-17.0.14+7/test/jdk/java/awt/Choice/SelectItem/SelectCurrentItemTest.java | 207 + openjdk-17-17.0.14+7/test/jdk/java/awt/Choice/SelectItem/SelectNewItemTest.java | 69 openjdk-17-17.0.14+7/test/jdk/java/awt/Choice/SelectNewItemTest/SelectNewItemTest.java | 180 - openjdk-17-17.0.14+7/test/jdk/java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.java | 3 openjdk-17-17.0.14+7/test/jdk/java/awt/Focus/RowToleranceTransitivityTest.java | 10 openjdk-17-17.0.14+7/test/jdk/java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java | 3 openjdk-17-17.0.14+7/test/jdk/java/awt/Frame/DefaultSizeTest.java | 21 openjdk-17-17.0.14+7/test/jdk/java/awt/Frame/FrameRepackTest.java | 20 openjdk-17-17.0.14+7/test/jdk/java/awt/Frame/FrameResizeTest/FrameResizeTest_1.java | 21 openjdk-17-17.0.14+7/test/jdk/java/awt/Frame/FrameResizeTest/FrameResizeTest_2.java | 21 openjdk-17-17.0.14+7/test/jdk/java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java | 9 openjdk-17-17.0.14+7/test/jdk/java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java | 45 openjdk-17-17.0.14+7/test/jdk/java/awt/Frame/MiscUndecorated/RepaintTest.java | 188 - openjdk-17-17.0.14+7/test/jdk/java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.java | 72 openjdk-17-17.0.14+7/test/jdk/java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.java | 28 openjdk-17-17.0.14+7/test/jdk/java/awt/LightweightComponent/LightweightCliprect.java | 33 openjdk-17-17.0.14+7/test/jdk/java/awt/List/ActionEventTest/ActionEventTest.java | 98 openjdk-17-17.0.14+7/test/jdk/java/awt/List/KeyEventsTest/KeyEventsTest.java | 280 +- openjdk-17-17.0.14+7/test/jdk/java/awt/List/SetFontTest.java | 96 openjdk-17-17.0.14+7/test/jdk/java/awt/List/SetFontTest/SetFontTest.html | 43 openjdk-17-17.0.14+7/test/jdk/java/awt/List/SetFontTest/SetFontTest.java | 234 - openjdk-17-17.0.14+7/test/jdk/java/awt/MenuBar/AddRemoveMenuBarTests/AddRemoveMenuBarTest_1.java | 21 openjdk-17-17.0.14+7/test/jdk/java/awt/MenuBar/AddRemoveMenuBarTests/AddRemoveMenuBarTest_2.java | 21 openjdk-17-17.0.14+7/test/jdk/java/awt/MenuBar/AddRemoveMenuBarTests/AddRemoveMenuBarTest_3.java | 21 openjdk-17-17.0.14+7/test/jdk/java/awt/MenuBar/AddRemoveMenuBarTests/AddRemoveMenuBarTest_4.java | 21 openjdk-17-17.0.14+7/test/jdk/java/awt/MenuBar/SeparatorsNavigation/SeparatorsNavigation.java | 16 openjdk-17-17.0.14+7/test/jdk/java/awt/MenuBar/TestNoScreenMenuBar.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/Paint/ListRepaint.java | 49 openjdk-17-17.0.14+7/test/jdk/java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java | 394 --- openjdk-17-17.0.14+7/test/jdk/java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/Robot/NonEmptyErrorStream.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/TextArea/TextAreaCaretVisibilityTest/bug7129742.java | 3 openjdk-17-17.0.14+7/test/jdk/java/awt/Toolkit/DesktopProperties/rfe4758438.sh | 14 openjdk-17-17.0.14+7/test/jdk/java/awt/Toolkit/ScreenInsetsDPIVariation/ScreenInsetsDPIVariation.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/TrayIcon/ActionEventTest/ActionEventTest.java | 11 openjdk-17-17.0.14+7/test/jdk/java/awt/TrayIcon/TrayIconPopup/TrayIconPopupTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/TrayIcon/TrayIconScalingTest.java | 37 openjdk-17-17.0.14+7/test/jdk/java/awt/Window/MainKeyWindowTest/TestMainKeyWindow.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/Window/MinimumSizeDPIVariation/MinimumSizeDPIVariation.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/Window/SetWindowLocationByPlatformTest/SetWindowLocationByPlatformTest.java | 3 openjdk-17-17.0.14+7/test/jdk/java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java | 2 openjdk-17-17.0.14+7/test/jdk/java/awt/dnd/DragSourceSerializationTest.java | 58 openjdk-17-17.0.14+7/test/jdk/java/awt/dnd/DragTriggerEventTest.java | 187 + openjdk-17-17.0.14+7/test/jdk/java/awt/dnd/DropActionChangeTest.java | 241 + openjdk-17-17.0.14+7/test/jdk/java/awt/dnd/DropActionChangedTest.java | 253 + openjdk-17-17.0.14+7/test/jdk/java/awt/dnd/DropPerformanceTest.java | 356 ++ openjdk-17-17.0.14+7/test/jdk/java/awt/dnd/DropTargetAddNotifyNPETest.java | 78 openjdk-17-17.0.14+7/test/jdk/java/awt/dnd/DropTargetNullFlavorMapTest.java | 60 openjdk-17-17.0.14+7/test/jdk/java/awt/dnd/URLDragTest/URLDragTest.html | 45 openjdk-17-17.0.14+7/test/jdk/java/awt/dnd/URLDragTest/URLDragTest.java | 74 openjdk-17-17.0.14+7/test/jdk/java/awt/event/KeyEvent/FunctionKeyTest.java | 151 - openjdk-17-17.0.14+7/test/jdk/java/awt/event/KeyEvent/KeyTyped/Numpad1KeyTyped.java | 178 + openjdk-17-17.0.14+7/test/jdk/java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java | 32 openjdk-17-17.0.14+7/test/jdk/java/awt/geom/HitTest/PathHitTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/awt/print/PageFormat/CustomPaper.java | 354 +- openjdk-17-17.0.14+7/test/jdk/java/awt/print/PrinterJob/PageDlgPrnButton.java | 224 - openjdk-17-17.0.14+7/test/jdk/java/awt/print/PrinterJob/PrintCompoundString.java | 281 -- openjdk-17-17.0.14+7/test/jdk/java/awt/print/PrinterJob/PrintImage.java | 374 -- openjdk-17-17.0.14+7/test/jdk/java/awt/print/PrinterJob/PrintLatinCJKTest.java | 105 openjdk-17-17.0.14+7/test/jdk/java/awt/print/PrinterJob/PrintNullString.java | 430 +-- openjdk-17-17.0.14+7/test/jdk/java/awt/print/PrinterJob/PrintParenString.java | 281 -- openjdk-17-17.0.14+7/test/jdk/java/awt/print/PrinterJob/PrintTranslatedFont.java | 333 -- openjdk-17-17.0.14+7/test/jdk/java/awt/print/PrinterJob/SecurityDialogTest.java | 268 -- openjdk-17-17.0.14+7/test/jdk/java/awt/regtesthelpers/PassFailJFrame.java | 825 +++++- openjdk-17-17.0.14+7/test/jdk/java/awt/regtesthelpers/WindowLayouts.java | 237 + openjdk-17-17.0.14+7/test/jdk/java/beans/Introspector/DefaultMethodBeanPropertyTest.java | 211 + openjdk-17-17.0.14+7/test/jdk/java/io/File/CheckPermission.java | 6 openjdk-17-17.0.14+7/test/jdk/java/io/File/MacPath.java | 4 openjdk-17-17.0.14+7/test/jdk/java/io/FileInputStream/NegativeAvailable.java | 41 openjdk-17-17.0.14+7/test/jdk/java/io/FileInputStream/ReadXBytes.java | 4 openjdk-17-17.0.14+7/test/jdk/java/io/InputStreamReader/ReadCharBuffer.java | 33 openjdk-17-17.0.14+7/test/jdk/java/io/Serializable/class/NonSerializableTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/io/Serializable/evolution/RenamePackage/RenamePackageTest.java | 6 openjdk-17-17.0.14+7/test/jdk/java/lang/Class/getDeclaredField/FieldSetAccessibleTest.java | 78 openjdk-17-17.0.14+7/test/jdk/java/lang/ClassLoader/GetSystemPackage.java | 4 openjdk-17-17.0.14+7/test/jdk/java/lang/ProcessBuilder/Basic.java | 3 openjdk-17-17.0.14+7/test/jdk/java/lang/ProcessBuilder/InheritIOTest.java | 5 openjdk-17-17.0.14+7/test/jdk/java/lang/ProcessBuilder/JspawnhelperProtocol.java | 25 openjdk-17-17.0.14+7/test/jdk/java/lang/ProcessBuilder/ReaderWriterTest.java | 13 openjdk-17-17.0.14+7/test/jdk/java/lang/ProcessBuilder/SkipTest.java | 3 openjdk-17-17.0.14+7/test/jdk/java/lang/ProcessHandle/OnExitTest.java | 21 openjdk-17-17.0.14+7/test/jdk/java/lang/ProcessHandle/TreeTest.java | 1 openjdk-17-17.0.14+7/test/jdk/java/lang/RuntimeTests/exec/ArgWithSpaceAndFinalBackslash.java | 3 openjdk-17-17.0.14+7/test/jdk/java/lang/RuntimeTests/exec/Duped.java | 3 openjdk-17-17.0.14+7/test/jdk/java/lang/RuntimeTests/exec/ExecWithLotsOfArgs.java | 3 openjdk-17-17.0.14+7/test/jdk/java/lang/RuntimeTests/exec/ExitValue.java | 3 openjdk-17-17.0.14+7/test/jdk/java/lang/RuntimeTests/exec/SetCwd.java | 4 openjdk-17-17.0.14+7/test/jdk/java/lang/RuntimeTests/shutdown/ShutdownInterruptedMain.java | 6 openjdk-17-17.0.14+7/test/jdk/java/lang/SecurityManager/modules/CustomSecurityManagerTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/lang/StackWalker/CallerFromMain.java | 4 openjdk-17-17.0.14+7/test/jdk/java/lang/System/MacEncoding/MacJNUEncoding.java | 4 openjdk-17-17.0.14+7/test/jdk/java/lang/Thread/UncaughtExceptionsTest.java | 2 openjdk-17-17.0.14+7/test/jdk/java/lang/annotation/LoaderLeakTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java | 4 openjdk-17-17.0.14+7/test/jdk/java/lang/instrument/NegativeAgentRunner.java | 4 openjdk-17-17.0.14+7/test/jdk/java/lang/instrument/PremainClass/PremainClassTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/lang/instrument/modules/AppendToClassPathModuleTest.java | 2 openjdk-17-17.0.14+7/test/jdk/java/lang/invoke/TestLambdaFormCustomization.java | 70 openjdk-17-17.0.14+7/test/jdk/java/lang/invoke/condy/CondyNestedResolutionTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/net/InetAddress/ptr/Lookup.java | 26 openjdk-17-17.0.14+7/test/jdk/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java | 5 openjdk-17-17.0.14+7/test/jdk/java/net/ServerSocket/AcceptInheritHandle.java | 12 openjdk-17-17.0.14+7/test/jdk/java/net/Socket/asyncClose/Socket_getInputStream_read.java | 34 openjdk-17-17.0.14+7/test/jdk/java/net/Socket/asyncClose/Socket_getOutputStream_write.java | 32 openjdk-17-17.0.14+7/test/jdk/java/net/URLClassLoader/getresourceasstream/TestDriver.java | 25 openjdk-17-17.0.14+7/test/jdk/java/net/URLClassLoader/sealing/CheckSealedTest.java | 21 openjdk-17-17.0.14+7/test/jdk/java/net/URLConnection/6212146/TestDriver.java | 3 openjdk-17-17.0.14+7/test/jdk/java/net/URLConnection/ContentHandlers/ContentHandlersTest.java | 15 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/AsFileDownloadTest.java | 5 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/AuthFilterCacheTest.java | 5 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/ConcurrentResponses.java | 6 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/CustomResponseSubscriber.java | 6 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/ExpectContinue.java | 11 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/HttpRedirectTest.java | 7 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/HttpSlowServerTest.java | 7 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/ImmutableFlowItems.java | 6 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/LargeHandshakeTest.java | 7 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/LargeResponseTest.java | 8 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/LightWeightHttpServer.java | 5 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/MappingResponseSubscriber.java | 6 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/RequestBodyTest.java | 6 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/RequestBodyTest.policy | 7 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java | 7 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/ServerNameMatcher.java | 152 + openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/TestServerConfigurator.java | 75 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/security/Driver.java | 7 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/websocket/HandshakeUrlEncodingTest.java | 10 openjdk-17-17.0.14+7/test/jdk/java/net/httpclient/websocket/WSHandshakeExceptionTest.java | 11 openjdk-17-17.0.14+7/test/jdk/java/net/ipv6tests/Tests.java | 5 openjdk-17-17.0.14+7/test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java | 12 openjdk-17-17.0.14+7/test/jdk/java/nio/MappedByteBuffer/ForceException.java | 4 openjdk-17-17.0.14+7/test/jdk/java/nio/MappedByteBuffer/ForceViews.java | 4 openjdk-17-17.0.14+7/test/jdk/java/nio/channels/DatagramChannel/Disconnect.java | 4 openjdk-17-17.0.14+7/test/jdk/java/nio/channels/Selector/LotsOfUpdatesTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/nio/channels/Selector/SelectWithConsumer.java | 51 openjdk-17-17.0.14+7/test/jdk/java/nio/channels/SocketChannel/AdaptorStreams.java | 20 openjdk-17-17.0.14+7/test/jdk/java/nio/channels/unixdomain/Bind.java | 72 openjdk-17-17.0.14+7/test/jdk/java/nio/channels/unixdomain/NonBlockingAccept.java | 11 openjdk-17-17.0.14+7/test/jdk/java/nio/charset/Charset/AliasesCopy.java | 69 openjdk-17-17.0.14+7/test/jdk/java/nio/charset/Charset/DefaultCharsetTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/nio/file/Files/CreateDirectories.java | 124 openjdk-17-17.0.14+7/test/jdk/java/nio/file/Files/Misc.java | 77 openjdk-17-17.0.14+7/test/jdk/java/nio/file/Path/MacPathTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/security/KeyAgreement/KeySizeTest.java | 4 openjdk-17-17.0.14+7/test/jdk/java/security/KeyAgreement/KeySpecTest.java | 8 openjdk-17-17.0.14+7/test/jdk/java/security/KeyAgreement/MultiThreadTest.java | 8 openjdk-17-17.0.14+7/test/jdk/java/security/KeyAgreement/NegativeTest.java | 9 openjdk-17-17.0.14+7/test/jdk/java/security/KeyFactory/Failover.java | 10 openjdk-17-17.0.14+7/test/jdk/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java | 5 openjdk-17-17.0.14+7/test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java | 3 openjdk-17-17.0.14+7/test/jdk/java/security/KeyPairGenerator/GenerateKeypair.java | 9 openjdk-17-17.0.14+7/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java | 11 openjdk-17-17.0.14+7/test/jdk/java/security/KeyRep/Serial.java | 67 openjdk-17-17.0.14+7/test/jdk/java/security/KeyRep/Serial.policy | 1 openjdk-17-17.0.14+7/test/jdk/java/security/KeyStore/TestKeyStoreEntry.java | 4 openjdk-17-17.0.14+7/test/jdk/java/security/MessageDigest/ByteBuffers.java | 9 openjdk-17-17.0.14+7/test/jdk/java/security/MessageDigest/TestCloneable.java | 70 openjdk-17-17.0.14+7/test/jdk/java/security/Provider/SupportsParameter.java | 9 openjdk-17-17.0.14+7/test/jdk/java/security/SecureRandom/DefaultAlgo.java | 7 openjdk-17-17.0.14+7/test/jdk/java/security/SecureRandom/DefaultProvider.java | 8 openjdk-17-17.0.14+7/test/jdk/java/security/SecureRandom/GetInstanceTest.java | 19 openjdk-17-17.0.14+7/test/jdk/java/security/Security/CaseInsensitiveAlgNames.java | 28 openjdk-17-17.0.14+7/test/jdk/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh | 4 openjdk-17-17.0.14+7/test/jdk/java/security/Security/ClassLoaderDeadlock/Deadlock.sh | 4 openjdk-17-17.0.14+7/test/jdk/java/security/Security/SynchronizedAccess.java | 129 - openjdk-17-17.0.14+7/test/jdk/java/security/Signature/ByteBuffers.java | 16 openjdk-17-17.0.14+7/test/jdk/java/security/Signature/NONEwithRSA.java | 17 openjdk-17-17.0.14+7/test/jdk/java/security/Signature/ResetAfterException.java | 11 openjdk-17-17.0.14+7/test/jdk/java/security/Signature/SignWithOutputBuffer.java | 17 openjdk-17-17.0.14+7/test/jdk/java/security/Signature/SignatureGetInstance.java | 18 openjdk-17-17.0.14+7/test/jdk/java/security/Signature/TestCloneable.java | 34 openjdk-17-17.0.14+7/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java | 20 openjdk-17-17.0.14+7/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java | 11 openjdk-17-17.0.14+7/test/jdk/java/security/SignedJar/SignedJarWithCustomClassLoader.java | 6 openjdk-17-17.0.14+7/test/jdk/java/security/SignedObject/Chain.java | 17 openjdk-17-17.0.14+7/test/jdk/java/security/SignedObject/Copy.java | 16 openjdk-17-17.0.14+7/test/jdk/java/security/cert/CertificateFactory/slowstream.sh | 6 openjdk-17-17.0.14+7/test/jdk/java/security/cert/X509CertSelectorTest.java | 13 openjdk-17-17.0.14+7/test/jdk/java/security/cert/X509Certificate/GetSigAlgParams.java | 6 openjdk-17-17.0.14+7/test/jdk/java/security/misc/GetInstanceNullsEmpties.java | 197 - openjdk-17-17.0.14+7/test/jdk/java/security/testlibrary/HumanInputStream.java | 192 + openjdk-17-17.0.14+7/test/jdk/java/time/test/java/time/format/TestDateTimeParsing.java | 36 openjdk-17-17.0.14+7/test/jdk/java/util/Formatter/Basic.java | 51 openjdk-17-17.0.14+7/test/jdk/java/util/Formatter/Basic.sh | 50 openjdk-17-17.0.14+7/test/jdk/java/util/Formatter/BasicTestLauncher.java | 100 openjdk-17-17.0.14+7/test/jdk/java/util/TimeZone/CustomTzIDCheckDST.java | 4 openjdk-17-17.0.14+7/test/jdk/java/util/TimeZone/TimeZoneData/VERSION | 2 openjdk-17-17.0.14+7/test/jdk/java/util/TimeZone/TimeZoneData/aliases.txt | 1 openjdk-17-17.0.14+7/test/jdk/java/util/concurrent/CompletableFuture/CompletableFutureOrTimeoutExceptionallyTest.java | 83 openjdk-17-17.0.14+7/test/jdk/java/util/concurrent/tck/JSR166TestCase.java | 1 openjdk-17-17.0.14+7/test/jdk/java/util/concurrent/tck/SystemTest.java | 75 openjdk-17-17.0.14+7/test/jdk/java/util/zip/CopyZipFile.java | 291 +- openjdk-17-17.0.14+7/test/jdk/java/util/zip/DeflaterDictionaryTests.java | 26 openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/Available.java | 37 openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/CenSizeTooLarge.java | 226 + openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/CopyJar.java | 48 openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/EnumAfterClose.java | 49 openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/EnumerateAfterClose.java | 94 openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/FinalizeInflater.java | 67 openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/GetDirEntry.java | 43 openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/ReadAfterClose.java | 117 openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/ReadZip.java | 472 ++- openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/ReleaseInflater.java | 85 openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/StreamZipEntriesTest.java | 157 - openjdk-17-17.0.14+7/test/jdk/java/util/zip/ZipFile/ZeroDate.java | 58 openjdk-17-17.0.14+7/test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java | 91 openjdk-17-17.0.14+7/test/jdk/javax/crypto/Cipher/ByteBuffers.java | 15 openjdk-17-17.0.14+7/test/jdk/javax/crypto/Cipher/CipherInputStreamExceptions.java | 14 openjdk-17-17.0.14+7/test/jdk/javax/crypto/Cipher/GetMaxAllowed.java | 5 openjdk-17-17.0.14+7/test/jdk/javax/crypto/Cipher/TestCipherMode.java | 6 openjdk-17-17.0.14+7/test/jdk/javax/crypto/Cipher/TestGetInstance.java | 46 openjdk-17-17.0.14+7/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java | 13 openjdk-17-17.0.14+7/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java | 9 openjdk-17-17.0.14+7/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java | 6 openjdk-17-17.0.14+7/test/jdk/javax/crypto/CryptoPermission/RSANoLimit.java | 4 openjdk-17-17.0.14+7/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java | 8 openjdk-17-17.0.14+7/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java | 16 openjdk-17-17.0.14+7/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java | 22 openjdk-17-17.0.14+7/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java | 12 openjdk-17-17.0.14+7/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java | 11 openjdk-17-17.0.14+7/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java | 23 openjdk-17-17.0.14+7/test/jdk/javax/crypto/KeyGenerator/TestKGParity.java | 8 openjdk-17-17.0.14+7/test/jdk/javax/crypto/Mac/ByteBuffers.java | 11 openjdk-17-17.0.14+7/test/jdk/javax/crypto/Mac/TestGetInstance.java | 20 openjdk-17-17.0.14+7/test/jdk/javax/crypto/SecretKeyFactory/SecKFTranslateTest.java | 9 openjdk-17-17.0.14+7/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java | 9 openjdk-17-17.0.14+7/test/jdk/javax/crypto/SecretKeyFactory/evilprov/com/evilprovider/EvilHmacSHA1.java | 5 openjdk-17-17.0.14+7/test/jdk/javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java | 2 openjdk-17-17.0.14+7/test/jdk/javax/management/security/HashedPasswordFileTest.java | 4 openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/DTLS/DTLSWontNegotiateV10.java | 7 openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/TLSCommon/interop/AbstractServer.java | 14 openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/TLSCommon/interop/JdkServer.java | 6 openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/TLSCommon/interop/ProcUtils.java | 6 openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/ciphersuites/DisabledAlgorithms.java | 216 - openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/ciphersuites/TLSWontNegotiateDisabledCipherAlgos.java | 148 + openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/templates/SSLContextTemplate.java | 92 openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/templates/SSLEngineTemplate.java | 12 openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/templates/SSLSocketTemplate.java | 4 openjdk-17-17.0.14+7/test/jdk/javax/net/ssl/templates/TLSBase.java | 3 openjdk-17-17.0.14+7/test/jdk/javax/security/auth/Destroyable/KeyDestructionTest.java | 7 openjdk-17-17.0.14+7/test/jdk/javax/security/auth/login/Configuration/GetInstance.java | 22 openjdk-17-17.0.14+7/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy | 1 openjdk-17-17.0.14+7/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.java | 15 openjdk-17-17.0.14+7/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.policy | 2 openjdk-17-17.0.14+7/test/jdk/javax/sound/midi/SysexMessage/EmptySysExMessageTest.java | 82 openjdk-17-17.0.14+7/test/jdk/javax/swing/JButton/PressedButtonRightClickTest.java | 59 openjdk-17-17.0.14+7/test/jdk/javax/swing/JButton/bug4490179.java | 13 openjdk-17-17.0.14+7/test/jdk/javax/swing/JComboBox/6567433/UpdateUIRecursionTest.java | 4 openjdk-17-17.0.14+7/test/jdk/javax/swing/JComboBox/ComboPopupBug.java | 86 openjdk-17-17.0.14+7/test/jdk/javax/swing/JComboBox/DisabledComboBoxFontTestAuto.java | 168 + openjdk-17-17.0.14+7/test/jdk/javax/swing/JFrame/DefaultCloseOperation.java | 36 openjdk-17-17.0.14+7/test/jdk/javax/swing/JInternalFrame/4202966/IntFrameCoord.java | 145 + openjdk-17-17.0.14+7/test/jdk/javax/swing/JLabel/4138746/JLabelMnemonicsTest.java | 3 openjdk-17-17.0.14+7/test/jdk/javax/swing/JTabbedPane/TestJTabbedPaneArrowDirection.java | 108 openjdk-17-17.0.14+7/test/jdk/javax/swing/JToolBar/bug4203039.java | 4 openjdk-17-17.0.14+7/test/jdk/javax/swing/MultiMonitor/MultimonVImage.java | 30 openjdk-17-17.0.14+7/test/jdk/javax/swing/UI/UnninstallUIMemoryLeaks/UnninstallUIMemoryLeaks.java | 4 openjdk-17-17.0.14+7/test/jdk/javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation/JComboBoxPopupLocation.java | 4 openjdk-17-17.0.14+7/test/jdk/javax/swing/plaf/basic/BasicDirectoryModel/LoaderThreadCount.java | 277 ++ openjdk-17-17.0.14+7/test/jdk/javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java | 12 openjdk-17-17.0.14+7/test/jdk/javax/swing/text/JTextComponent/5074573/bug5074573.java | 34 openjdk-17-17.0.14+7/test/jdk/javax/swing/text/html/CSS/bug8234913.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/incubator/vector/LoadJsvmlTest.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/internal/misc/VM/RuntimeArguments.java | 42 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/api/consumer/filestream/TestOrdered.java | 6 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/api/consumer/filestream/TestReuse.java | 5 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/api/consumer/streaming/Application.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/api/consumer/streaming/TestCrossProcessStreaming.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/api/consumer/streaming/TestProcess.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/event/gc/configuration/TestGCYoungGenerationConfigurationEventWithMinAndMaxSize.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/event/oldobject/TestClassLoaderLeak.java | 10 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/event/os/TestInitialEnvironmentVariable.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/event/runtime/TestDumpReason.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/event/runtime/TestShutdownEvent.java | 2 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/jvm/TestDumpOnCrash.java | 2 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/jvm/TestEventWriterLog.java | 2 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/jvm/TestJfrJavaBase.java | 69 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/jvm/TestModularImage.java | 184 + openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestBadOptionValues.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestDumpOnExit.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestJFCWarnings.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestMemoryOptions.java | 24 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestMultipleStartupRecordings.java | 10 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestOptionsWithLocale.java | 2 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestRetransformUsingLog.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestStartDuration.java | 6 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestStartName.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/jfr/startupargs/TestStartupMessage.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/nio/zipfs/ZeroDate.java | 58 openjdk-17-17.0.14+7/test/jdk/jdk/security/JavaDotSecurity/MakeJavaSecurityTest.java | 4 openjdk-17-17.0.14+7/test/jdk/jdk/security/jarsigner/Spec.java | 13 openjdk-17-17.0.14+7/test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CAInterop.java | 6 openjdk-17-17.0.14+7/test/jdk/sun/awt/PaletteTester.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java | 2 openjdk-17-17.0.14+7/test/jdk/sun/management/jdp/DynamicLauncher.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java | 32 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/bootstrap/CustomLauncherTest.java | 6 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/bootstrap/JMXAgentInterfaceBinding.java | 14 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/bootstrap/JMXInterfaceBindingTest.java | 7 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/bootstrap/LocalManagementTest.java | 6 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java | 2 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java | 2 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/bootstrap/RmiTestBase.java | 47 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/bootstrap/Utils.java | 195 - openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/startstop/JMXStartStopTest.java | 13 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/startstop/JMXStatusPerfCountersTest.java | 7 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/startstop/JMXStatusTest.java | 9 openjdk-17-17.0.14+7/test/jdk/sun/management/jmxremote/startstop/ManagementAgentJcmd.java | 10 openjdk-17-17.0.14+7/test/jdk/sun/net/www/B8185898.java | 16 openjdk-17-17.0.14+7/test/jdk/sun/net/www/http/KeepAliveCache/B5045306.java | 251 + openjdk-17-17.0.14+7/test/jdk/sun/net/www/http/KeepAliveCache/B8291637.java | 67 openjdk-17-17.0.14+7/test/jdk/sun/net/www/http/KeepAliveCache/B8293562.java | 34 openjdk-17-17.0.14+7/test/jdk/sun/net/www/http/KeepAliveCache/KeepAliveProperty.java | 23 openjdk-17-17.0.14+7/test/jdk/sun/net/www/http/KeepAliveCache/KeepAliveTimerThread.java | 21 openjdk-17-17.0.14+7/test/jdk/sun/net/www/protocol/jar/GetContentTypeTest.java | 12 openjdk-17-17.0.14+7/test/jdk/sun/net/www/protocol/jar/jarbug/TestDriver.java | 13 openjdk-17-17.0.14+7/test/jdk/sun/net/www/protocol/jrt/OtherResourcesTest.java | 19 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/InvalidCurve.java | 3 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/SignatureDigestTruncate.java | 11 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/SignatureKAT.java | 11 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/SignedObjectChain.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/TestEC.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/ed/EdCRLSign.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/ed/EdDSAKeyCompatibility.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/ed/EdDSAKeySize.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/ed/EdDSANegativeTest.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/ed/EdDSAParamSpec.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/ed/EdDSAReuseTest.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/ed/EdDSATest.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ec/ed/TestEdDSA.java | 14 openjdk-17-17.0.14+7/test/jdk/sun/security/jca/PreferredProviderNegativeTest.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/krb5/auto/ModuleName.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/krb5/auto/Renew.java | 7 openjdk-17-17.0.14+7/test/jdk/sun/security/krb5/runNameEquals.sh | 6 openjdk-17-17.0.14+7/test/jdk/sun/security/mscapi/InteropWithSunRsaSign.java | 8 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs/pkcs10/PKCS10AttrEncoding.java | 13 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs/pkcs7/SignerOrder.java | 33 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs/pkcs8/TestLeadingZeros.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Cipher/EncryptionPadding.java | 7 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java | 15 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java | 11 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java | 11 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java | 2 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java | 2 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java | 14 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java | 73 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/KeyStore/Basic.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/PKCS11Test.java | 56 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Provider/MultipleLogins.sh | 2 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS2.java | 3 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java | 13 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/policy | 3 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs11/rsa/rsakeys.ks.policy | 3 openjdk-17-17.0.14+7/test/jdk/sun/security/pkcs12/P12SecretKey.java | 40 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/DSA/TestAlgParameterGenerator.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/DSA/TestDSA.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/DSA/TestDSA2.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/DSA/TestKeyPairGenerator.java | 8 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/KeyStore/CaseSensitiveAliases.java | 9 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/KeyStore/DKSTest.java | 2 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/MessageDigest/DigestKAT.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/MessageDigest/Offsets.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/MessageDigest/TestSHAClone.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/NSASuiteB/TestDSAGenParameterSpec.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/NSASuiteB/TestSHAOids.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java | 10 openjdk-17-17.0.14+7/test/jdk/sun/security/provider/PolicyFile/getinstance/getinstance.sh | 6 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java | 13 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/GenKeyStore.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/KeySizeTest.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/PrivateKeyEqualityTest.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/SignatureTest.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/SpecTest.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/TestCACerts.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/TestKeyFactory.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/TestKeyPairGenerator.java | 29 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java | 16 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java | 10 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java | 13 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/TestRSAOidSupport.java | 8 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/TestSigGen15.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/TestSignatures.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/WithoutNULL.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/pss/DefaultParamSpec.java | 6 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/pss/InitAgain.java | 18 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/pss/PSSKeyCompatibility.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/pss/PSSParametersTest.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java | 9 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/pss/SignatureTest2.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/pss/SignatureTestPSS.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java | 17 openjdk-17-17.0.14+7/test/jdk/sun/security/rsa/pss/TestSigGenPSS.java | 5 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/ClientHandshaker/LengthCheckTest.java | 166 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/DHKeyExchange/DHEKeySizing.java | 307 -- openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/EngineArgs/DebugReportsOneExtraByte.java | 195 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/HandshakeHash/DigestBase.java | 6 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/HandshakeOutStream/NullCerts.java | 214 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/CloseEngineException.java | 197 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/CloseStart.java | 58 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/DelegatedTaskWrongException.java | 162 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/EmptyExtensionData.java | 72 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/EngineEnforceUseClientMode.java | 208 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/RehandshakeFinished.java | 64 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/SSLEngineDeadlock.java | 137 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/SSLEngineFailedALPN.java | 171 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/SSLEngineKeyLimit.java | 42 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLEngineImpl/TLS13BeginHandshake.java | 109 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLSessionImpl/HashCodeMissing.java | 230 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLSessionImpl/ResumeChecksClient.java | 45 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLSessionImpl/ResumeChecksClientStateless.java | 1 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLSessionImpl/ResumeChecksServer.java | 43 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLSessionImpl/ResumeChecksServerStateless.java | 1 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLSessionImpl/ResumptionUpdateBoundValues.java | 32 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLSocketImpl/NotifyHandshakeTest.sh | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketKeyLimit.java | 2 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/Distrust.java | 249 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/affirmtrustcommercialca-chain.pem | 77 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/affirmtrustnetworkingca-chain.pem | 76 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/affirmtrustpremiumca-chain.pem | 88 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/affirmtrustpremiumeccca-chain.pem | 63 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/entrust2048ca-chain.pem | 76 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/entrustevca-chain.pem | 79 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/entrustrootcaec1-chain.pem | 66 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/entrustrootcag2-chain.pem | 80 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Entrust/entrustrootcag4-chain.pem | 92 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java | 1276 ++++++---- openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java | 1263 ++++++--- openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/Distrust.java | 292 -- openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/appleistca8g1-chain.pem | 64 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/geotrustprimarycag2-chain.pem | 55 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/geotrustprimarycag3-chain.pem | 67 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/geotrustuniversalca-chain.pem | 71 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/thawteprimaryrootca-chain.pem | 66 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/thawteprimaryrootcag2-chain.pem | 51 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/thawteprimaryrootcag3-chain.pem | 67 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/verisignclass3g3ca-chain.pem | 71 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/verisignclass3g4ca-chain.pem | 56 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/verisignclass3g5ca-chain.pem | 71 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/verisignclass3g5ca-codesigning-chain.pem | 170 - openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/Symantec/verisignuniversalrootca-chain.pem | 73 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/Distrust.java | 228 + openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/Entrust.java | 68 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/Symantec.java | 95 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustcommercialca-chain.pem | 77 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustnetworkingca-chain.pem | 76 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustpremiumca-chain.pem | 88 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/affirmtrustpremiumeccca-chain.pem | 63 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrust2048ca-chain.pem | 76 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrustevca-chain.pem | 79 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrustrootcaec1-chain.pem | 66 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrustrootcag2-chain.pem | 80 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/entrust/entrustrootcag4-chain.pem | 92 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/appleistca8g1-chain.pem | 64 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/geotrustprimarycag2-chain.pem | 55 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/geotrustprimarycag3-chain.pem | 67 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/geotrustuniversalca-chain.pem | 71 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/thawteprimaryrootca-chain.pem | 66 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/thawteprimaryrootcag2-chain.pem | 51 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/thawteprimaryrootcag3-chain.pem | 67 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignclass3g3ca-chain.pem | 71 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignclass3g4ca-chain.pem | 56 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignclass3g5ca-chain.pem | 71 openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignclass3g5ca-codesigning-chain.pem | 170 + openjdk-17-17.0.14+7/test/jdk/sun/security/ssl/X509TrustManagerImpl/distrust/chains/symantec/verisignuniversalrootca-chain.pem | 73 openjdk-17-17.0.14+7/test/jdk/sun/security/tools/keytool/KeyToolTest.java | 222 - openjdk-17-17.0.14+7/test/jdk/sun/security/tools/keytool/NssTest.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/util/Pem/encoding.sh | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/util/RegisteredDomain/ParseNames.java | 2 openjdk-17-17.0.14+7/test/jdk/sun/security/util/RegisteredDomain/tests.dat | 11 openjdk-17-17.0.14+7/test/jdk/sun/security/validator/certreplace.sh | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/validator/samedn.sh | 4 openjdk-17-17.0.14+7/test/jdk/sun/security/x509/AlgorithmId/NonStandardNames.java | 9 openjdk-17-17.0.14+7/test/jdk/sun/security/x509/X509CRLImpl/Verify.java | 92 openjdk-17-17.0.14+7/test/jdk/sun/security/x509/X509CertImpl/Verify.java | 78 openjdk-17-17.0.14+7/test/jdk/sun/tools/jcmd/TestProcessHelper.java | 3 openjdk-17-17.0.14+7/test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java | 14 openjdk-17-17.0.14+7/test/jdk/sun/tools/jhsdb/JStackStressTest.java | 6 openjdk-17-17.0.14+7/test/jdk/sun/tools/jinfo/JInfoTest.java | 12 openjdk-17-17.0.14+7/test/jdk/sun/tools/jstat/JStatInterval.java | 7 openjdk-17-17.0.14+7/test/jdk/sun/util/calendar/zi/Month.java | 37 openjdk-17-17.0.14+7/test/jdk/sun/util/calendar/zi/RuleDay.java | 30 openjdk-17-17.0.14+7/test/jdk/sun/util/calendar/zi/RuleRec.java | 9 openjdk-17-17.0.14+7/test/jdk/sun/util/calendar/zi/TestZoneInfo310.java | 4 openjdk-17-17.0.14+7/test/jdk/sun/util/calendar/zi/Zoneinfo.java | 7 openjdk-17-17.0.14+7/test/jdk/sun/util/calendar/zi/tzdata_jdk/tz2024b_overridden_zones | 36 openjdk-17-17.0.14+7/test/jdk/tools/jar/ExtractFilesTest.java | 265 ++ openjdk-17-17.0.14+7/test/jdk/tools/jar/MultipleManifestTest.java | 224 + openjdk-17-17.0.14+7/test/jdk/tools/jimage/JImageToolTest.java | 4 openjdk-17-17.0.14+7/test/jdk/tools/jlink/JLinkReproducibleTest.java | 8 openjdk-17-17.0.14+7/test/jdk/tools/jlink/plugins/SystemModuleDescriptors/ModuleMainClassTest.java | 145 + openjdk-17-17.0.14+7/test/jdk/tools/jlink/plugins/SystemModuleDescriptors/src/com.foo/com/foo/Main.java | 49 openjdk-17-17.0.14+7/test/jdk/tools/jlink/plugins/SystemModuleDescriptors/src/com.foo/module-info.java | 26 openjdk-17-17.0.14+7/test/jdk/tools/jlink/plugins/SystemModuleDescriptors/src/net.foo/module-info.java | 25 openjdk-17-17.0.14+7/test/jdk/tools/jlink/plugins/SystemModuleDescriptors/src/net.foo/net/foo/Main.java | 50 openjdk-17-17.0.14+7/test/jdk/tools/jpackage/apps/ChildProcessAppLauncher.java | 42 openjdk-17-17.0.14+7/test/jdk/tools/jpackage/windows/WinChildProcessTest.java | 87 openjdk-17-17.0.14+7/test/jdk/tools/launcher/TestXcheckJNIWarnings.java | 24 openjdk-17-17.0.14+7/test/jdk/tools/launcher/modules/basic/BasicTest.java | 4 openjdk-17-17.0.14+7/test/jdk/tools/launcher/modules/classpath/JavaClassPathTest.java | 2 openjdk-17-17.0.14+7/test/langtools/jdk/jshell/ExceptionMessageTest.java | 1 openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/Class-Path.sh | 198 - openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/Class-Path2.sh | 111 openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/ClassPath.java | 218 + openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/ClassPath2.java | 126 openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/Diagnostics.java | 253 + openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/Diagnostics.sh | 210 - openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/Help.java | 82 openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/Help.sh | 69 openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/MineField.java | 352 ++ openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/MineField.sh | 277 -- openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/Util.java | 560 ++++ openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/Util.sh | 115 openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/WildcardMineField.java | 340 ++ openjdk-17-17.0.14+7/test/langtools/tools/javac/Paths/wcMineField.sh | 296 -- openjdk-17-17.0.14+7/test/langtools/tools/javac/StringConcat/StringAppendEvaluatesInOrder.java | 66 openjdk-17-17.0.14+7/test/langtools/tools/javac/StringConcat/WellKnownTypeSignatures.java | 119 openjdk-17-17.0.14+7/test/langtools/tools/javac/StringConcat/WellKnownTypes.java | 81 openjdk-17-17.0.14+7/test/langtools/tools/javac/StringConcat/access/Test.java | 66 openjdk-17-17.0.14+7/test/langtools/tools/javac/generics/ParametricException.java | 103 openjdk-17-17.0.14+7/test/langtools/tools/javac/generics/parametricException/ParametricException.java | 103 openjdk-17-17.0.14+7/test/langtools/tools/javac/warnings/Serial.java | 54 openjdk-17-17.0.14+7/test/langtools/tools/javac/warnings/Serial.out | 5 openjdk-17-17.0.14+7/test/langtools/tools/javac/warnings/Serial/Serial.java | 54 openjdk-17-17.0.14+7/test/langtools/tools/javac/warnings/Serial/Serial.out | 5 openjdk-17-17.0.14+7/test/langtools/tools/lib/toolbox/ToolBox.java | 2 openjdk-17-17.0.14+7/test/lib-test/jdk/test/lib/process/ProcessToolsLastLineTest.java | 70 openjdk-17-17.0.14+7/test/lib-test/jdk/test/whitebox/vm_flags/BooleanTest.java | 2 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/StringArrayUtils.java | 63 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/Utils.java | 227 + openjdk-17-17.0.14+7/test/lib/jdk/test/lib/cds/CDSAppTester.java | 240 + openjdk-17-17.0.14+7/test/lib/jdk/test/lib/cds/CDSOptions.java | 13 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/cds/CDSTestUtils.java | 4 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/classloader/ClassUnloadCommon.java | 7 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/cli/CommandLineOptionTest.java | 8 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/jfr/AppExecutorHelper.java | 4 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/process/OutputBuffer.java | 10 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/process/ProcessTools.java | 64 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/process/StreamPumper.java | 22 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/security/DiffieHellmanGroup.java | 109 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/security/SecurityUtils.java | 62 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/security/TestCertificate.java | 4 openjdk-17-17.0.14+7/test/lib/jdk/test/lib/security/TestTLSHandshake.java | 6 openjdk-17-17.0.14+7/test/lib/jdk/test/whitebox/WhiteBox.java | 7 openjdk-17-17.0.14+7/test/micro/org/openjdk/bench/java/security/SSLHandshake.java | 9 openjdk-17-17.0.14+7/test/micro/org/openjdk/bench/java/security/TestCertificates.java | 8 1404 files changed, 29452 insertions(+), 21334 deletions(-) diff -Nru openjdk-17-17.0.13+11/.jcheck/conf openjdk-17-17.0.14+7/.jcheck/conf --- openjdk-17-17.0.13+11/.jcheck/conf 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/.jcheck/conf 2025-01-04 20:25:18.000000000 +0000 @@ -1,7 +1,7 @@ [general] project=jdk-updates jbs=JDK -version=17.0.13 +version=17.0.14 [checks] error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists diff -Nru openjdk-17-17.0.13+11/README.md openjdk-17-17.0.14+7/README.md --- openjdk-17-17.0.13+11/README.md 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/README.md 2025-01-04 20:25:18.000000000 +0000 @@ -1,4 +1,11 @@ -# Welcome to the JDK! +# Welcome to OpenJDK 17 Updates! + +The JDK 17 Updates project uses two GitHub repositories. +Updates are continuously developed in the repository [jdk17u-dev](https://github.com/openjdk/jdk17u-dev). This is the repository usually targeted by contributors. +The [jdk17u](https://github.com/openjdk/jdk17u) repository is used for rampdown of the update releases of jdk17u and only accepts critical changes that must make the next release during rampdown. (You probably do not want to target jdk17u). + +For more OpenJDK 17 updates specific information such as timelines and contribution guidelines see the [project wiki page](https://wiki.openjdk.org/display/JDKUpdates/JDK+17u/). + For build instructions please see the [online documentation](https://openjdk.java.net/groups/build/doc/building.html), diff -Nru openjdk-17-17.0.13+11/SECURITY.md openjdk-17-17.0.14+7/SECURITY.md --- openjdk-17-17.0.13+11/SECURITY.md 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.14+7/SECURITY.md 2025-01-04 20:25:18.000000000 +0000 @@ -0,0 +1,3 @@ +# JDK Vulnerabilities + +Please follow the process outlined in the [OpenJDK Vulnerability Policy](https://openjdk.org/groups/vulnerability/report) to disclose vulnerabilities in the JDK. diff -Nru openjdk-17-17.0.13+11/debian/changelog openjdk-17-17.0.14+7/debian/changelog --- openjdk-17-17.0.13+11/debian/changelog 2024-10-17 20:50:46.000000000 +0000 +++ openjdk-17-17.0.14+7/debian/changelog 2025-01-30 23:01:36.000000000 +0000 @@ -1,8 +1,37 @@ -openjdk-17 (17.0.13+11-2~deb12u1) bookworm-security; urgency=medium +openjdk-17 (17.0.14+7-1~deb12u1) bookworm-security; urgency=medium - * Rebuild for bookworm + * Rebuild for Bookworm - -- Moritz Mühlenhoff Thu, 17 Oct 2024 22:50:46 +0200 + -- Moritz Muehlenhoff Fri, 31 Jan 2025 00:01:36 +0100 + +openjdk-17 (17.0.14+7-1) unstable; urgency=medium + + * OpenJDK 17.0.14 release, build 7. Release notes: + https://mail.openjdk.org/pipermail/jdk-updates-dev/2025-January/040827.html + + - CVEs: + + CVE-2025-21502 - 8330045: Enhance array handling. + + [ Vladimir Petko ] + * d/rules: Dump complete hs_err_pid and replay_pid logs to stdout. + * d/t/problems.csv: Add openjdk-24 and openjdk-25 to the problems.csv. + * d/rules: Create link to jquery-3.7.1.min.js instead of jquery-3.6.1.min.js + (LP: #2095455). + * d/copyright: Regenerate. + + [ Matthias Klose ] + * d/rules: Also dump logs for zero builds and for build failures. + + -- Matthias Klose Wed, 22 Jan 2025 10:17:58 +0100 + +openjdk-17 (17.0.14~6ea-1) unstable; urgency=medium + + * OpenJDK 17.0.14 early access, build 6. + + [ Pushkar Kulkarni ] + * d/t/problems.csv: Update based on recent JTREG runs. + + -- Matthias Klose Fri, 20 Dec 2024 11:09:22 +0100 openjdk-17 (17.0.13+11-2) unstable; urgency=high diff -Nru openjdk-17-17.0.13+11/debian/copyright openjdk-17-17.0.14+7/debian/copyright --- openjdk-17-17.0.13+11/debian/copyright 2024-07-20 08:43:54.000000000 +0000 +++ openjdk-17-17.0.14+7/debian/copyright 2025-01-22 09:17:58.000000000 +0000 @@ -826,7 +826,7 @@ . The Source Code of this file is available under the Mozilla Public License, v. 2.0 and is located at - https://raw.githubusercontent.com/publicsuffix/list/b5bf572c52988dbe9d865b8f090ea819024a9936/public_suffix_list.dat. + https://raw.githubusercontent.com/publicsuffix/list/1cbd6e71a9b83620b1d0b11e49d3d9ff48c27e22/public_suffix_list.dat. If a copy of the MPL was not distributed with this file, you can obtain one at https://mozilla.org/MPL/2.0/. . @@ -2121,6 +2121,54 @@ --- end of LICENSE --- . ------------------------------------------------------------------------------ + %% This notice is provided with respect to PipeWire 0.3.68, + which may be included with JRE 17, JDK 17 and OpenJDK 17 + . + --- begin of LICENSE --- + . + PipeWire license: + . + All PipeWire header files are licensed under the MIT License: + . + . + . + Copyright © 2018-2023 Wim Taymans + . + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + . + . + The below copyright applies to the following files: + . + spa/include/spa/monitor/type-info.h + . + Copyright © 2021 Collabora Ltd. + . + . + spa/include/spa/utils/string.h + . + Copyright © 2021 Red Hat, Inc. + . + . + --- end of LICENSE --- + . + ------------------------------------------------------------------------------ %% This notice is provided with respect to xwd v1.0.7, which may be included with JRE 17, JDK 17 and OpenJDK 17 . @@ -2657,14 +2705,14 @@ --- end of LICENSE --- . ------------------------------------------------------------------------------ - %% This notice is provided with respect to jQuery v3.6.1, + %% This notice is provided with respect to jQuery v3.7.1, which may be included with JRE 17, JDK 17 and OpenJDK 17 . --- begin of LICENSE --- . jQuery License . - jQuery v 3.6.1 + jQuery v 3.7.1 Copyright OpenJS Foundation and other contributors, https://openjsf.org/ . Permission is hereby granted, free of charge, to any person obtaining @@ -2686,52 +2734,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. . - ****************************************** - . - The jQuery JavaScript Library v3.6.1 also includes Sizzle.js - . - Sizzle.js includes the following license: - . - Copyright JS Foundation and other contributors, https://js.foundation/ - . - This software consists of voluntary contributions made by many - individuals. For exact contribution history, see the revision history - available at https://github.com/jquery/sizzle - . - The following license applies to all parts of this software except as - documented below: - . - ==== - . - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - . - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - . - ==== - . - All files located in the node_modules and external directories are - externally maintained libraries used by this software which have their - own licenses; we recommend you read them, as their terms may differ from - the terms above. - . - ********************* - . - . . --- end of LICENSE --- . diff -Nru openjdk-17-17.0.13+11/debian/rules openjdk-17-17.0.14+7/debian/rules --- openjdk-17-17.0.13+11/debian/rules 2024-10-17 08:58:43.000000000 +0000 +++ openjdk-17-17.0.14+7/debian/rules 2025-01-22 09:17:58.000000000 +0000 @@ -388,9 +388,11 @@ DEFAULT_CONFIGURE_ARGS = ZERO_CONFIGURE_ARGS = -# S390x does not support dtrace probes +no_dtrace_archs = powerpc ppc64 ppc64el sh4 s390x + +# PPC*, S390x and SH do not support dtrace probes # https://github.com/openjdk/jdk/pull/13228 -ifeq (,$(filter $(DEB_HOST_ARCH), powerpc ppc64 ppc64el s390x)) +ifeq (,$(filter $(DEB_HOST_ARCH),$(no_dtrace_archs))) COMMON_CONFIGURE_ARGS += --enable-dtrace endif @@ -717,7 +719,7 @@ bd_nss = libnss3-dev (>= 2:3.17.1), endif endif -bd_systemtap = systemtap-sdt-dev [!powerpc !ppc64 !ppc64el !sh4 !s390x], +bd_systemtap = systemtap-sdt-dev [$(foreach a,$(no_dtrace_archs),!$(a))], ifeq (,$(filter $(distrel),jessie stretch buster precise trusty xenial bionic focal groovy)) with_debugedit = yes @@ -1147,22 +1149,39 @@ ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 loong64 m68k mips mipsel mips64 mips64el powerpc riscv64 s390x sh4 sparc sparc64)) sh -c 'sh debian/buildwatch.sh $(CURDIR)/$(builddir) &' endif - if $(EXTRA_BUILD_ENV) $(MAKE) --no-print-directory -C $(builddir) $(build_target); then \ - : ; \ - else \ - if [ -f buildwatch.pid ]; then \ - pid=$$(cat buildwatch.pid); \ - kill -1 $$pid || :; sleep 1; kill -9 $$pid || :; \ - fi; \ - false; \ - fi + $(EXTRA_BUILD_ENV) $(MAKE) --no-print-directory -C $(builddir) $(build_target); \ + rv=$$?; \ + for log in `find $(builddir) -name 'hs_err_pid*.log' -o -name 'replay_pid*.log'`; do \ + [ -f $$log ] || continue; \ + echo "=== $$log ==="; \ + cat $$log; \ + echo "======"; \ + done; \ + if [ -f buildwatch.pid ]; then \ + pid=$$(cat buildwatch.pid); \ + kill -1 $$pid || :; sleep 1; kill -9 $$pid || :; \ + fi; \ + exit $$rv touch $@ stamps/zero-build: stamps/zero-configure @echo '========== $@ ==========' : # FIXME: build using the just built jdk, and build the vm only - $(EXTRA_BUILD_ENV) $(MAKE) --no-print-directory -C $(zbuilddir) $(zbuild_target) + $(EXTRA_BUILD_ENV) $(MAKE) --no-print-directory -C $(zbuilddir) $(zbuild_target); \ + rv=$$?; \ + for log in `find $(zbuilddir) -name 'hs_err_pid*.log' -o -name 'replay_pid*.log'`; do \ + [ -f $$log ] || continue; \ + echo "=== $$log ==="; \ + cat $$log; \ + echo "======"; \ + done; \ + if [ -f buildwatch.pid ]; then \ + pid=$$(cat buildwatch.pid); \ + kill -1 $$pid || :; sleep 1; kill -9 $$pid || :; \ + fi; \ + exit $$rv + rm -rf $(builddir)/$(sdkimg)/lib/zero cp -a $(zbuilddir)/$(zsdkimg)/lib/server \ $(builddir)/$(sdkimg)/lib/zero @@ -1864,7 +1883,7 @@ rm -v $(d_doc)/usr/share/doc/$(p_jrehl)/api/script-dir/{jquery-3.7.1.min.js,jquery-ui.min.css,jquery-ui.min.js} dh_link -p$(p_doc) \ /usr/share/javascript/jquery/jquery.min.js \ - /usr/share/doc/$(p_jrehl)/api/script-dir/jquery-3.6.1.min.js \ + /usr/share/doc/$(p_jrehl)/api/script-dir/jquery-3.7.1.min.js \ /usr/share/javascript/jquery-ui/themes/base/jquery-ui.min.css \ /usr/share/doc/$(p_jrehl)/api/script-dir/jquery-ui.min.css \ /usr/share/javascript/jquery-ui/jquery-ui.min.js \ @@ -1968,7 +1987,7 @@ dh_builddeb -a $(nodemo) $(nojrez) #$(bd_options) git_project = jdk17u -git_tag = jdk-17.0.13+11 +git_tag = jdk-17.0.14+7 package_version = $(subst jdk-,,$(git_tag)) package_version = $(shell echo $(PKGVERSION) | sed 's/-[^-][^-]*$$//') ifneq ($(is_upstream_release),yes) diff -Nru openjdk-17-17.0.13+11/debian/tests/problems.csv openjdk-17-17.0.14+7/debian/tests/problems.csv --- openjdk-17-17.0.13+11/debian/tests/problems.csv 2024-10-10 12:16:00.000000000 +0000 +++ openjdk-17-17.0.14+7/debian/tests/problems.csv 2025-01-17 08:14:54.000000000 +0000 @@ -1,7 +1,7 @@ Test,Bug,Comment,Packages,Arch,Release -Error: runtime/Unsafe/InternalErrorTest.java,JDK-8335238,"To investigate, not critical for security release – JDK-22 will expire before OO release",:openjdk-22,i386,:release-all +Error: runtime/Unsafe/InternalErrorTest.java,JDK-8335238,"To investigate, not critical for security release – JDK-22 will expire before OO release",:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,i386,:release-all Error: serviceability/jvmti/vthread/SuspendResume1/SuspendResume1.java#default,,"Deadlock, new failure, not critical – JDK-22 will expire before OO release",:openjdk-22,ppc64el,:release-all -FAILED: compiler/arguments/CheckCICompilerCount.java,,"Existing failure (exit code 0, expected 1)",:openjdk-17:openjdk-21:openjdk-22,i386,:release-all +FAILED: compiler/arguments/CheckCICompilerCount.java,,"Existing failure (exit code 0, expected 1)",:openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,i386,:release-all FAILED: compiler/codecache/MHIntrinsicAllocFailureTest.java,JDK-8298947,The issue only happens on armhf platform. ,:openjdk-17:openjdk-21,armhf,:release-all FAILED: gtest/GTestWrapper.java,,"17:UninitializedDoubleElementWorkerDataArrayTest.print_summary_on_test_vm, ",:openjdk-17:openjdk-21,i386,:release-all FAILED: java/foreign/critical/TestCritical.java,,"SEGSEGV in test, submit bug, not critical for security release",:openjdk-22,s390x,:release-all @@ -12,37 +12,37 @@ FAILED: java/foreign/TestSegments.java,,Ignore test failure in the preview api,:openjdk-21,:i386,:release-all FAILED: java/foreign/TestUpcallHighArity.java,,Ignore test failure in the preview api,:openjdk-21,:i386,:release-all FAILED: java/foreign/TestUpcallStructScope.java,,Ignore test failure in the preview api,:openjdk-21,:i386,:release-all -FAILED: java/io/File/createTempFile/TargetDirectory.java,JDK-8166162,Container issue,:openjdk-21:openjdk-22,:arch-all,:release-all +FAILED: java/io/File/createTempFile/TargetDirectory.java,JDK-8166162,Container issue,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all FAILED: java/io/File/GetXSpace.java,,"Container issue, disk space size exceeds 32 bit integer",:openjdk-17:openjdk-21:openjdk-22,:i386:armhf,:release-all -FAILED: java/nio/channels/FileChannel/directio/DirectIOTest.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/channels/FileChannel/directio/PreadDirect.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/channels/FileChannel/directio/PwriteDirect.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/channels/FileChannel/directio/ReadDirect.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/channels/FileChannel/directio/WriteDirect.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/attribute/AclFileAttributeView/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all +FAILED: java/nio/channels/FileChannel/directio/DirectIOTest.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/channels/FileChannel/directio/PreadDirect.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/channels/FileChannel/directio/PwriteDirect.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/channels/FileChannel/directio/ReadDirect.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/channels/FileChannel/directio/WriteDirect.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/attribute/AclFileAttributeView/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all FAILED: java/nio/file/attribute/BasicFileAttributeView/CreationTime.java,JDK-8166162,Container issue,:openjdk-22,i386,:release-all -FAILED: java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/attribute/DosFileAttributeView/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/attribute/PosixFileAttributeView/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/attribute/UserDefinedFileAttributeView/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/Files/CheckPermissions.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/Files/CopyAndMove.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/Files/CopyMoveVariations.java,JDK-8166162,Container issue,:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/Files/FileAttributes.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/Files/InterruptCopy.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/Files/Misc.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/Files/TemporaryFiles.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all -FAILED: java/nio/file/FileStore/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all +FAILED: java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/attribute/DosFileAttributeView/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/attribute/PosixFileAttributeView/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/attribute/UserDefinedFileAttributeView/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/Files/CheckPermissions.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/Files/CopyAndMove.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/Files/CopyMoveVariations.java,JDK-8166162,Container issue,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/Files/FileAttributes.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/Files/InterruptCopy.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/Files/Misc.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/Files/TemporaryFiles.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all +FAILED: java/nio/file/FileStore/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all FAILED: runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java,,flaky test (?) existing comment,:openjdk-17,:arch-all,:release-all FAILED: runtime/cds/appcds/jcmd/JCmdTestFileSafety.java,,flaky test (?) existing comment,:openjdk-17,i386:arm64:amd64:ppc64el,:release-all FAILED: runtime/cds/appcds/jcmd/JCmdTestStaticDump.java,,flaky test (?) existing comment,:openjdk-17,:arch-all,:release-all FAILED: runtime/ErrorHandling/MachCodeFramesInErrorFile.java,,java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code at java.base/java.lang.Long.toHexString(Long.java:309) at,:openjdk-17:openjdk-21,armhf,:release-all FAILED: runtime/jni/nativeStack/TestNativeStack.java,JDK-8312016,"Backport fix (do not add patch, the fix just disables the test)",:openjdk-lts:openjdk-11:openjdk-17,armhf,:release-all -FAILED: runtime/LoadClass/LongBCP.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-22,:arch-all,:release-all +FAILED: runtime/LoadClass/LongBCP.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all FAILED: runtime/Monitor/ConcurrentDeflation.java,,LockingMode == 0 (LM_MONITOR) is not fully implemented on this architectureError: Could not create the Java Virtual Machine.,:openjdk-21,armhf,:release-all -FAILED: runtime/NMT/VirtualAllocCommitMerge.java,JDK-8309698,P4 bug (existing issue),:openjdk-21:openjdk-22,s390x,:release-all +FAILED: runtime/NMT/VirtualAllocCommitMerge.java,JDK-8309698,P4 bug (existing issue),:openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,s390x,:release-all FAILED: serviceability/AsyncGetCallTrace/MyPackage/ASGCTBaseTest.java,JDK-8303168,Existing bug,:openjdk-21,armhf,:release-all -FAILED: tools/jlink/JLinkTest.java,JDK-8240349,Bugfix failed for i386 (P4 bug),:openjdk-17:openjdk-21:openjdk-22,i386,:release-all +FAILED: tools/jlink/JLinkTest.java,JDK-8240349,Bugfix failed for i386 (P4 bug),:openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:,i386,:release-all FAILED: jdk/javadoc/doclet/dupThrowsTags/TestDupThrowsTags.java,,tests failing due to disable-doclint-by-default.diff (reproducible build maintainer patch),:openjdk-lts:openjdk-11,:arch-all,:release-all FAILED: jdk/javadoc/doclet/T6735320/T6735320.java,,tests failing due to disable-doclint-by-default.diff (reproducible build maintainer patch),:openjdk-lts:openjdk-11,:arch-all,:release-all FAILED: jdk/javadoc/doclet/testBadHtml/TestBadHtml.java,,tests failing due to disable-doclint-by-default.diff (reproducible build maintainer patch),:openjdk-lts:openjdk-11,:arch-all,:release-all @@ -82,4 +82,5 @@ FAILED: java/foreign/TestUpcallStack.java,, asserts due to the invalid structure size. Ignore as this is a preview API and the issue does not occur in openjdk-22. I will add it to the problemlist.,:openjdk-21,:armhf,:release-all FAILED: java/foreign/TestVarArgs.java,, asserts due to the invalid structure size. Ignore as this is a preview API and the issue does not occur in openjdk-22. I will add it to the problemlist.,:openjdk-21,:armhf,:release-all FAILED: runtime/os/TestTrimNative.java#trimNative,, java.lang.RuntimeException: We found fewer (periodic) trim lines in UL log than expected (expected at least 13 found 11). This looks like a flaky test - it asserts number of lines from the periodic trimmer e.g. src/hotspot/share/runtime/trimNativeHeap.hpp:56 which causes the test to fail due to the slow VM. Test passes locally.,:openjdk-21,:armhf,:release-all -FAILED: jdk/sun/security/util/Debug/DebugOptions.java,JDK-8339713,Stack overflow error on 32-bit platforms,:openjdk-21:openjdk-23,:armhf:i386,:release-all +FAILED: jdk/sun/security/util/Debug/DebugOptions.java,JDK-8339713,Stack overflow error on 32-bit platforms,:openjdk-17:openjdk-21:openjdk-23:openjdk-24:openjdk-25:,:armhf:i386:s390x,:release-all +Error: jdk/jshell/TerminalNoExecTest.java,,BackingStoreException: Couldn't get file lock - possibly because the LP (non-root) container has no home directory,:openjdk-23:openjdk-24:openjdk-25:,:arch-all,:release-all diff -Nru openjdk-17-17.0.13+11/doc/testing.html openjdk-17-17.0.14+7/doc/testing.html --- openjdk-17-17.0.13+11/doc/testing.html 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/doc/testing.html 2025-01-04 20:25:18.000000000 +0000 @@ -44,6 +44,9 @@
  • Docker Tests
  • Non-US locale
  • PKCS11 Tests
  • +
  • Testing with +alternative security providers
  • Client UI Tests
  • @@ -242,6 +245,18 @@
    $ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
         JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"

    For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.

    +

    Testing with +alternative security providers

    +

    Some security tests use a hardcoded provider for +KeyFactory, Cipher, +KeyPairGenerator, KeyGenerator, +AlgorithmParameterGenerator, KeyAgreement, +Mac, MessageDigest, SecureRandom, +Signature, AlgorithmParameters, +Configuration, Policy, or +SecretKeyFactory objects. Specify the +-Dtest.provider.name=NAME property to use a different +provider for the service(s).

    Client UI Tests

    System key shortcuts

    Some Client UI tests use key sequences which may be reserved by the operating system. Usually that causes the test failure. So it is highly recommended to disable system key shortcuts prior testing. The steps to access and disable system key shortcuts for various platforms are provided below.

    diff -Nru openjdk-17-17.0.13+11/doc/testing.md openjdk-17-17.0.14+7/doc/testing.md --- openjdk-17-17.0.13+11/doc/testing.md 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/doc/testing.md 2025-01-04 20:25:18.000000000 +0000 @@ -551,6 +551,15 @@ For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README. +### Testing with alternative security providers + +Some security tests use a hardcoded provider for `KeyFactory`, `Cipher`, +`KeyPairGenerator`, `KeyGenerator`, `AlgorithmParameterGenerator`, +`KeyAgreement`, `Mac`, `MessageDigest`, `SecureRandom`, `Signature`, +`AlgorithmParameters`, `Configuration`, `Policy`, or `SecretKeyFactory` objects. +Specify the `-Dtest.provider.name=NAME` property to use a different provider for +the service(s). + ### Client UI Tests #### System key shortcuts diff -Nru openjdk-17-17.0.13+11/make/RunTests.gmk openjdk-17-17.0.14+7/make/RunTests.gmk --- openjdk-17-17.0.13+11/make/RunTests.gmk 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/RunTests.gmk 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -200,9 +200,10 @@ $(eval $(call ParseKeywordVariable, JTREG, \ SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT \ TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM RUN_PROBLEM_LISTS \ - RETRY_COUNT REPEAT_COUNT MAX_OUTPUT, \ + RETRY_COUNT REPEAT_COUNT MAX_OUTPUT $(CUSTOM_JTREG_SINGLE_KEYWORDS), \ STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \ - EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS, \ + EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS\ + $(CUSTOM_JTREG_STRING_KEYWORDS), \ )) ifneq ($(JTREG), ) @@ -738,8 +739,6 @@ # we may end up with a lot of JVM's $1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $(AWK) 'BEGIN { print 25 / $$($1_JTREG_JOBS); }') - JTREG_TIMEOUT_FACTOR ?= 4 - JTREG_VERBOSE ?= fail,error,summary JTREG_RETAIN ?= fail,error JTREG_RUN_PROBLEM_LISTS ?= false @@ -814,6 +813,24 @@ $1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$($1_JTREG_PROBLEM_LIST)) endif + JTREG_ALL_OPTIONS := $$(JTREG_JAVA_OPTIONS) $$(JTREG_VM_OPTIONS) + + JTREG_AUTO_PROBLEM_LISTS := + JTREG_AUTO_TIMEOUT_FACTOR := 4 + + ifneq ($$(findstring -Xcomp, $$(JTREG_ALL_OPTIONS)), ) + JTREG_AUTO_PROBLEM_LISTS += ProblemList-Xcomp.txt + JTREG_AUTO_TIMEOUT_FACTOR := 10 + endif + + ifneq ($$(findstring -XX:+UseZGC, $$(JTREG_ALL_OPTIONS)), ) + ifneq ($$(findstring -XX:-ZGenerational, $$(JTREG_ALL_OPTIONS)), ) + JTREG_AUTO_PROBLEM_LISTS += ProblemList-zgc.txt + else + JTREG_AUTO_PROBLEM_LISTS += ProblemList-generational-zgc.txt + endif + endif + ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), ) # Accept both absolute paths as well as relative to the current test root. $1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \ @@ -843,6 +860,20 @@ endif endif + $$(eval $$(call SetupRunJtregTestCustom, $1)) + + # SetupRunJtregTestCustom might also adjust JTREG_AUTO_ variables + # so set the final results after setting values from custom setup + ifneq ($$(JTREG_AUTO_PROBLEM_LISTS), ) + # Accept both absolute paths as well as relative to the current test root. + $1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \ + $$(JTREG_AUTO_PROBLEM_LISTS) \ + $$(addprefix $$($1_TEST_ROOT)/, $$(JTREG_AUTO_PROBLEM_LISTS)) \ + )) + endif + + JTREG_TIMEOUT_FACTOR ?= $$(JTREG_AUTO_TIMEOUT_FACTOR) + clean-outputdirs-$1: $$(RM) -r $$($1_TEST_SUPPORT_DIR) $$(RM) -r $$($1_TEST_RESULTS_DIR) @@ -945,7 +976,7 @@ $1_EXITCODE := $$($1_TEST_RESULTS_DIR)/exitcode.txt $1_FULL_TEST_NAME := $$(strip $$(patsubst special:%, %, $$($1_TEST))) - ifneq ($$(findstring :, $$($1_FULL_TEST_NAME)), ) + ifneq ($$(findstring:, $$($1_FULL_TEST_NAME)), ) $1_TEST_NAME := $$(firstword $$(subst :, ,$$($1_FULL_TEST_NAME))) $1_TEST_ARGS := $$(strip $$(patsubst special:$$($1_TEST_NAME):%, %, $$($1_TEST))) else diff -Nru openjdk-17-17.0.13+11/make/autoconf/lib-alsa.m4 openjdk-17-17.0.14+7/make/autoconf/lib-alsa.m4 --- openjdk-17-17.0.13+11/make/autoconf/lib-alsa.m4 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/autoconf/lib-alsa.m4 2025-01-04 20:25:18.000000000 +0000 @@ -71,6 +71,25 @@ fi fi if test "x$ALSA_FOUND" = xno; then + # If we have sysroot set, and no explicit library location is set, + # look at known locations in sysroot. + if test "x$SYSROOT" != "x" && test "x${with_alsa_lib}" == x; then + if test -f "$SYSROOT/usr/lib64/libasound.so" && test "x$OPENJDK_TARGET_CPU_BITS" = x64; then + ALSA_LIBS="-L$SYSROOT/usr/lib64 -lasound" + ALSA_FOUND=yes + elif test -f "$SYSROOT/usr/lib/libasound.so"; then + ALSA_LIBS="-L$SYSROOT/usr/lib -lasound" + ALSA_FOUND=yes + elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libasound.so"; then + ALSA_LIBS="-L$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI -lasound" + ALSA_FOUND=yes + elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libasound.so"; then + ALSA_LIBS="-L$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI -lasound" + ALSA_FOUND=yes + fi + fi + fi + if test "x$ALSA_FOUND" = xno; then AC_CHECK_HEADERS([alsa/asoundlib.h], [ ALSA_FOUND=yes diff -Nru openjdk-17-17.0.13+11/make/autoconf/lib-x11.m4 openjdk-17-17.0.14+7/make/autoconf/lib-x11.m4 --- openjdk-17-17.0.13+11/make/autoconf/lib-x11.m4 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/autoconf/lib-x11.m4 2025-01-04 20:25:18.000000000 +0000 @@ -71,9 +71,9 @@ elif test -f "$SYSROOT/usr/lib/libX11.so"; then x_libraries="$SYSROOT/usr/lib" elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"; then - x_libraries="$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so" + x_libraries="$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI" elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"; then - x_libraries="$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so" + x_libraries="$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI" fi fi fi diff -Nru openjdk-17-17.0.13+11/make/autoconf/toolchain.m4 openjdk-17-17.0.14+7/make/autoconf/toolchain.m4 --- openjdk-17-17.0.13+11/make/autoconf/toolchain.m4 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/autoconf/toolchain.m4 2025-01-04 20:25:18.000000000 +0000 @@ -429,6 +429,11 @@ # Copyright (C) 2013 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + # or look like + # gcc (GCC) 10.2.1 20200825 (Alibaba 10.2.1-3.8 2.32) + # Copyright (C) 2020 Free Software Foundation, Inc. + # This is free software; see the source for copying conditions. There is NO + # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. COMPILER_VERSION_OUTPUT=`$COMPILER --version 2>&1` # Check that this is likely to be GCC. $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Free Software Foundation" > /dev/null @@ -442,7 +447,8 @@ COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \ $SED -e 's/ *Copyright .*//'` COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \ - $SED -e 's/^.* \(@<:@1-9@:>@<:@0-9@:>@*\.@<:@0-9.@:>@*\)@<:@^0-9.@:>@.*$/\1/'` + $AWK -F ')' '{print [$]2}' | \ + $AWK '{print [$]1}'` elif test "x$TOOLCHAIN_TYPE" = xclang; then # clang --version output typically looks like # Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) diff -Nru openjdk-17-17.0.13+11/make/common/NativeCompilation.gmk openjdk-17-17.0.14+7/make/common/NativeCompilation.gmk --- openjdk-17-17.0.13+11/make/common/NativeCompilation.gmk 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/common/NativeCompilation.gmk 2025-01-04 20:25:18.000000000 +0000 @@ -215,7 +215,21 @@ # The fix-deps-file macro is used to adjust the contents of the generated make # dependency files to contain paths compatible with make. # +REWRITE_PATHS_RELATIVE = false ifeq ($(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT)-$(FILE_MACRO_CFLAGS), false-) + REWRITE_PATHS_RELATIVE = true +endif + +# CCACHE_BASEDIR needs fix-deps-file as makefiles use absolute filenames for +# object files while CCACHE_BASEDIR will make ccache relativize all paths for +# its compiler. The compiler then produces relative dependency files. +# make does not know a relative and absolute filename is the same so it will +# ignore such dependencies. +ifneq ($(CCACHE), ) + REWRITE_PATHS_RELATIVE = true +endif + +ifeq ($(REWRITE_PATHS_RELATIVE), true) # Need to handle -I flags as both '-Ifoo' and '-I foo'. MakeCommandRelative = \ $(CD) $(WORKSPACE_ROOT) && \ diff -Nru openjdk-17-17.0.13+11/make/conf/version-numbers.conf openjdk-17-17.0.14+7/make/conf/version-numbers.conf --- openjdk-17-17.0.13+11/make/conf/version-numbers.conf 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/conf/version-numbers.conf 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -28,12 +28,12 @@ DEFAULT_VERSION_FEATURE=17 DEFAULT_VERSION_INTERIM=0 -DEFAULT_VERSION_UPDATE=13 +DEFAULT_VERSION_UPDATE=14 DEFAULT_VERSION_PATCH=0 DEFAULT_VERSION_EXTRA1=0 DEFAULT_VERSION_EXTRA2=0 DEFAULT_VERSION_EXTRA3=0 -DEFAULT_VERSION_DATE=2024-10-15 +DEFAULT_VERSION_DATE=2025-01-21 DEFAULT_VERSION_CLASSFILE_MAJOR=61 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`" DEFAULT_VERSION_CLASSFILE_MINOR=0 DEFAULT_VERSION_DOCS_API_SINCE=11 diff -Nru openjdk-17-17.0.13+11/make/data/publicsuffixlist/VERSION openjdk-17-17.0.14+7/make/data/publicsuffixlist/VERSION --- openjdk-17-17.0.13+11/make/data/publicsuffixlist/VERSION 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/publicsuffixlist/VERSION 2025-01-04 20:25:18.000000000 +0000 @@ -1,2 +1,2 @@ -Github: https://raw.githubusercontent.com/publicsuffix/list/b5bf572c52988dbe9d865b8f090ea819024a9936/public_suffix_list.dat -Date: 2023-11-09 +Github: https://raw.githubusercontent.com/publicsuffix/list/1cbd6e71a9b83620b1d0b11e49d3d9ff48c27e22/public_suffix_list.dat +Date: 2024-05-07 diff -Nru openjdk-17-17.0.13+11/make/data/publicsuffixlist/public_suffix_list.dat openjdk-17-17.0.14+7/make/data/publicsuffixlist/public_suffix_list.dat --- openjdk-17-17.0.13+11/make/data/publicsuffixlist/public_suffix_list.dat 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/publicsuffixlist/public_suffix_list.dat 2025-01-04 20:25:18.000000000 +0000 @@ -6710,7 +6710,7 @@ // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-11-03T15:13:18Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-05-04T15:12:50Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -6896,7 +6896,7 @@ // https://www.iana.org/domains/root/db/anz.html anz -// aol : Oath Inc. +// aol : Yahoo Inc. // https://www.iana.org/domains/root/db/aol.html aol @@ -6988,10 +6988,6 @@ // https://www.iana.org/domains/root/db/autos.html autos -// avianca : Avianca Inc. -// https://www.iana.org/domains/root/db/avianca.html -avianca - // aws : AWS Registry LLC // https://www.iana.org/domains/root/db/aws.html aws @@ -7016,10 +7012,6 @@ // https://www.iana.org/domains/root/db/banamex.html banamex -// bananarepublic : The Gap, Inc. -// https://www.iana.org/domains/root/db/bananarepublic.html -bananarepublic - // band : Dog Beach, LLC // https://www.iana.org/domains/root/db/band.html band @@ -7544,10 +7536,6 @@ // https://www.iana.org/domains/root/db/cologne.html cologne -// comcast : Comcast IP Holdings I, LLC -// https://www.iana.org/domains/root/db/comcast.html -comcast - // commbank : COMMONWEALTH BANK OF AUSTRALIA // https://www.iana.org/domains/root/db/commbank.html commbank @@ -7752,6 +7740,10 @@ // https://www.iana.org/domains/root/db/dentist.html dentist +// desi +// https://www.iana.org/domains/root/db/desi.html +desi + // design : Registry Services, LLC // https://www.iana.org/domains/root/db/design.html design @@ -7796,7 +7788,7 @@ // https://www.iana.org/domains/root/db/dish.html dish -// diy : Lifestyle Domain Holdings, Inc. +// diy : Internet Naming Company LLC // https://www.iana.org/domains/root/db/diy.html diy @@ -7928,10 +7920,6 @@ // https://www.iana.org/domains/root/db/estate.html estate -// etisalat : Emirates Telecommunications Corporation (trading as Etisalat) -// https://www.iana.org/domains/root/db/etisalat.html -etisalat - // eurovision : European Broadcasting Union (EBU) // https://www.iana.org/domains/root/db/eurovision.html eurovision @@ -8104,7 +8092,7 @@ // https://www.iana.org/domains/root/db/foo.html foo -// food : Lifestyle Domain Holdings, Inc. +// food : Internet Naming Company LLC // https://www.iana.org/domains/root/db/food.html food @@ -8164,7 +8152,7 @@ // https://www.iana.org/domains/root/db/fujitsu.html fujitsu -// fun : Radix FZC DMCC +// fun : Radix Technologies Inc. // https://www.iana.org/domains/root/db/fun.html fun @@ -8312,7 +8300,7 @@ // https://www.iana.org/domains/root/db/golf.html golf -// goo : NTT Resonant Inc. +// goo : NTT DOCOMO, INC. // https://www.iana.org/domains/root/db/goo.html goo @@ -8364,10 +8352,6 @@ // https://www.iana.org/domains/root/db/group.html group -// guardian : The Guardian Life Insurance Company of America -// https://www.iana.org/domains/root/db/guardian.html -guardian - // gucci : Guccio Gucci S.p.a. // https://www.iana.org/domains/root/db/gucci.html gucci @@ -8500,7 +8484,7 @@ // https://www.iana.org/domains/root/db/hospital.html hospital -// host : Radix FZC DMCC +// host : Radix Technologies Inc. // https://www.iana.org/domains/root/db/host.html host @@ -8720,7 +8704,7 @@ // https://www.iana.org/domains/root/db/jprs.html jprs -// juegos : Internet Naming Company LLC +// juegos : Dog Beach, LLC // https://www.iana.org/domains/root/db/juegos.html juegos @@ -8908,7 +8892,7 @@ // https://www.iana.org/domains/root/db/lifeinsurance.html lifeinsurance -// lifestyle : Lifestyle Domain Holdings, Inc. +// lifestyle : Internet Naming Company LLC // https://www.iana.org/domains/root/db/lifestyle.html lifestyle @@ -8948,7 +8932,7 @@ // https://www.iana.org/domains/root/db/live.html live -// living : Lifestyle Domain Holdings, Inc. +// living : Internet Naming Company LLC // https://www.iana.org/domains/root/db/living.html living @@ -9392,10 +9376,6 @@ // https://www.iana.org/domains/root/db/olayangroup.html olayangroup -// oldnavy : The Gap, Inc. -// https://www.iana.org/domains/root/db/oldnavy.html -oldnavy - // ollo : Dish DBS Corporation // https://www.iana.org/domains/root/db/ollo.html ollo @@ -9416,7 +9396,7 @@ // https://www.iana.org/domains/root/db/onl.html onl -// online : Radix FZC DMCC +// online : Radix Technologies Inc. // https://www.iana.org/domains/root/db/online.html online @@ -9620,7 +9600,7 @@ // https://www.iana.org/domains/root/db/praxi.html praxi -// press : Radix FZC DMCC +// press : Radix Technologies Inc. // https://www.iana.org/domains/root/db/press.html press @@ -9928,10 +9908,6 @@ // https://www.iana.org/domains/root/db/sbs.html sbs -// sca : SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) -// https://www.iana.org/domains/root/db/sca.html -sca - // scb : The Siam Commercial Bank Public Company Limited ("SCB") // https://www.iana.org/domains/root/db/scb.html scb @@ -10076,7 +10052,7 @@ // https://www.iana.org/domains/root/db/singles.html singles -// site : Radix FZC DMCC +// site : Radix Technologies Inc. // https://www.iana.org/domains/root/db/site.html site @@ -10156,7 +10132,7 @@ // https://www.iana.org/domains/root/db/spa.html spa -// space : Radix FZC DMCC +// space : Radix Technologies Inc. // https://www.iana.org/domains/root/db/space.html space @@ -10208,7 +10184,7 @@ // https://www.iana.org/domains/root/db/storage.html storage -// store : Radix FZC DMCC +// store : Radix Technologies Inc. // https://www.iana.org/domains/root/db/store.html store @@ -10324,7 +10300,7 @@ // https://www.iana.org/domains/root/db/team.html team -// tech : Radix FZC DMCC +// tech : Radix Technologies Inc. // https://www.iana.org/domains/root/db/tech.html tech @@ -10508,7 +10484,7 @@ // https://www.iana.org/domains/root/db/university.html university -// uno : Radix FZC DMCC +// uno : Radix Technologies Inc. // https://www.iana.org/domains/root/db/uno.html uno @@ -10524,7 +10500,7 @@ // https://www.iana.org/domains/root/db/vacations.html vacations -// vana : Lifestyle Domain Holdings, Inc. +// vana : Internet Naming Company LLC // https://www.iana.org/domains/root/db/vana.html vana @@ -10608,10 +10584,6 @@ // https://www.iana.org/domains/root/db/vodka.html vodka -// volkswagen : Volkswagen Group of America Inc. -// https://www.iana.org/domains/root/db/volkswagen.html -volkswagen - // volvo : Volvo Holding Sverige Aktiebolag // https://www.iana.org/domains/root/db/volvo.html volvo @@ -10676,10 +10648,14 @@ // https://www.iana.org/domains/root/db/weber.html weber -// website : Radix FZC DMCC +// website : Radix Technologies Inc. // https://www.iana.org/domains/root/db/website.html website +// wed +// https://www.iana.org/domains/root/db/wed.html +wed + // wedding : Registry Services, LLC // https://www.iana.org/domains/root/db/wedding.html wedding @@ -10768,10 +10744,6 @@ // https://www.iana.org/domains/root/db/xerox.html xerox -// xfinity : Comcast IP Holdings I, LLC -// https://www.iana.org/domains/root/db/xfinity.html -xfinity - // xihuan : Beijing Qihu Keji Co., Ltd. // https://www.iana.org/domains/root/db/xihuan.html xihuan @@ -11012,10 +10984,6 @@ // https://www.iana.org/domains/root/db/xn--mgba7c0bbn0a.html العليان -// xn--mgbaakc7dvf : Emirates Telecommunications Corporation (trading as Etisalat) -// https://www.iana.org/domains/root/db/xn--mgbaakc7dvf.html -اتصالات - // xn--mgbab2bd : CORE Association // https://www.iana.org/domains/root/db/xn--mgbab2bd.html بازار @@ -11152,7 +11120,7 @@ // https://www.iana.org/domains/root/db/yachts.html yachts -// yahoo : Oath Inc. +// yahoo : Yahoo Inc. // https://www.iana.org/domains/root/db/yahoo.html yahoo @@ -11217,6 +11185,12 @@ // ===BEGIN PRIVATE DOMAINS=== // (Note: these are in alphabetical order by company name) +// 12CHARS: https://12chars.com +// Submitted by Kenny Niehage +12chars.dev +12chars.it +12chars.pro + // 1GB LLC : https://www.1gb.ua/ // Submitted by 1GB LLC cc.ua @@ -11226,6 +11200,15 @@ // 611coin : https://611project.org/ 611.to +// AAA workspace : https://aaa.vodka +// Submitted by Kirill Rezraf +aaa.vodka + +// A2 Hosting +// Submitted by Tyler Hall +a2hosted.com +cpserver.com + // Aaron Marais' Gitlab pages: https://lab.aaronleem.co.za // Submitted by Aaron Marais graphox.us @@ -11242,12 +11225,18 @@ // Submitted by Ofer Kalaora activetrail.biz +// Adaptable.io : https://adaptable.io +// Submitted by Mark Terrel +adaptable.app + // Adobe : https://www.adobe.com/ // Submitted by Ian Boston and Lars Trieloff adobeaemcloud.com *.dev.adobeaemcloud.com +aem.live hlx.live adobeaemcloud.net +aem.page hlx.page hlx3.page @@ -11319,7 +11308,7 @@ // Amazon API Gateway // Submitted by AWS Security -// Reference: 4d863337-ff98-4501-a6f2-361eba8445d6 +// Reference: 9e37648f-a66c-4655-9ab1-5981f8737197 execute-api.cn-north-1.amazonaws.com.cn execute-api.cn-northwest-1.amazonaws.com.cn execute-api.af-south-1.amazonaws.com @@ -11334,6 +11323,7 @@ execute-api.ap-southeast-3.amazonaws.com execute-api.ap-southeast-4.amazonaws.com execute-api.ca-central-1.amazonaws.com +execute-api.ca-west-1.amazonaws.com execute-api.eu-central-1.amazonaws.com execute-api.eu-central-2.amazonaws.com execute-api.eu-north-1.amazonaws.com @@ -11360,23 +11350,28 @@ // Amazon Cognito // Submitted by AWS Security -// Reference: 7bee1013-f456-47df-bfe8-03c78d946d61 +// Reference: 09588633-91fe-49d8-b4e7-ec36496d11f3 auth.af-south-1.amazoncognito.com auth.ap-northeast-1.amazoncognito.com auth.ap-northeast-2.amazoncognito.com auth.ap-northeast-3.amazoncognito.com auth.ap-south-1.amazoncognito.com +auth.ap-south-2.amazoncognito.com auth.ap-southeast-1.amazoncognito.com auth.ap-southeast-2.amazoncognito.com auth.ap-southeast-3.amazoncognito.com +auth.ap-southeast-4.amazoncognito.com auth.ca-central-1.amazoncognito.com auth.eu-central-1.amazoncognito.com +auth.eu-central-2.amazoncognito.com auth.eu-north-1.amazoncognito.com auth.eu-south-1.amazoncognito.com +auth.eu-south-2.amazoncognito.com auth.eu-west-1.amazoncognito.com auth.eu-west-2.amazoncognito.com auth.eu-west-3.amazoncognito.com auth.il-central-1.amazoncognito.com +auth.me-central-1.amazoncognito.com auth.me-south-1.amazoncognito.com auth.sa-east-1.amazoncognito.com auth.us-east-1.amazoncognito.com @@ -11399,7 +11394,7 @@ // Amazon EMR // Submitted by AWS Security -// Reference: 597f3f8e-9283-4e48-8e32-7ee25a1ff6ab +// Reference: 82f43f9f-bbb8-400e-8349-854f5a62f20d emrappui-prod.cn-north-1.amazonaws.com.cn emrnotebooks-prod.cn-north-1.amazonaws.com.cn emrstudio-prod.cn-north-1.amazonaws.com.cn @@ -11424,6 +11419,9 @@ emrappui-prod.ap-south-1.amazonaws.com emrnotebooks-prod.ap-south-1.amazonaws.com emrstudio-prod.ap-south-1.amazonaws.com +emrappui-prod.ap-south-2.amazonaws.com +emrnotebooks-prod.ap-south-2.amazonaws.com +emrstudio-prod.ap-south-2.amazonaws.com emrappui-prod.ap-southeast-1.amazonaws.com emrnotebooks-prod.ap-southeast-1.amazonaws.com emrstudio-prod.ap-southeast-1.amazonaws.com @@ -11433,18 +11431,30 @@ emrappui-prod.ap-southeast-3.amazonaws.com emrnotebooks-prod.ap-southeast-3.amazonaws.com emrstudio-prod.ap-southeast-3.amazonaws.com +emrappui-prod.ap-southeast-4.amazonaws.com +emrnotebooks-prod.ap-southeast-4.amazonaws.com +emrstudio-prod.ap-southeast-4.amazonaws.com emrappui-prod.ca-central-1.amazonaws.com emrnotebooks-prod.ca-central-1.amazonaws.com emrstudio-prod.ca-central-1.amazonaws.com +emrappui-prod.ca-west-1.amazonaws.com +emrnotebooks-prod.ca-west-1.amazonaws.com +emrstudio-prod.ca-west-1.amazonaws.com emrappui-prod.eu-central-1.amazonaws.com emrnotebooks-prod.eu-central-1.amazonaws.com emrstudio-prod.eu-central-1.amazonaws.com +emrappui-prod.eu-central-2.amazonaws.com +emrnotebooks-prod.eu-central-2.amazonaws.com +emrstudio-prod.eu-central-2.amazonaws.com emrappui-prod.eu-north-1.amazonaws.com emrnotebooks-prod.eu-north-1.amazonaws.com emrstudio-prod.eu-north-1.amazonaws.com emrappui-prod.eu-south-1.amazonaws.com emrnotebooks-prod.eu-south-1.amazonaws.com emrstudio-prod.eu-south-1.amazonaws.com +emrappui-prod.eu-south-2.amazonaws.com +emrnotebooks-prod.eu-south-2.amazonaws.com +emrstudio-prod.eu-south-2.amazonaws.com emrappui-prod.eu-west-1.amazonaws.com emrnotebooks-prod.eu-west-1.amazonaws.com emrstudio-prod.eu-west-1.amazonaws.com @@ -11454,6 +11464,9 @@ emrappui-prod.eu-west-3.amazonaws.com emrnotebooks-prod.eu-west-3.amazonaws.com emrstudio-prod.eu-west-3.amazonaws.com +emrappui-prod.il-central-1.amazonaws.com +emrnotebooks-prod.il-central-1.amazonaws.com +emrstudio-prod.il-central-1.amazonaws.com emrappui-prod.me-central-1.amazonaws.com emrnotebooks-prod.me-central-1.amazonaws.com emrstudio-prod.me-central-1.amazonaws.com @@ -11484,9 +11497,11 @@ // Amazon Managed Workflows for Apache Airflow // Submitted by AWS Security -// Reference: 4ab55e6f-90c0-4a8d-b6a0-52ca5dbb1c2e +// Reference: 87f24ece-a77e-40e8-bb4a-f6b74fe9f975 *.cn-north-1.airflow.amazonaws.com.cn *.cn-northwest-1.airflow.amazonaws.com.cn +*.af-south-1.airflow.amazonaws.com +*.ap-east-1.airflow.amazonaws.com *.ap-northeast-1.airflow.amazonaws.com *.ap-northeast-2.airflow.amazonaws.com *.ap-south-1.airflow.amazonaws.com @@ -11495,17 +11510,20 @@ *.ca-central-1.airflow.amazonaws.com *.eu-central-1.airflow.amazonaws.com *.eu-north-1.airflow.amazonaws.com +*.eu-south-1.airflow.amazonaws.com *.eu-west-1.airflow.amazonaws.com *.eu-west-2.airflow.amazonaws.com *.eu-west-3.airflow.amazonaws.com +*.me-south-1.airflow.amazonaws.com *.sa-east-1.airflow.amazonaws.com *.us-east-1.airflow.amazonaws.com *.us-east-2.airflow.amazonaws.com +*.us-west-1.airflow.amazonaws.com *.us-west-2.airflow.amazonaws.com // Amazon S3 // Submitted by AWS Security -// Reference: 0e801048-08f2-4064-9cb8-e7373e0b57f4 +// Reference: cd5c8b3a-67b7-4b40-9236-c87ce81a3d10 s3.dualstack.cn-north-1.amazonaws.com.cn s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn s3-website.dualstack.cn-north-1.amazonaws.com.cn @@ -11604,6 +11622,16 @@ s3-fips.ca-central-1.amazonaws.com s3-object-lambda.ca-central-1.amazonaws.com s3-website.ca-central-1.amazonaws.com +s3.dualstack.ca-west-1.amazonaws.com +s3-accesspoint.dualstack.ca-west-1.amazonaws.com +s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com +s3-fips.dualstack.ca-west-1.amazonaws.com +s3-website.dualstack.ca-west-1.amazonaws.com +s3.ca-west-1.amazonaws.com +s3-accesspoint.ca-west-1.amazonaws.com +s3-accesspoint-fips.ca-west-1.amazonaws.com +s3-fips.ca-west-1.amazonaws.com +s3-website.ca-west-1.amazonaws.com s3.dualstack.eu-central-1.amazonaws.com s3-accesspoint.dualstack.eu-central-1.amazonaws.com s3-website.dualstack.eu-central-1.amazonaws.com @@ -11784,9 +11812,25 @@ s3-object-lambda.us-west-2.amazonaws.com s3-website.us-west-2.amazonaws.com +// Amazon SageMaker Ground Truth +// Submitted by AWS Security +// Reference: 98dbfde4-7802-48c3-8751-b60f204e0d9c +labeling.ap-northeast-1.sagemaker.aws +labeling.ap-northeast-2.sagemaker.aws +labeling.ap-south-1.sagemaker.aws +labeling.ap-southeast-1.sagemaker.aws +labeling.ap-southeast-2.sagemaker.aws +labeling.ca-central-1.sagemaker.aws +labeling.eu-central-1.sagemaker.aws +labeling.eu-west-1.sagemaker.aws +labeling.eu-west-2.sagemaker.aws +labeling.us-east-1.sagemaker.aws +labeling.us-east-2.sagemaker.aws +labeling.us-west-2.sagemaker.aws + // Amazon SageMaker Notebook Instances // Submitted by AWS Security -// Reference: fe8c9e94-5a22-486d-8750-991a3a9b13c6 +// Reference: b5ea56df-669e-43cc-9537-14aa172f5dfc notebook.af-south-1.sagemaker.aws notebook.ap-east-1.sagemaker.aws notebook.ap-northeast-1.sagemaker.aws @@ -11799,6 +11843,9 @@ notebook.ap-southeast-3.sagemaker.aws notebook.ap-southeast-4.sagemaker.aws notebook.ca-central-1.sagemaker.aws +notebook-fips.ca-central-1.sagemaker.aws +notebook.ca-west-1.sagemaker.aws +notebook-fips.ca-west-1.sagemaker.aws notebook.eu-central-1.sagemaker.aws notebook.eu-central-2.sagemaker.aws notebook.eu-north-1.sagemaker.aws @@ -11820,6 +11867,7 @@ notebook.us-gov-west-1.sagemaker.aws notebook-fips.us-gov-west-1.sagemaker.aws notebook.us-west-1.sagemaker.aws +notebook-fips.us-west-1.sagemaker.aws notebook.us-west-2.sagemaker.aws notebook-fips.us-west-2.sagemaker.aws notebook.cn-north-1.sagemaker.com.cn @@ -11827,7 +11875,7 @@ // Amazon SageMaker Studio // Submitted by AWS Security -// Reference: 057ee397-6bf8-4f20-b807-d7bc145ac980 +// Reference: 69c723d9-6e1a-4bff-a203-48eecd203183 studio.af-south-1.sagemaker.aws studio.ap-east-1.sagemaker.aws studio.ap-northeast-1.sagemaker.aws @@ -11841,6 +11889,7 @@ studio.eu-central-1.sagemaker.aws studio.eu-north-1.sagemaker.aws studio.eu-south-1.sagemaker.aws +studio.eu-south-2.sagemaker.aws studio.eu-west-1.sagemaker.aws studio.eu-west-2.sagemaker.aws studio.eu-west-3.sagemaker.aws @@ -11885,7 +11934,7 @@ // AWS Cloud9 // Submitted by: AWS Security -// Reference: 05c44955-977c-4b57-938a-f2af92733f9f +// Reference: 30717f72-4007-4f0f-8ed4-864c6f2efec9 webview-assets.aws-cloud9.af-south-1.amazonaws.com vfs.cloud9.af-south-1.amazonaws.com webview-assets.cloud9.af-south-1.amazonaws.com @@ -11931,6 +11980,8 @@ webview-assets.aws-cloud9.eu-west-3.amazonaws.com vfs.cloud9.eu-west-3.amazonaws.com webview-assets.cloud9.eu-west-3.amazonaws.com +webview-assets.aws-cloud9.il-central-1.amazonaws.com +vfs.cloud9.il-central-1.amazonaws.com webview-assets.aws-cloud9.me-south-1.amazonaws.com vfs.cloud9.me-south-1.amazonaws.com webview-assets.cloud9.me-south-1.amazonaws.com @@ -11950,6 +12001,11 @@ vfs.cloud9.us-west-2.amazonaws.com webview-assets.cloud9.us-west-2.amazonaws.com +// AWS Directory Service +// Submitted by AWS Security +// Reference: a13203e8-42dc-4045-a0d2-2ee67bed1068 +awsapps.com + // AWS Elastic Beanstalk // Submitted by AWS Security // Reference: bb5a965c-dec3-4967-aa22-e306ad064797 @@ -11993,6 +12049,11 @@ // Reference: d916759d-a08b-4241-b536-4db887383a6a awsglobalaccelerator.com +// AWS re:Post Private +// Submitted by AWS Security +// Reference: 83385945-225f-416e-9aa0-ad0632bfdcee +*.private.repost.aws + // eero // Submitted by Yue Kang // Reference: 264afe70-f62c-4c02-8ab9-b5281ed24461 @@ -12010,6 +12071,10 @@ // Submitted by Apigee Security Team apigee.io +// Apis Networks: https://apisnetworks.com +// Submitted by Matt Saladna +panel.dev + // Apphud : https://apphud.com // Submitted by Alexander Selivanov siiites.com @@ -12027,6 +12092,10 @@ // Submitted by Thomas Orozco on-aptible.com +// Aquapal : https://aquapal.net/ +// Submitted by Aki Ueno +f5.si + // ASEINet : https://www.aseinet.com/ // Submitted by Asei SEKIGUCHI user.aseinet.ne.jp @@ -12062,6 +12131,7 @@ // AVM : https://avm.de // Submitted by Andreas Weise +myfritz.link myfritz.net // AVStack Pte. Ltd. : https://avstack.io @@ -12121,10 +12191,18 @@ // Submitted by Lev Nekrasov *.beget.app +// Besties : https://besties.house +// Submitted by Hazel Cora +pages.gay + // BetaInABox // Submitted by Adrian betainabox.com +// University of Bielsko-Biala regional domain: http://dns.bielsko.pl/ +// Submitted by Marcin +bielsko.pl + // BinaryLane : http://www.binarylane.com // Submitted by Nathan O'Sullivan bnr.la @@ -12166,8 +12244,13 @@ bplaced.net square7.net +// Brave : https://brave.com +// Submitted by Andrea Brancaleoni +*.s.brave.io + // Brendly : https://brendly.rs -// Submitted by Dusan Radovanovic +// Submitted by Dusan Radovanovic +shop.brendly.hr shop.brendly.rs // BrowserSafetyMark @@ -12191,7 +12274,9 @@ // Canva Pty Ltd : https://canva.com/ // Submitted by Joel Aquilina canva-apps.cn +*.my.canvasite.cn canva-apps.com +*.my.canva.site // Carrd : https://carrd.co // Submitted by AJ @@ -12329,6 +12414,12 @@ r2.dev workers.dev +// cloudscale.ch AG : https://www.cloudscale.ch/ +// Submitted by Gaudenz Steinlin +cust.cloudscale.ch +objects.lpg.cloudscale.ch +objects.rma.cloudscale.ch + // Clovyr : https://clovyr.io // Submitted by Patrick Nielsen wnext.app @@ -12346,22 +12437,33 @@ // CDN77.com : http://www.cdn77.com // Submitted by Jan Krpes -c.cdn77.org +cdn77-storage.com +rsc.contentproxy9.cz cdn77-ssl.net r.cdn77.net -rsc.cdn77.org ssl.origin.cdn77-secure.org +c.cdn77.org +rsc.cdn77.org // Cloud DNS Ltd : http://www.cloudns.net -// Submitted by Aleksander Hristov +// Submitted by Aleksander Hristov & Boyan Peychev cloudns.asia +cloudns.be cloudns.biz -cloudns.club cloudns.cc +cloudns.ch +cloudns.cl +cloudns.club +dnsabr.com +cloudns.cx cloudns.eu cloudns.in cloudns.info +dns-cloud.net +dns-dynamic.net +cloudns.nz cloudns.org +cloudns.ph cloudns.pro cloudns.pw cloudns.us @@ -12374,6 +12476,11 @@ // Submitted by Moritz Marquardt codeberg.page +// CodeSandbox B.V. : https://codesandbox.io +// Submitted by Ives van Hoorne +csb.app +preview.csb.app + // CoDNS B.V. co.nl co.no @@ -12383,6 +12490,10 @@ webhosting.be hosting-cluster.nl +// Convex : https://convex.dev/ +// Submitted by James Cowling +convex.site + // Coordination Center for TLD RU and XN--P1AI : https://cctld.ru/en/domains/domens_ru/reserved/ // Submitted by George Georgievsky ac.ru @@ -12404,10 +12515,18 @@ knx-server.net static-access.net +// cPanel L.L.C. : https://www.cpanel.net/ +// Submitted by Dustin Scherer +*.cprapid.com + // Craynic, s.r.o. : http://www.craynic.com/ // Submitted by Ales Krajnik realm.cz +// Crisp IM SAS : https://crisp.chat/ +// Submitted by Baptiste Jamin +on.crisp.email + // Cryptonomic : https://cryptonomic.net/ // Submitted by Andrew Cady *.cryptonomic.net @@ -12428,6 +12547,13 @@ *.ocp.customer-oci.com *.ocs.customer-oci.com +// Cyclic Software : https://www.cyclic.sh +// Submitted by Kam Lasater +cyclic.app +cyclic.cloud +cyclic-app.com +cyclic.co.in + // cyon GmbH : https://www.cyon.ch/ // Submitted by Dominic Luechinger cyon.link @@ -12473,6 +12599,7 @@ // Dark, Inc. : https://darklang.com // Submitted by Paul Biggar builtwithdark.com +darklang.io // DataDetect, LLC. : https://datadetect.com // Submitted by Andrew Banchich @@ -12871,6 +12998,10 @@ // Submitted by Robin H. Johnson *.digitaloceanspaces.com +// DigitalPlat : https://www.digitalplat.org/ +// Submitted by Edward Hsing +us.kg + // dnstrace.pro : https://dnstrace.pro/ // Submitted by Chris Partridge bci.dnstrace.pro @@ -12908,6 +13039,18 @@ easypanel.app easypanel.host +// EasyWP : https://www.easywp.com +// Submitted by +*.ewp.live + +// Electromagnetic Field : https://www.emfcamp.org +// Submitted by +at.emf.camp + +// Elefunc, Inc. : https://elefunc.com +// Submitted by Cetin Sert +rt.ht + // Elementor : Elementor Ltd. // Submitted by Anton Barkan elementor.cloud @@ -13022,10 +13165,6 @@ // Submitted by Eric Jiang onfabrica.com -// Facebook, Inc. -// Submitted by Peter Ruibal -apps.fbsbx.com - // FAITID : https://faitid.org/ // Submitted by Maxim Alzoba // https://www.flexireg.net/stat_info @@ -13183,6 +13322,10 @@ onflashdrive.app fldrv.com +// FlutterFlow : https://flutterflow.io +// Submitted by Anton Emelyanov +flutterflow.app + // fly.io: https://fly.io // Submitted by Kurt Mackey fly.dev @@ -13193,13 +13336,14 @@ // Submitted by Jonathan Rudenberg flynnhosting.net -// Forgerock : https://www.forgerock.com +// Forgerock : https://www.forgerock.com // Submitted by Roderick Parr forgeblocks.com id.forgerock.io // Framer : https://www.framer.com -// Submitted by Koen Rouwhorst +// Submitted by Koen Rouwhorst +framer.ai framer.app framercanvas.com framer.media @@ -13240,6 +13384,24 @@ // Submitted by Daniel A. Maierhofer wien.funkfeuer.at +// Future Versatile Group. :https://www.fvg-on.net/ +// T.Kabu +daemon.asia +dix.asia +mydns.bz +0am.jp +0g0.jp +0j0.jp +0t0.jp +mydns.jp +pgw.jp +wjg.jp +keyword-on.net +live-on.net +server-on.net +mydns.tw +mydns.vc + // Futureweb GmbH : https://www.futureweb.at // Submitted by Andreas Schnederle-Wagner *.futurecms.at @@ -13251,6 +13413,10 @@ *.kunden.ortsinfo.at *.statics.cloud +// GCom Internet : https://www.gcom.net.au +// Submitted by Leo Julius +aliases121.com + // GDS : https://www.gov.uk/service-manual/technology/managing-domain-names // Submitted by Stephen Ford independent-commission.uk @@ -13279,9 +13445,11 @@ lab.ms cdn-edges.net -// Ghost Foundation : https://ghost.org -// Submitted by Matt Hanley -ghost.io +// Getlocalcert: https://www.getlocalcert.net +// Submitted by Robert Alexander +localcert.net +localhostcert.net +corpnet.work // GignoSystemJapan: http://gsj.bz // Submitted by GignoSystemJapan @@ -13425,6 +13593,10 @@ zombie.jp heteml.net +// GoDaddy Registry : https://registry.godaddy +// Submitted by Rohan Durrant +graphic.design + // GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/ // Submitted by Tom Whitwell cloudapps.digital @@ -13434,10 +13606,6 @@ // Submitted by Richard Baker pymnt.uk -// UKHomeOffice : https://www.gov.uk/government/organisations/home-office -// Submitted by Jon Shanks -homeoffice.gov.uk - // GlobeHosting, Inc. // Submitted by Zoltan Egresi ro.im @@ -13448,8 +13616,7 @@ // Google, Inc. // Submitted by Eduardo Vela -run.app -a.run.app +*.run.app web.app *.0emm.com appspot.com @@ -13549,6 +13716,10 @@ // Submitted by gov.nl +// GrayJay Web Solutions Inc. : https://grayjaysports.ca +// Submitted by Matt Yamkowy +grayjayleagues.com + // Group 53, LLC : https://www.group53.com // Submitted by Tyler Todd awsmppl.com @@ -13583,6 +13754,11 @@ // Submitted by Richard Zowalla pages.it.hs-heilbronn.de +// Helio Networks : https://heliohost.org +// Submitted by Ben Frede +helioho.st +heliohost.us + // Hepforge : https://www.hepforge.org // Submitted by David Grellscheid hepforge.org @@ -13596,7 +13772,6 @@ // Submitted by Oren Eini ravendb.cloud ravendb.community -ravendb.me development.run ravendb.run @@ -13604,6 +13779,12 @@ // Submitted by Krzysztof Wolski homesklep.pl +// Homebase : https://homebase.id/ +// Submitted by Jason Babo +*.kin.one +*.id.pub +*.kin.pub + // Hong Kong Productivity Council: https://www.hkpc.org/ // Submitted by SECaaS Team secaas.hk @@ -13681,7 +13862,7 @@ info.at // info.cx : http://info.cx -// Submitted by Jacob Slater +// Submitted by June Slater info.cx // Interlegis : http://www.interlegis.leg.br @@ -13730,6 +13911,14 @@ // Submitted by Matthew Hardeman ipifony.net +// is-a.dev : https://www.is-a.dev +// Submitted by William Harrison +is-a.dev + +// ir.md : https://nic.ir.md +// Submitted by Ali Soizi +ir.md + // IServ GmbH : https://iserv.de // Submitted by Mario Hoberg iservschule.de @@ -13838,6 +14027,11 @@ // Submitted by Daniel Fariña jotelulu.cloud +// JouwWeb B.V. : https://www.jouwweb.nl +// Submitted by Camilo Sperberg +jouwweb.site +webadorsite.com + // Joyent : https://www.joyent.com/ // Submitted by Brian Bennett *.triton.zone @@ -13911,6 +14105,10 @@ // Submitted by Lelux Admin lelux.site +// Libre IT Ltd : https://libre.nz +// Submitted by Tomas Maggio +runcontainers.dev + // Lifetime Hosting : https://Lifetime.Hosting/ // Submitted by Mike Fillator co.business @@ -13921,10 +14119,6 @@ co.place co.technology -// Lightmaker Property Manager, Inc. : https://app.lmpm.com/ -// Submitted by Greg Holland -app.lmpm.com - // linkyard ldt: https://www.linkyard.ch/ // Submitted by Mario Siegenthaler linkyard.cloud @@ -14057,6 +14251,11 @@ // Submitted by Ruben Schmidmeister messerli.app +// Meta Platforms, Inc. : https://meta.com/ +// Submitted by Jacob Cordero +atmeta.com +apps.fbsbx.com + // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ // Submitted by Zdeněk Šustr *.cloud.metacentrum.cz @@ -14077,10 +14276,14 @@ // Microsoft Corporation : http://microsoft.com // Submitted by Public Suffix List Admin +// Managed by Corporate Domains +// Microsoft Azure : https://home.azure *.azurecontainer.io +azure-api.net +azureedge.net +azurefd.net azurewebsites.net azure-mobile.net -cloudapp.net azurestaticapps.net 1.azurestaticapps.net 2.azurestaticapps.net @@ -14094,6 +14297,10 @@ eastus2.azurestaticapps.net westeurope.azurestaticapps.net westus2.azurestaticapps.net +cloudapp.net +trafficmanager.net +blob.core.windows.net +servicebus.windows.net // minion.systems : http://minion.systems // Submitted by Robert Böttinger @@ -14107,6 +14314,10 @@ // Submitted by Grayson Martin forte.id +// MODX Systems LLC : https://modx.com +// Submitted by Elizabeth Southwell +modx.dev + // Mozilla Corporation : https://mozilla.com // Submitted by Ben Francis mozilla-iot.org @@ -14153,6 +14364,10 @@ // Submitted by Trung Tran 4u.com +// NGO.US Registry : https://nic.ngo.us +// Submitted by Alstra Solutions Ltd. Networking Team +ngo.us + // ngrok : https://ngrok.com/ // Submitted by Alan Shreve ngrok.app @@ -14168,18 +14383,24 @@ sa.ngrok.io us.ngrok.io ngrok.pizza +ngrok.pro // Nicolaus Copernicus University in Torun - MSK TORMAN (https://www.man.torun.pl) torun.pl // Nimbus Hosting Ltd. : https://www.nimbushosting.co.uk/ -// Submitted by Nicholas Ford +// Submitted by Nicholas Ford nh-serv.co.uk +nimsite.uk // NFSN, Inc. : https://www.NearlyFreeSpeech.NET/ // Submitted by Jeff Wheelhouse nfshost.com +// NFT.Storage : https://nft.storage/ +// Submitted by Vasco Santos or +ipfs.nftstorage.link + // Noop : https://noop.app // Submitted by Nathaniel Schweinberg *.developer.app @@ -14330,6 +14551,10 @@ // Submitted by Matthew Brown nyc.mn +// O3O.Foundation : https://o3o.foundation/ +// Submitted by the prvcy.page Registry Team +prvcy.page + // Observable, Inc. : https://observablehq.com // Submitted by Mike Bostock static.observableusercontent.com @@ -14359,7 +14584,6 @@ 123minsida.se 123miweb.es 123paginaweb.pt -123sait.ru 123siteweb.fr 123webseite.at 123webseite.de @@ -14377,6 +14601,13 @@ // Submitted by Eddie Jones nid.io +// Open Domains : https://open-domains.net +// Submitted by William Harrison +is-cool.dev +is-not-a.dev +localplayer.dev +is-local.org + // Open Social : https://www.getopensocial.com/ // Submitted by Alexander Varwijk opensocial.site @@ -14397,6 +14628,11 @@ // Submitted by Alexandre Linte tech.orange +// OsSav Technology Ltd. : https://ossav.com/ +// TLD Nic: http://nic.can.re - TLD Whois Server: whois.can.re +// Submitted by OsSav Technology Ltd. +can.re + // Oursky Limited : https://authgear.com/, https://skygear.io/ // Submitted by Authgear Team , Skygear Developer authgear-staging.com @@ -14447,10 +14683,11 @@ // pcarrier.ca Software Inc: https://pcarrier.ca/ // Submitted by Pierre Carrier -bar0.net -bar1.net -bar2.net -rdv.to +*.xmit.co +xmit.dev +srv.us +gh.srv.us +gl.srv.us // .pl domains (grandfathered) art.pl @@ -14483,7 +14720,8 @@ // Platform.sh : https://platform.sh // Submitted by Nikola Kotur -bc.platform.sh +*.upsun.app +upsunapp.com ent.platform.sh eu.platform.sh us.platform.sh @@ -14502,6 +14740,10 @@ plesk.page pleskns.com +// Pley AB : https://www.pley.com/ +// Submitted by Henning Pohl +pley.games + // Port53 : https://port53.io/ // Submitted by Maximilian Schieder dyn53.io @@ -14533,10 +14775,6 @@ // Submitted by registry priv.at -// privacytools.io : https://www.privacytools.io/ -// Submitted by Jonah Aragon -prvcy.page - // Protocol Labs : https://protocol.ai/ // Submitted by Michael Burns *.dweb.link @@ -14578,6 +14816,8 @@ // Rad Web Hosting: https://radwebhosting.com // Submitted by Scott Claeys cloudsite.builders +myradweb.net +servername.us // Redgate Software: https://red-gate.com // Submitted by Andrew Farries @@ -14601,9 +14841,12 @@ *.sys.qcx.io // QNAP System Inc : https://www.qnap.com -// Submitted by Nick Chang -dev-myqnapcloud.com +// Submitted by Nick Chang +myqnapcloud.cn alpha-myqnapcloud.com +dev-myqnapcloud.com +mycloudnas.com +mynascloud.com myqnapcloud.com // Quip : https://quip.com @@ -14644,11 +14887,40 @@ onrender.com // Repl.it : https://repl.it -// Submitted by Lincoln Bergeson +// Submitted by Lincoln Bergeson +replit.app +id.replit.app firewalledreplit.co id.firewalledreplit.co repl.co id.repl.co +replit.dev +archer.replit.dev +bones.replit.dev +canary.replit.dev +global.replit.dev +hacker.replit.dev +id.replit.dev +janeway.replit.dev +kim.replit.dev +kira.replit.dev +kirk.replit.dev +odo.replit.dev +paris.replit.dev +picard.replit.dev +pike.replit.dev +prerelease.replit.dev +reed.replit.dev +riker.replit.dev +sisko.replit.dev +spock.replit.dev +staging.replit.dev +sulu.replit.dev +tarpit.replit.dev +teams.replit.dev +tucker.replit.dev +wesley.replit.dev +worf.replit.dev repl.run // Resin.io : https://resin.io @@ -14745,10 +15017,11 @@ sakura.tv // Salesforce.com, Inc. https://salesforce.com/ -// Submitted by Michael Biven +// Submitted by Michael Biven and Aaron Romeo *.builder.code.com *.dev-builder.code.com *.stg-builder.code.com +*.001.test.code-builder-stg.platform.salesforce.com // Sandstorm Development Group, Inc. : https://sandcats.io/ // Submitted by Asheesh Laroia @@ -14764,6 +15037,7 @@ fr-par-1.baremetal.scw.cloud fr-par-2.baremetal.scw.cloud nl-ams-1.baremetal.scw.cloud +cockpit.fr-par.scw.cloud fnc.fr-par.scw.cloud functions.fnc.fr-par.scw.cloud k8s.fr-par.scw.cloud @@ -14774,11 +15048,13 @@ priv.instances.scw.cloud pub.instances.scw.cloud k8s.scw.cloud +cockpit.nl-ams.scw.cloud k8s.nl-ams.scw.cloud nodes.k8s.nl-ams.scw.cloud s3.nl-ams.scw.cloud s3-website.nl-ams.scw.cloud whm.nl-ams.scw.cloud +cockpit.pl-waw.scw.cloud k8s.pl-waw.scw.cloud nodes.k8s.pl-waw.scw.cloud s3.pl-waw.scw.cloud @@ -14800,6 +15076,10 @@ // Submitted by Shante Adam scrysec.com +// Scrypted : https://scrypted.app +// Submitted by Koushik Dutta +client.scrypted.io + // Securepoint GmbH : https://www.securepoint.de // Submitted by Erik Anders firewall-gateway.com @@ -14839,6 +15119,10 @@ co.ua pp.ua +// Sheezy.Art : https://sheezy.art +// Submitted by Nyoom +sheezy.games + // Shift Crypto AG : https://shiftcrypto.ch // Submitted by alex shiftcrypto.dev @@ -14887,7 +15171,7 @@ beta.bounty-full.com // Smallregistry by Promopixel SARL: https://www.smallregistry.net -// Former AFNIC's SLDs +// Former AFNIC's SLDs // Submitted by Jérôme Lipowicz aeroport.fr avocat.fr @@ -14909,9 +15193,9 @@ vp4.me // Snowflake Inc : https://www.snowflake.com/ -// Submitted by Faith Olapade -snowflake.app -privatelink.snowflake.app +// Submitted by Sam Haar +*.snowflake.app +*.privatelink.snowflake.app streamlit.app streamlitapp.com @@ -14923,10 +15207,24 @@ // Submitted by Drew DeVault srht.site +// StackBlitz : https://stackblitz.com +// Submitted by Dominic Elm +w-corp-staticblitz.com +w-credentialless-staticblitz.com +w-staticblitz.com + // Stackhero : https://www.stackhero.io // Submitted by Adrien Gillon stackhero-network.com +// STACKIT : https://www.stackit.de/en/ +// Submitted by STACKIT-DNS Team (Simon Stier) +runs.onstackit.cloud +stackit.gg +stackit.rocks +stackit.run +stackit.zone + // Staclar : https://staclar.com // Submitted by Q Misell musician.io @@ -14993,6 +15291,19 @@ // Submitted by Jacob Lee api.stdlib.com +// stereosense GmbH : https://www.involve.me +// Submitted by Florian Burmann +feedback.ac +forms.ac +assessments.cx +calculators.cx +funnels.cx +paynow.cx +quizzes.cx +researched.cx +tests.cx +surveys.so + // Storipress : https://storipress.com // Submitted by Benno Liu storipress.app @@ -15001,6 +15312,12 @@ // Submitted by Philip Hutchins storj.farm +// Streak : https://streak.com +// Submitted by Blake Kadatz +streak-link.com +streaklinks.com +streakusercontent.com + // Studenten Net Twente : http://www.snt.utwente.nl/ // Submitted by Silke Hofstra utwente.io @@ -15063,6 +15380,7 @@ // Submitted by David Anderson beta.tailscale.net ts.net +*.c.ts.net // TASK geographical domains (www.task.gda.pl/uslugi/dns) gda.pl @@ -15196,6 +15514,10 @@ // Submitted by ITComdomains it.com +// Unison Computing, PBC : https://unison.cloud +// Submitted by Simon Højberg +unison-services.cloud + // UNIVERSAL DOMAIN REGISTRY : https://www.udr.org.yt/ // see also: whois -h whois.udr.org.yt help // Submitted by Atanunu Igbunuroghene @@ -15245,48 +15567,6 @@ // Submitted by Nathan van Bakel voorloper.cloud -// Voxel.sh DNS : https://voxel.sh/dns/ -// Submitted by Mia Rehlinger -neko.am -nyaa.am -be.ax -cat.ax -es.ax -eu.ax -gg.ax -mc.ax -us.ax -xy.ax -nl.ci -xx.gl -app.gp -blog.gt -de.gt -to.gt -be.gy -cc.hn -blog.kg -io.kg -jp.kg -tv.kg -uk.kg -us.kg -de.ls -at.md -de.md -jp.md -to.md -indie.porn -vxl.sh -ch.tc -me.tc -we.tc -nyan.to -at.vg -blog.vu -dev.vu -me.vu - // V.UA Domain Administrator : https://domain.v.ua/ // Submitted by Serhii Rostilo v.ua @@ -15299,6 +15579,11 @@ // Submitted by Masayuki Note wafflecell.com +// Webflow, Inc. : https://www.webflow.com +// Submitted by Webflow Security Team +webflow.io +webflowtest.io + // WebHare bv: https://www.webhare.com/ // Submitted by Arnold Hendriks *.webhare.dev @@ -15310,6 +15595,10 @@ bookonline.app hotelwithflight.com +// WebWaddle Ltd: https://webwaddle.com/ +// Submitted by Merlin Glander +*.wadl.top + // WeDeploy by Liferay, Inc. : https://www.wedeploy.com // Submitted by Henrique Vicente wedeploy.io @@ -15418,6 +15707,10 @@ za.net za.org +// ZAP-Hosting GmbH & Co. KG : https://zap-hosting.com +// Submitted by Julian Alker +zap.cloud + // Zine EOOD : https://zine.bg/ // Submitted by Martin Angelov bss.design diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/VERSION openjdk-17-17.0.14+7/make/data/tzdata/VERSION --- openjdk-17-17.0.13+11/make/data/tzdata/VERSION 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/VERSION 2025-01-04 20:25:18.000000000 +0000 @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2024a +tzdata2024b diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/africa openjdk-17-17.0.14+7/make/data/tzdata/africa --- openjdk-17-17.0.13+11/make/data/tzdata/africa 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/africa 2025-01-04 20:25:18.000000000 +0000 @@ -126,17 +126,16 @@ # Cape Verde / Cabo Verde # -# From Paul Eggert (2018-02-16): -# Shanks gives 1907 for the transition to +02. -# For now, ignore that and follow the 1911-05-26 Portuguese decree -# (see Europe/Lisbon). +# From Tim Parenti (2024-07-01), per Paul Eggert (2018-02-16): +# For timestamps before independence, see commentary for Europe/Lisbon. +# Shanks gives 1907 instead for the transition to -02. # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia - -2:00 - -02 1942 Sep - -2:00 1:00 -01 1945 Oct 15 - -2:00 - -02 1975 Nov 25 2:00 - -1:00 - -01 + -2:00 - %z 1942 Sep + -2:00 1:00 %z 1945 Oct 15 + -2:00 - %z 1975 Nov 25 2:00 + -1:00 - %z # Chad # Zone NAME STDOFF RULES FORMAT [UNTIL] @@ -368,14 +367,12 @@ # Guinea-Bissau # -# From Paul Eggert (2018-02-16): -# Shanks gives 1911-05-26 for the transition to WAT, -# evidently confusing the date of the Portuguese decree -# (see Europe/Lisbon) with the date that it took effect. +# From Tim Parenti (2024-07-01), per Paul Eggert (2018-02-16): +# For timestamps before independence, see commentary for Europe/Lisbon. # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u - -1:00 - -01 1975 + -1:00 - %z 1975 0:00 - GMT # Comoros @@ -440,10 +437,10 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Nairobi 2:27:16 - LMT 1908 May - 2:30 - +0230 1928 Jun 30 24:00 + 2:30 - %z 1928 Jun 30 24:00 3:00 - EAT 1930 Jan 4 24:00 - 2:30 - +0230 1936 Dec 31 24:00 - 2:45 - +0245 1942 Jul 31 24:00 + 2:30 - %z 1936 Dec 31 24:00 + 2:45 - %z 1942 Jul 31 24:00 3:00 - EAT # Liberia @@ -614,7 +611,7 @@ Rule Mauritius 2009 only - Mar lastSun 2:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis - 4:00 Mauritius +04/+05 + 4:00 Mauritius %z # Agalega Is, Rodriguez # no information; probably like Indian/Mauritius @@ -1094,10 +1091,10 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 - 0:00 Morocco +00/+01 1984 Mar 16 - 1:00 - +01 1986 - 0:00 Morocco +00/+01 2018 Oct 28 3:00 - 1:00 Morocco +01/+00 + 0:00 Morocco %z 1984 Mar 16 + 1:00 - %z 1986 + 0:00 Morocco %z 2018 Oct 28 3:00 + 1:00 Morocco %z # Western Sahara # @@ -1111,9 +1108,9 @@ # since most of it was then controlled by Morocco. Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún - -1:00 - -01 1976 Apr 14 - 0:00 Morocco +00/+01 2018 Oct 28 3:00 - 1:00 Morocco +01/+00 + -1:00 - %z 1976 Apr 14 + 0:00 Morocco %z 2018 Oct 28 3:00 + 1:00 Morocco %z # Botswana # Burundi @@ -1124,13 +1121,27 @@ # Zambia # Zimbabwe # -# Shanks gives 1903-03-01 for the transition to CAT. -# Perhaps the 1911-05-26 Portuguese decree -# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf -# merely made it official? +# From Tim Parenti (2024-07-01): +# For timestamps before Mozambique's independence, see commentary for +# Europe/Lisbon. +# +# From Paul Eggert (2024-05-24): +# The London Gazette, 1903-04-03, page 2245, says that +# as of 1903-03-03 a time ball at the port of Lourenço Marques +# (as Maputo was then called) was dropped daily at 13:00:00 LMT, +# corresponding to 22:49:41.7 GMT, so local time was +02:10:18.3. +# Conversely, the newspaper South Africa, 1909-02-09, page 321, +# says the port had just installed an apparatus that communicated +# "from the controlling clock in the new Observatory at Reuben Point ... +# exact mean South African time, i.e., 30 deg., or 2 hours East of Greenwich". +# Although Shanks gives 1903-03-01 for the transition to CAT, +# evidently the port transitioned to CAT after 1903-03-03 but before +# the Portuguese legal transition of 1912-01-01 (see Europe/Lisbon commentary). +# For lack of better info, list 1909 as the transition date. # # Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone Africa/Maputo 2:10:20 - LMT 1903 Mar + #STDOFF 2:10:18.3 +Zone Africa/Maputo 2:10:18 - LMT 1909 2:00 - CAT # Namibia @@ -1195,7 +1206,7 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 - 1:30 - +0130 1903 Mar + 1:30 - %z 1903 Mar 2:00 - SAST 1942 Sep 20 2:00 2:00 1:00 SAST 1943 Mar 21 2:00 2:00 - SAST 1990 Mar 21 # independence @@ -1283,7 +1294,7 @@ Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1 0:00 - GMT 1908 Jul 1 0:13:35 - LMT 1914 Jan 1 - 0:30 - +0030 1919 Sep 1 + 0:30 - %z 1919 Sep 1 1:00 - WAT # São Tomé and Príncipe diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/antarctica openjdk-17-17.0.14+7/make/data/tzdata/antarctica --- openjdk-17-17.0.13+11/make/data/tzdata/antarctica 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/antarctica 2025-01-04 20:25:18.000000000 +0000 @@ -110,34 +110,34 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Casey 0 - -00 1969 - 8:00 - +08 2009 Oct 18 2:00 - 11:00 - +11 2010 Mar 5 2:00 - 8:00 - +08 2011 Oct 28 2:00 - 11:00 - +11 2012 Feb 21 17:00u - 8:00 - +08 2016 Oct 22 - 11:00 - +11 2018 Mar 11 4:00 - 8:00 - +08 2018 Oct 7 4:00 - 11:00 - +11 2019 Mar 17 3:00 - 8:00 - +08 2019 Oct 4 3:00 - 11:00 - +11 2020 Mar 8 3:00 - 8:00 - +08 2020 Oct 4 0:01 - 11:00 - +11 2021 Mar 14 0:00 - 8:00 - +08 2021 Oct 3 0:01 - 11:00 - +11 2022 Mar 13 0:00 - 8:00 - +08 2022 Oct 2 0:01 - 11:00 - +11 2023 Mar 9 3:00 - 8:00 - +08 + 8:00 - %z 2009 Oct 18 2:00 + 11:00 - %z 2010 Mar 5 2:00 + 8:00 - %z 2011 Oct 28 2:00 + 11:00 - %z 2012 Feb 21 17:00u + 8:00 - %z 2016 Oct 22 + 11:00 - %z 2018 Mar 11 4:00 + 8:00 - %z 2018 Oct 7 4:00 + 11:00 - %z 2019 Mar 17 3:00 + 8:00 - %z 2019 Oct 4 3:00 + 11:00 - %z 2020 Mar 8 3:00 + 8:00 - %z 2020 Oct 4 0:01 + 11:00 - %z 2021 Mar 14 0:00 + 8:00 - %z 2021 Oct 3 0:01 + 11:00 - %z 2022 Mar 13 0:00 + 8:00 - %z 2022 Oct 2 0:01 + 11:00 - %z 2023 Mar 9 3:00 + 8:00 - %z Zone Antarctica/Davis 0 - -00 1957 Jan 13 - 7:00 - +07 1964 Nov + 7:00 - %z 1964 Nov 0 - -00 1969 Feb - 7:00 - +07 2009 Oct 18 2:00 - 5:00 - +05 2010 Mar 10 20:00u - 7:00 - +07 2011 Oct 28 2:00 - 5:00 - +05 2012 Feb 21 20:00u - 7:00 - +07 + 7:00 - %z 2009 Oct 18 2:00 + 5:00 - %z 2010 Mar 10 20:00u + 7:00 - %z 2011 Oct 28 2:00 + 5:00 - %z 2012 Feb 21 20:00u + 7:00 - %z Zone Antarctica/Mawson 0 - -00 1954 Feb 13 - 6:00 - +06 2009 Oct 18 2:00 - 5:00 - +05 + 6:00 - %z 2009 Oct 18 2:00 + 5:00 - %z # References: # Casey Weather (1998-02-26) # http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html @@ -313,10 +313,10 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Vostok 0 - -00 1957 Dec 16 - 7:00 - +07 1994 Feb + 7:00 - %z 1994 Feb 0 - -00 1994 Nov - 7:00 - +07 2023 Dec 18 2:00 - 5:00 - +05 + 7:00 - %z 2023 Dec 18 2:00 + 5:00 - %z # S Africa - year-round bases # Marion Island, -4653+03752 @@ -349,7 +349,7 @@ # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Rothera 0 - -00 1976 Dec 1 - -3:00 - -03 + -3:00 - %z # Uruguay - year round base # Artigas, King George Island, -621104-0585107 diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/asia openjdk-17-17.0.14+7/make/data/tzdata/asia --- openjdk-17-17.0.13+11/make/data/tzdata/asia 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/asia 2025-01-04 20:25:18.000000000 +0000 @@ -106,8 +106,8 @@ # Afghanistan # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kabul 4:36:48 - LMT 1890 - 4:00 - +04 1945 - 4:30 - +0430 + 4:00 - %z 1945 + 4:30 - %z # Armenia # From Paul Eggert (2006-03-22): @@ -139,12 +139,12 @@ Rule Armenia 2011 only - Oct lastSun 2:00s 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 - 3:00 - +03 1957 Mar - 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s - 3:00 RussiaAsia +03/+04 1995 Sep 24 2:00s - 4:00 - +04 1997 - 4:00 RussiaAsia +04/+05 2011 - 4:00 Armenia +04/+05 + 3:00 - %z 1957 Mar + 4:00 RussiaAsia %z 1991 Mar 31 2:00s + 3:00 RussiaAsia %z 1995 Sep 24 2:00s + 4:00 - %z 1997 + 4:00 RussiaAsia %z 2011 + 4:00 Armenia %z # Azerbaijan @@ -165,12 +165,12 @@ Rule Azer 1997 2015 - Oct lastSun 5:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Baku 3:19:24 - LMT 1924 May 2 - 3:00 - +03 1957 Mar - 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s - 3:00 RussiaAsia +03/+04 1992 Sep lastSun 2:00s - 4:00 - +04 1996 - 4:00 EUAsia +04/+05 1997 - 4:00 Azer +04/+05 + 3:00 - %z 1957 Mar + 4:00 RussiaAsia %z 1991 Mar 31 2:00s + 3:00 RussiaAsia %z 1992 Sep lastSun 2:00s + 4:00 - %z 1996 + 4:00 EUAsia %z 1997 + 4:00 Azer %z # Bangladesh # From Alexander Krivenyshev (2009-05-13): @@ -251,17 +251,17 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dhaka 6:01:40 - LMT 1890 5:53:20 - HMT 1941 Oct # Howrah Mean Time? - 6:30 - +0630 1942 May 15 - 5:30 - +0530 1942 Sep - 6:30 - +0630 1951 Sep 30 - 6:00 - +06 2009 - 6:00 Dhaka +06/+07 + 6:30 - %z 1942 May 15 + 5:30 - %z 1942 Sep + 6:30 - %z 1951 Sep 30 + 6:00 - %z 2009 + 6:00 Dhaka %z # Bhutan # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Thimphu 5:58:36 - LMT 1947 Aug 15 # or Thimbu - 5:30 - +0530 1987 Oct - 6:00 - +06 + 5:30 - %z 1987 Oct + 6:00 - %z # British Indian Ocean Territory # Whitman and the 1995 CIA time zone map say 5:00, but the @@ -271,8 +271,8 @@ # then contained the Chagos Archipelago). # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Chagos 4:49:40 - LMT 1907 - 5:00 - +05 1996 - 6:00 - +06 + 5:00 - %z 1996 + 6:00 - %z # Cocos (Keeling) Islands # Myanmar (Burma) @@ -288,9 +288,9 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon 6:24:47 - RMT 1920 # Rangoon local time - 6:30 - +0630 1942 May - 9:00 - +09 1945 May 3 - 6:30 - +0630 + 6:30 - %z 1942 May + 9:00 - %z 1945 May 3 + 6:30 - %z # China @@ -679,7 +679,7 @@ # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) Zone Asia/Urumqi 5:50:20 - LMT 1928 - 6:00 - +06 + 6:00 - %z # Hong Kong @@ -1137,7 +1137,7 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Macau 7:34:10 - LMT 1904 Oct 30 8:00 - CST 1941 Dec 21 23:00 - 9:00 Macau +09/+10 1945 Sep 30 24:00 + 9:00 Macau %z 1945 Sep 30 24:00 8:00 Macau C%sT @@ -1180,7 +1180,7 @@ Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14 2:00 Cyprus EE%sT 1998 Sep 2:00 EUAsia EE%sT 2016 Sep 8 - 3:00 - +03 2017 Oct 29 1:00u + 3:00 - %z 2017 Oct 29 1:00u 2:00 EUAsia EE%sT # Georgia @@ -1221,18 +1221,25 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tbilisi 2:59:11 - LMT 1880 2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time - 3:00 - +03 1957 Mar - 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s - 3:00 RussiaAsia +03/+04 1992 - 3:00 E-EurAsia +03/+04 1994 Sep lastSun - 4:00 E-EurAsia +04/+05 1996 Oct lastSun - 4:00 1:00 +05 1997 Mar lastSun - 4:00 E-EurAsia +04/+05 2004 Jun 27 - 3:00 RussiaAsia +03/+04 2005 Mar lastSun 2:00 - 4:00 - +04 + 3:00 - %z 1957 Mar + 4:00 RussiaAsia %z 1991 Mar 31 2:00s + 3:00 RussiaAsia %z 1992 + 3:00 E-EurAsia %z 1994 Sep lastSun + 4:00 E-EurAsia %z 1996 Oct lastSun + 4:00 1:00 %z 1997 Mar lastSun + 4:00 E-EurAsia %z 2004 Jun 27 + 3:00 RussiaAsia %z 2005 Mar lastSun 2:00 + 4:00 - %z # East Timor +# From Tim Parenti (2024-07-01): +# The 1912-01-01 transition occurred at 00:00 new time, per the 1911-05-24 +# Portuguese decree (see Europe/Lisbon). A provision in article 5(c) of the +# decree prescribed that Timor "will keep counting time in harmony with +# neighboring foreign colonies, [for] as long as they do not adopt the time +# that belongs to them in [the Washington Convention] system." + # See Indonesia for the 1945 transition. # From João Carrascalão, brother of the former governor of East Timor, in @@ -1256,11 +1263,11 @@ # midnight on Saturday, September 16. # Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone Asia/Dili 8:22:20 - LMT 1912 Jan 1 - 8:00 - +08 1942 Feb 21 23:00 - 9:00 - +09 1976 May 3 - 8:00 - +08 2000 Sep 17 0:00 - 9:00 - +09 +Zone Asia/Dili 8:22:20 - LMT 1911 Dec 31 16:00u + 8:00 - %z 1942 Feb 21 23:00 + 9:00 - %z 1976 May 3 + 8:00 - %z 2000 Sep 17 0:00 + 9:00 - %z # India @@ -1326,9 +1333,9 @@ 5:53:20 - HMT 1870 # Howrah Mean Time? 5:21:10 - MMT 1906 Jan 1 # Madras local time 5:30 - IST 1941 Oct - 5:30 1:00 +0630 1942 May 15 + 5:30 1:00 %z 1942 May 15 5:30 - IST 1942 Sep - 5:30 1:00 +0630 1945 Oct 15 + 5:30 1:00 %z 1945 Oct 15 5:30 - IST # Since 1970 the following are like Asia/Kolkata: # Andaman Is @@ -1380,33 +1387,33 @@ # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13, # but this must be a typo. 7:07:12 - BMT 1923 Dec 31 16:40u # Batavia - 7:20 - +0720 1932 Nov - 7:30 - +0730 1942 Mar 23 - 9:00 - +09 1945 Sep 23 - 7:30 - +0730 1948 May - 8:00 - +08 1950 May - 7:30 - +0730 1964 + 7:20 - %z 1932 Nov + 7:30 - %z 1942 Mar 23 + 9:00 - %z 1945 Sep 23 + 7:30 - %z 1948 May + 8:00 - %z 1950 May + 7:30 - %z 1964 7:00 - WIB # west and central Borneo Zone Asia/Pontianak 7:17:20 - LMT 1908 May 7:17:20 - PMT 1932 Nov # Pontianak MT - 7:30 - +0730 1942 Jan 29 - 9:00 - +09 1945 Sep 23 - 7:30 - +0730 1948 May - 8:00 - +08 1950 May - 7:30 - +0730 1964 + 7:30 - %z 1942 Jan 29 + 9:00 - %z 1945 Sep 23 + 7:30 - %z 1948 May + 8:00 - %z 1950 May + 7:30 - %z 1964 8:00 - WITA 1988 Jan 1 7:00 - WIB # Sulawesi, Lesser Sundas, east and south Borneo Zone Asia/Makassar 7:57:36 - LMT 1920 7:57:36 - MMT 1932 Nov # Macassar MT - 8:00 - +08 1942 Feb 9 - 9:00 - +09 1945 Sep 23 + 8:00 - %z 1942 Feb 9 + 9:00 - %z 1945 Sep 23 8:00 - WITA # Maluku Islands, West Papua, Papua Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov - 9:00 - +09 1944 Sep 1 - 9:30 - +0930 1964 + 9:00 - %z 1944 Sep 1 + 9:30 - %z 1964 9:00 - WIT # Iran @@ -1642,9 +1649,9 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tehran 3:25:44 - LMT 1916 3:25:44 - TMT 1935 Jun 13 # Tehran Mean Time - 3:30 Iran +0330/+0430 1977 Oct 20 24:00 - 4:00 Iran +04/+05 1979 - 3:30 Iran +0330/+0430 + 3:30 Iran %z 1977 Oct 20 24:00 + 4:00 Iran %z 1979 + 3:30 Iran %z # Iraq @@ -1687,8 +1694,8 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Baghdad 2:57:40 - LMT 1890 2:57:36 - BMT 1918 # Baghdad Mean Time? - 3:00 - +03 1982 May - 3:00 Iraq +03/+04 + 3:00 - %z 1982 May + 3:00 Iraq %z ############################################################################### @@ -2285,7 +2292,7 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Amman 2:23:44 - LMT 1931 2:00 Jordan EE%sT 2022 Oct 28 0:00s - 3:00 - +03 + 3:00 - %z # Kazakhstan @@ -2496,88 +2503,88 @@ # Almaty (formerly Alma-Ata), representing most locations in Kazakhstan # This includes Abai/Abay (ISO 3166-2 code KZ-10), Aqmola/Akmola (KZ-11), # Almaty (KZ-19), Almaty city (KZ-75), Astana city (KZ-71), -# East Kazkhstan (KZ-63), Jambyl/Zhambyl (KZ-31), Jetisu/Zhetysu (KZ-33), +# East Kazakhstan (KZ-63), Jambyl/Zhambyl (KZ-31), Jetisu/Zhetysu (KZ-33), # Karaganda (KZ-35), North Kazakhstan (KZ-59), Pavlodar (KZ-55), -# Shyumkent city (KZ-79), Turkistan (KZ-61), and Ulytau (KZ-62). +# Shymkent city (KZ-79), Turkistan (KZ-61), and Ulytau (KZ-62). Zone Asia/Almaty 5:07:48 - LMT 1924 May 2 # or Alma-Ata - 5:00 - +05 1930 Jun 21 - 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s - 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s - 6:00 RussiaAsia +06/+07 2004 Oct 31 2:00s - 6:00 - +06 2024 Mar 1 0:00 - 5:00 - +05 + 5:00 - %z 1930 Jun 21 + 6:00 RussiaAsia %z 1991 Mar 31 2:00s + 5:00 RussiaAsia %z 1992 Jan 19 2:00s + 6:00 RussiaAsia %z 2004 Oct 31 2:00s + 6:00 - %z 2024 Mar 1 0:00 + 5:00 - %z # Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-43) Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 - 4:00 - +04 1930 Jun 21 - 5:00 - +05 1981 Apr 1 - 5:00 1:00 +06 1981 Oct 1 - 6:00 - +06 1982 Apr 1 - 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s - 4:00 RussiaAsia +04/+05 1991 Sep 29 2:00s - 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s - 6:00 RussiaAsia +06/+07 1992 Mar 29 2:00s - 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s - 6:00 - +06 2018 Dec 21 0:00 - 5:00 - +05 + 4:00 - %z 1930 Jun 21 + 5:00 - %z 1981 Apr 1 + 5:00 1:00 %z 1981 Oct 1 + 6:00 - %z 1982 Apr 1 + 5:00 RussiaAsia %z 1991 Mar 31 2:00s + 4:00 RussiaAsia %z 1991 Sep 29 2:00s + 5:00 RussiaAsia %z 1992 Jan 19 2:00s + 6:00 RussiaAsia %z 1992 Mar 29 2:00s + 5:00 RussiaAsia %z 2004 Oct 31 2:00s + 6:00 - %z 2018 Dec 21 0:00 + 5:00 - %z # Qostanay (aka Kostanay, Kustanay) (KZ-39) # The 1991/2 rules are unclear partly because of the 1997 Turgai # reorganization. Zone Asia/Qostanay 4:14:28 - LMT 1924 May 2 - 4:00 - +04 1930 Jun 21 - 5:00 - +05 1981 Apr 1 - 5:00 1:00 +06 1981 Oct 1 - 6:00 - +06 1982 Apr 1 - 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s - 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s - 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s - 6:00 - +06 2024 Mar 1 0:00 - 5:00 - +05 + 4:00 - %z 1930 Jun 21 + 5:00 - %z 1981 Apr 1 + 5:00 1:00 %z 1981 Oct 1 + 6:00 - %z 1982 Apr 1 + 5:00 RussiaAsia %z 1991 Mar 31 2:00s + 4:00 RussiaAsia %z 1992 Jan 19 2:00s + 5:00 RussiaAsia %z 2004 Oct 31 2:00s + 6:00 - %z 2024 Mar 1 0:00 + 5:00 - %z # Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-15) Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2 - 4:00 - +04 1930 Jun 21 - 5:00 - +05 1981 Apr 1 - 5:00 1:00 +06 1981 Oct 1 - 6:00 - +06 1982 Apr 1 - 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s - 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s - 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s - 5:00 - +05 + 4:00 - %z 1930 Jun 21 + 5:00 - %z 1981 Apr 1 + 5:00 1:00 %z 1981 Oct 1 + 6:00 - %z 1982 Apr 1 + 5:00 RussiaAsia %z 1991 Mar 31 2:00s + 4:00 RussiaAsia %z 1992 Jan 19 2:00s + 5:00 RussiaAsia %z 2004 Oct 31 2:00s + 5:00 - %z # Mangghystaū (KZ-47) # Aqtau was not founded until 1963, but it represents an inhabited region, # so include timestamps before 1963. Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 - 4:00 - +04 1930 Jun 21 - 5:00 - +05 1981 Oct 1 - 6:00 - +06 1982 Apr 1 - 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s - 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s - 5:00 RussiaAsia +05/+06 1994 Sep 25 2:00s - 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s - 5:00 - +05 + 4:00 - %z 1930 Jun 21 + 5:00 - %z 1981 Oct 1 + 6:00 - %z 1982 Apr 1 + 5:00 RussiaAsia %z 1991 Mar 31 2:00s + 4:00 RussiaAsia %z 1992 Jan 19 2:00s + 5:00 RussiaAsia %z 1994 Sep 25 2:00s + 4:00 RussiaAsia %z 2004 Oct 31 2:00s + 5:00 - %z # Atyraū (KZ-23) is like Mangghystaū except it switched from # +04/+05 to +05/+06 in spring 1999, not fall 1994. Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2 - 3:00 - +03 1930 Jun 21 - 5:00 - +05 1981 Oct 1 - 6:00 - +06 1982 Apr 1 - 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s - 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s - 5:00 RussiaAsia +05/+06 1999 Mar 28 2:00s - 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s - 5:00 - +05 + 3:00 - %z 1930 Jun 21 + 5:00 - %z 1981 Oct 1 + 6:00 - %z 1982 Apr 1 + 5:00 RussiaAsia %z 1991 Mar 31 2:00s + 4:00 RussiaAsia %z 1992 Jan 19 2:00s + 5:00 RussiaAsia %z 1999 Mar 28 2:00s + 4:00 RussiaAsia %z 2004 Oct 31 2:00s + 5:00 - %z # West Kazakhstan (KZ-27) # From Paul Eggert (2016-03-18): # The 1989 transition is from USSR act No. 227 (1989-03-14). Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk - 3:00 - +03 1930 Jun 21 - 5:00 - +05 1981 Apr 1 - 5:00 1:00 +06 1981 Oct 1 - 6:00 - +06 1982 Apr 1 - 5:00 RussiaAsia +05/+06 1989 Mar 26 2:00s - 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s - 5:00 RussiaAsia +05/+06 1992 Mar 29 2:00s - 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s - 5:00 - +05 + 3:00 - %z 1930 Jun 21 + 5:00 - %z 1981 Apr 1 + 5:00 1:00 %z 1981 Oct 1 + 6:00 - %z 1982 Apr 1 + 5:00 RussiaAsia %z 1989 Mar 26 2:00s + 4:00 RussiaAsia %z 1992 Jan 19 2:00s + 5:00 RussiaAsia %z 1992 Mar 29 2:00s + 4:00 RussiaAsia %z 2004 Oct 31 2:00s + 5:00 - %z # Kyrgyzstan (Kirgizstan) # Transitions through 1991 are from Shanks & Pottenger. @@ -2598,11 +2605,11 @@ Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 - 5:00 - +05 1930 Jun 21 - 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s - 5:00 RussiaAsia +05/+06 1991 Aug 31 2:00 - 5:00 Kyrgyz +05/+06 2005 Aug 12 - 6:00 - +06 + 5:00 - %z 1930 Jun 21 + 6:00 RussiaAsia %z 1991 Mar 31 2:00s + 5:00 RussiaAsia %z 1991 Aug 31 2:00 + 5:00 Kyrgyz %z 2005 Aug 12 + 6:00 - %z ############################################################################### @@ -2809,16 +2816,16 @@ # and 1982 transition dates are from Mok Ly Yng. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kuching 7:21:20 - LMT 1926 Mar - 7:30 - +0730 1933 - 8:00 NBorneo +08/+0820 1942 Feb 16 - 9:00 - +09 1945 Sep 12 - 8:00 - +08 + 7:30 - %z 1933 + 8:00 NBorneo %z 1942 Feb 16 + 9:00 - %z 1945 Sep 12 + 8:00 - %z # Maldives # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé 4:54:00 - MMT 1960 # Malé Mean Time - 5:00 - +05 + 5:00 - %z # Mongolia @@ -2920,9 +2927,37 @@ # From Arthur David Olson (2008-05-19): # Assume that Choibalsan is indeed offset by 8:00. -# XXX--in the absence of better information, assume that transition -# was at the start of 2008-03-31 (the day of Steffen Thorsen's report); -# this is almost surely wrong. + +# From Heitor David Pinto (2024-06-23): +# Sources about time zones in Mongolia seem to list one of two conflicting +# configurations. The first configuration, mentioned in a comment to the TZ +# database in 1999, citing a Mongolian government website, lists the provinces +# of Bayan-Ölgii, Khovd and Uvs in UTC+7, and the rest of the country in +# UTC+8. The second configuration, mentioned in a comment to the database in +# 2001, lists Bayan-Ölgii, Khovd, Uvs, Govi-Altai and Zavkhan in UTC+7, Dornod +# and Sükhbaatar in UTC+9, and the rest of the country in UTC+8. +# +# The first configuration is still mentioned by several Mongolian travel +# agencies: +# https://www.adventurerider.mn/en/page/about_mongolia +# http://www.naturetours.mn/nt/mongolia.php +# https://www.newjuulchin.mn/web/content/7506?unique=fa24a0f6e96e022a3578ee5195ac879638c734ce +# +# It also matches these flight schedules in 2013: +# http://web.archive.org/web/20130722023600/https://www.hunnuair.com/en/timetabled +# The flight times imply that the airports of Uliastai (Zavkhan), Choibalsan +# (Dornod) and Altai (Govi-Altai) are in the same time zone as Ulaanbaatar, +# and Khovd is one hour behind.... +# +# The second configuration was mentioned by an official of the Mongolian +# standards agency in an interview in 2014: https://ikon.mn/n/9v6 +# And it's still listed by the Mongolian aviation agency: +# https://ais.mn/files/aip/eAIP/2023-12-25/html/eSUP/ZM-eSUP-23-04-en-MN.html +# +# ... I believe that the first configuration is what is actually observed in +# Mongolia and has been so all along, at least since 1999. The second +# configuration closely matches the ideal time zone boundaries at 97.5° E and +# 112.5° E but it doesn't seem to be used in practice. # From Ganbold Tsagaankhuu (2015-03-10): # It seems like yesterday Mongolian Government meeting has concluded to use @@ -2961,25 +2996,18 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] # Hovd, a.k.a. Chovd, Dund-Us, Dzhargalant, Khovd, Jirgalanta Zone Asia/Hovd 6:06:36 - LMT 1905 Aug - 6:00 - +06 1978 - 7:00 Mongol +07/+08 + 6:00 - %z 1978 + 7:00 Mongol %z # Ulaanbaatar, a.k.a. Ulan Bataar, Ulan Bator, Urga Zone Asia/Ulaanbaatar 7:07:32 - LMT 1905 Aug - 7:00 - +07 1978 - 8:00 Mongol +08/+09 -# Choibalsan, a.k.a. Bajan Tümen, Bajan Tumen, Chojbalsan, -# Choybalsan, Sanbejse, Tchoibalsan -Zone Asia/Choibalsan 7:38:00 - LMT 1905 Aug - 7:00 - +07 1978 - 8:00 - +08 1983 Apr - 9:00 Mongol +09/+10 2008 Mar 31 - 8:00 Mongol +08/+09 + 7:00 - %z 1978 + 8:00 Mongol %z # Nepal # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kathmandu 5:41:16 - LMT 1920 - 5:30 - +0530 1986 - 5:45 - +0545 + 5:30 - %z 1986 + 5:45 - %z # Pakistan @@ -3125,10 +3153,10 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Karachi 4:28:12 - LMT 1907 - 5:30 - +0530 1942 Sep - 5:30 1:00 +0630 1945 Oct 15 - 5:30 - +0530 1951 Sep 30 - 5:00 - +05 1971 Mar 26 + 5:30 - %z 1942 Sep + 5:30 1:00 %z 1945 Oct 15 + 5:30 - %z 1951 Sep 30 + 5:00 - %z 1971 Mar 26 5:00 Pakistan PK%sT # Pakistan Time # Palestine @@ -3676,14 +3704,14 @@ # Philippine Star 2014-08-05 # http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time -# From Paul Goyette (2018-06-15): +# From Paul Goyette (2018-06-15) with URLs updated by Guy Harris (2024-02-15): # In the Philippines, there is a national law, Republic Act No. 10535 # which declares the official time here as "Philippine Standard Time". # The act [1] even specifies use of PST as the abbreviation, although # the FAQ provided by PAGASA [2] uses the "acronym PhST to distinguish # it from the Pacific Standard Time (PST)." -# [1] http://www.officialgazette.gov.ph/2013/05/15/republic-act-no-10535/ -# [2] https://www1.pagasa.dost.gov.ph/index.php/astronomy/philippine-standard-time#republic-act-10535 +# [1] https://www.officialgazette.gov.ph/2013/05/15/republic-act-no-10535/ +# [2] https://prsd.pagasa.dost.gov.ph/index.php/28-astronomy/302-philippine-standard-time # # From Paul Eggert (2018-06-19): # I surveyed recent news reports, and my impression is that "PST" is @@ -3716,8 +3744,8 @@ # Qatar # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha - 4:00 - +04 1972 Jun - 3:00 - +03 + 4:00 - %z 1972 Jun + 3:00 - %z # Kuwait # Saudi Arabia @@ -3767,7 +3795,7 @@ # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14 - 3:00 - +03 + 3:00 - %z # Singapore # taken from Mok Ly Yng (2003-10-30) @@ -3775,13 +3803,13 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 6:55:25 - SMT 1905 Jun 1 # Singapore M.T. - 7:00 - +07 1933 Jan 1 - 7:00 0:20 +0720 1936 Jan 1 - 7:20 - +0720 1941 Sep 1 - 7:30 - +0730 1942 Feb 16 - 9:00 - +09 1945 Sep 12 - 7:30 - +0730 1981 Dec 31 16:00u - 8:00 - +08 + 7:00 - %z 1933 Jan 1 + 7:00 0:20 %z 1936 Jan 1 + 7:20 - %z 1941 Sep 1 + 7:30 - %z 1942 Feb 16 + 9:00 - %z 1945 Sep 12 + 7:30 - %z 1981 Dec 31 16:00u + 8:00 - %z # Spratly Is # no information @@ -3839,13 +3867,13 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Colombo 5:19:24 - LMT 1880 5:19:32 - MMT 1906 # Moratuwa Mean Time - 5:30 - +0530 1942 Jan 5 - 5:30 0:30 +06 1942 Sep - 5:30 1:00 +0630 1945 Oct 16 2:00 - 5:30 - +0530 1996 May 25 0:00 - 6:30 - +0630 1996 Oct 26 0:30 - 6:00 - +06 2006 Apr 15 0:30 - 5:30 - +0530 + 5:30 - %z 1942 Jan 5 + 5:30 0:30 %z 1942 Sep + 5:30 1:00 %z 1945 Oct 16 2:00 + 5:30 - %z 1996 May 25 0:00 + 6:30 - %z 1996 Oct 26 0:30 + 6:00 - %z 2006 Apr 15 0:30 + 5:30 - %z # Syria # Rule NAME FROM TO - IN ON AT SAVE LETTER/S @@ -4016,16 +4044,16 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq 2:00 Syria EE%sT 2022 Oct 28 0:00 - 3:00 - +03 + 3:00 - %z # Tajikistan # From Shanks & Pottenger. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 - 5:00 - +05 1930 Jun 21 - 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s - 5:00 1:00 +06 1991 Sep 9 2:00s - 5:00 - +05 + 5:00 - %z 1930 Jun 21 + 6:00 RussiaAsia %z 1991 Mar 31 2:00s + 5:00 1:00 %z 1991 Sep 9 2:00s + 5:00 - %z # Cambodia # Christmas I @@ -4035,16 +4063,16 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Bangkok 6:42:04 - LMT 1880 6:42:04 - BMT 1920 Apr # Bangkok Mean Time - 7:00 - +07 + 7:00 - %z # Turkmenistan # From Shanks & Pottenger. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad - 4:00 - +04 1930 Jun 21 - 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00 - 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00 - 5:00 - +05 + 4:00 - %z 1930 Jun 21 + 5:00 RussiaAsia %z 1991 Mar 31 2:00 + 4:00 RussiaAsia %z 1992 Jan 19 2:00 + 5:00 - %z # Oman # Réunion @@ -4054,25 +4082,25 @@ # The Crozet Is also observe Réunion time; see the 'antarctica' file. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dubai 3:41:12 - LMT 1920 - 4:00 - +04 + 4:00 - %z # Uzbekistan # Byalokoz 1919 says Uzbekistan was 4:27:53. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2 - 4:00 - +04 1930 Jun 21 - 5:00 - +05 1981 Apr 1 - 5:00 1:00 +06 1981 Oct 1 - 6:00 - +06 1982 Apr 1 - 5:00 RussiaAsia +05/+06 1992 - 5:00 - +05 + 4:00 - %z 1930 Jun 21 + 5:00 - %z 1981 Apr 1 + 5:00 1:00 %z 1981 Oct 1 + 6:00 - %z 1982 Apr 1 + 5:00 RussiaAsia %z 1992 + 5:00 - %z # Milne says Tashkent was 4:37:10.8. #STDOFF 4:37:10.8 Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 - 5:00 - +05 1930 Jun 21 - 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00 - 5:00 RussiaAsia +05/+06 1992 - 5:00 - +05 + 5:00 - %z 1930 Jun 21 + 6:00 RussiaAsia %z 1991 Mar 31 2:00 + 5:00 RussiaAsia %z 1992 + 5:00 - %z # Vietnam (southern) @@ -4130,7 +4158,7 @@ # Võ Nguyên Giáp, Việt Nam Dân Quốc Công Báo, No. 1 (1945-09-29), page 13 # http://baochi.nlv.gov.vn/baochi/cgi-bin/baochi?a=d&d=JwvzO19450929.2.5&dliv=none # It says that on 1945-09-01 at 24:00, Vietnam moved back two hours, to +07. -# It also mentions a 1945-03-29 decree (by a Japanese Goveror-General) +# It also mentions a 1945-03-29 decree (by a Japanese Governor-General) # to set the time zone to +09, but does not say whether that decree # merely legalized an earlier change to +09. # @@ -4151,14 +4179,14 @@ #STDOFF 7:06:30.13 Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1 7:06:30 - PLMT 1911 May 1 # Phù Liễn MT - 7:00 - +07 1942 Dec 31 23:00 - 8:00 - +08 1945 Mar 14 23:00 - 9:00 - +09 1945 Sep 1 24:00 - 7:00 - +07 1947 Apr 1 - 8:00 - +08 1955 Jul 1 01:00 - 7:00 - +07 1959 Dec 31 23:00 - 8:00 - +08 1975 Jun 13 - 7:00 - +07 + 7:00 - %z 1942 Dec 31 23:00 + 8:00 - %z 1945 Mar 14 23:00 + 9:00 - %z 1945 Sep 1 24:00 + 7:00 - %z 1947 Apr 1 + 8:00 - %z 1955 Jul 1 01:00 + 7:00 - %z 1959 Dec 31 23:00 + 8:00 - %z 1975 Jun 13 + 7:00 - %z # From Paul Eggert (2019-02-19): # diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/australasia openjdk-17-17.0.14+7/make/data/tzdata/australasia --- openjdk-17-17.0.13+11/make/data/tzdata/australasia 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/australasia 2025-01-04 20:25:18.000000000 +0000 @@ -66,8 +66,8 @@ 8:00 Aus AW%sT 1943 Jul 8:00 AW AW%sT Zone Australia/Eucla 8:35:28 - LMT 1895 Dec - 8:45 Aus +0845/+0945 1943 Jul - 8:45 AW +0845/+0945 + 8:45 Aus %z 1943 Jul + 8:45 AW %z # Queensland # @@ -232,8 +232,8 @@ Rule LH 2008 max - Oct Sun>=1 2:00 0:30 - Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb 10:00 - AEST 1981 Mar - 10:30 LH +1030/+1130 1985 Jul - 10:30 LH +1030/+11 + 10:30 LH %z 1985 Jul + 10:30 LH %z # Australian miscellany # @@ -439,16 +439,16 @@ Rule Fiji 2020 only - Dec 20 2:00 1:00 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva - 12:00 Fiji +12/+13 + 12:00 Fiji %z # French Polynesia # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Gambier -8:59:48 - LMT 1912 Oct 1 # Rikitea - -9:00 - -09 + -9:00 - %z Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct 1 - -9:30 - -0930 + -9:30 - %z Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct 1 # Papeete - -10:00 - -10 + -10:00 - %z # Clipperton (near North America) is administered from French Polynesia; # it is uninhabited. @@ -491,7 +491,7 @@ Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31 9:39:00 - LMT 1901 # Agana 10:00 - GST 1941 Dec 10 # Guam - 9:00 - +09 1944 Jul 31 + 9:00 - %z 1944 Jul 31 10:00 Guam G%sT 2000 Dec 23 10:00 - ChST # Chamorro Standard Time @@ -503,30 +503,30 @@ # Wallis & Futuna # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki - 12:00 - +12 + 12:00 - %z # Kiribati (except Gilbert Is) # See Pacific/Tarawa for the Gilbert Is. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Kanton 0 - -00 1937 Aug 31 - -12:00 - -12 1979 Oct - -11:00 - -11 1994 Dec 31 - 13:00 - +13 + -12:00 - %z 1979 Oct + -11:00 - %z 1994 Dec 31 + 13:00 - %z Zone Pacific/Kiritimati -10:29:20 - LMT 1901 - -10:40 - -1040 1979 Oct - -10:00 - -10 1994 Dec 31 - 14:00 - +14 + -10:40 - %z 1979 Oct + -10:00 - %z 1994 Dec 31 + 14:00 - %z # Marshall Is # See Pacific/Tarawa for most locations. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Kwajalein 11:09:20 - LMT 1901 - 11:00 - +11 1937 - 10:00 - +10 1941 Apr 1 - 9:00 - +09 1944 Feb 6 - 11:00 - +11 1969 Oct - -12:00 - -12 1993 Aug 20 24:00 - 12:00 - +12 + 11:00 - %z 1937 + 10:00 - %z 1941 Apr 1 + 9:00 - %z 1944 Feb 6 + 11:00 - %z 1969 Oct + -12:00 - %z 1993 Aug 20 24:00 + 12:00 - %z # Micronesia # For Chuuk and Yap see Pacific/Port_Moresby. @@ -534,22 +534,22 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Kosrae -13:08:04 - LMT 1844 Dec 31 10:51:56 - LMT 1901 - 11:00 - +11 1914 Oct - 9:00 - +09 1919 Feb 1 - 11:00 - +11 1937 - 10:00 - +10 1941 Apr 1 - 9:00 - +09 1945 Aug - 11:00 - +11 1969 Oct - 12:00 - +12 1999 - 11:00 - +11 + 11:00 - %z 1914 Oct + 9:00 - %z 1919 Feb 1 + 11:00 - %z 1937 + 10:00 - %z 1941 Apr 1 + 9:00 - %z 1945 Aug + 11:00 - %z 1969 Oct + 12:00 - %z 1999 + 11:00 - %z # Nauru # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe - 11:30 - +1130 1942 Aug 29 - 9:00 - +09 1945 Sep 8 - 11:30 - +1130 1979 Feb 10 2:00 - 12:00 - +12 + 11:30 - %z 1942 Aug 29 + 9:00 - %z 1945 Sep 8 + 11:30 - %z 1979 Feb 10 2:00 + 12:00 - %z # New Caledonia # Rule NAME FROM TO - IN ON AT SAVE LETTER/S @@ -560,7 +560,7 @@ Rule NC 1997 only - Mar 2 2:00s 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa - 11:00 NC +11/+12 + 11:00 NC %z ############################################################################### @@ -604,8 +604,8 @@ 12:00 NZ NZ%sT Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2 - 12:15 - +1215 1946 Jan 1 - 12:45 Chatham +1245/+1345 + 12:15 - %z 1946 Jan 1 + 12:45 Chatham %z # Auckland Is # uninhabited; Māori and Moriori, colonial settlers, pastoralists, sealers, @@ -658,8 +658,8 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Rarotonga 13:20:56 - LMT 1899 Dec 26 # Avarua -10:39:04 - LMT 1952 Oct 16 - -10:30 - -1030 1978 Nov 12 - -10:00 Cook -10/-0930 + -10:30 - %z 1978 Nov 12 + -10:00 Cook %z ############################################################################### @@ -676,30 +676,30 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Niue -11:19:40 - LMT 1952 Oct 16 # Alofi - -11:20 - -1120 1964 Jul - -11:00 - -11 + -11:20 - %z 1964 Jul + -11:00 - %z # Norfolk # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Norfolk 11:11:52 - LMT 1901 # Kingston - 11:12 - +1112 1951 - 11:30 - +1130 1974 Oct 27 02:00s - 11:30 1:00 +1230 1975 Mar 2 02:00s - 11:30 - +1130 2015 Oct 4 02:00s - 11:00 - +11 2019 Jul - 11:00 AN +11/+12 + 11:12 - %z 1951 + 11:30 - %z 1974 Oct 27 02:00s + 11:30 1:00 %z 1975 Mar 2 02:00s + 11:30 - %z 2015 Oct 4 02:00s + 11:00 - %z 2019 Jul + 11:00 AN %z # Palau (Belau) # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror 8:57:56 - LMT 1901 - 9:00 - +09 + 9:00 - %z # Papua New Guinea # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 9:48:32 - PMMT 1895 # Port Moresby Mean Time - 10:00 - +10 + 10:00 - %z # # From Paul Eggert (2014-10-13): # Base the Bougainville entry on the Arawa-Kieta region, which appears to have @@ -720,16 +720,16 @@ # Zone Pacific/Bougainville 10:22:16 - LMT 1880 9:48:32 - PMMT 1895 - 10:00 - +10 1942 Jul - 9:00 - +09 1945 Aug 21 - 10:00 - +10 2014 Dec 28 2:00 - 11:00 - +11 + 10:00 - %z 1942 Jul + 9:00 - %z 1945 Aug 21 + 10:00 - %z 2014 Dec 28 2:00 + 11:00 - %z # Pitcairn # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown - -8:30 - -0830 1998 Apr 27 0:00 - -8:00 - -08 + -8:30 - %z 1998 Apr 27 0:00 + -8:00 - %z # American Samoa # Midway @@ -818,15 +818,15 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5 -11:26:56 - LMT 1911 - -11:30 - -1130 1950 - -11:00 WS -11/-10 2011 Dec 29 24:00 - 13:00 WS +13/+14 + -11:30 - %z 1950 + -11:00 WS %z 2011 Dec 29 24:00 + 13:00 WS %z # Solomon Is # excludes Bougainville, for which see Papua New Guinea # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct 1 # Honiara - 11:00 - +11 + 11:00 - %z # Tokelau # @@ -849,8 +849,8 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Fakaofo -11:24:56 - LMT 1901 - -11:00 - -11 2011 Dec 30 - 13:00 - +13 + -11:00 - %z 2011 Dec 30 + 13:00 - %z # Tonga # Rule NAME FROM TO - IN ON AT SAVE LETTER/S @@ -862,9 +862,9 @@ Rule Tonga 2017 only - Jan Sun>=15 3:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Tongatapu 12:19:12 - LMT 1945 Sep 10 - 12:20 - +1220 1961 - 13:00 - +13 1999 - 13:00 Tonga +13/+14 + 12:20 - %z 1961 + 13:00 - %z 1999 + 13:00 Tonga %z # US minor outlying islands @@ -953,7 +953,7 @@ Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila - 11:00 Vanuatu +11/+12 + 11:00 Vanuatu %z ############################################################################### diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/backward openjdk-17-17.0.14+7/make/data/tzdata/backward --- openjdk-17-17.0.13+11/make/data/tzdata/backward 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/backward 2025-01-04 20:25:18.000000000 +0000 @@ -21,12 +21,13 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -# tzdb links for backward compatibility +# Links and zones for backward compatibility # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # This file provides links from old or merged timezone names to current ones. +# It also provides a few zone entries for old naming conventions. # Many names changed in 1993 and in 1995, and many merged names moved here # in the period from 2013 through 2022. Several of these names are # also present in the file 'backzone', which has data important only @@ -67,6 +68,8 @@ Link America/Noronha Brazil/DeNoronha Link America/Sao_Paulo Brazil/East Link America/Manaus Brazil/West +Link Europe/Brussels CET +Link America/Chicago CST6CDT Link America/Halifax Canada/Atlantic Link America/Winnipeg Canada/Central # This line is commented out, as the name exceeded the 14-character limit @@ -81,6 +84,9 @@ Link America/Santiago Chile/Continental Link Pacific/Easter Chile/EasterIsland Link America/Havana Cuba +Link Europe/Athens EET +Link America/Panama EST +Link America/New_York EST5EDT Link Africa/Cairo Egypt Link Europe/Dublin Eire # Vanguard section, for most .zi parsers. @@ -119,6 +125,9 @@ Link Asia/Tokyo Japan Link Pacific/Kwajalein Kwajalein Link Africa/Tripoli Libya +Link Europe/Brussels MET +Link America/Phoenix MST +Link America/Denver MST7MDT Link America/Tijuana Mexico/BajaNorte Link America/Mazatlan Mexico/BajaSur Link America/Mexico_City Mexico/General @@ -298,6 +307,7 @@ Link America/Toronto America/Thunder_Bay Link America/Edmonton America/Yellowknife Link Pacific/Auckland Antarctica/South_Pole +Link Asia/Ulaanbaatar Asia/Choibalsan Link Asia/Shanghai Asia/Chongqing Link Asia/Shanghai Asia/Harbin Link Asia/Urumqi Asia/Kashgar @@ -312,6 +322,7 @@ Link Pacific/Kanton Pacific/Enderbury Link Pacific/Honolulu Pacific/Johnston Link Pacific/Port_Moresby Pacific/Yap +Link Europe/Lisbon WET # Alternate names for the same location @@ -337,5 +348,7 @@ # Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72. # However, for various reasons many users expect to find it under Europe. Link Asia/Nicosia Europe/Nicosia +Link Pacific/Honolulu HST +Link America/Los_Angeles PST8PDT Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/etcetera openjdk-17-17.0.14+7/make/data/tzdata/etcetera --- openjdk-17-17.0.13+11/make/data/tzdata/etcetera 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/etcetera 2025-01-04 20:25:18.000000000 +0000 @@ -28,7 +28,7 @@ # These entries are for uses not otherwise covered by the tz database. # Their main practical use is for platforms like Android that lack -# support for POSIX.1-2017-style TZ strings. On such platforms these entries +# support for POSIX proleptic TZ strings. On such platforms these entries # can be useful if the timezone database is wrong or if a ship or # aircraft at sea is not in a timezone. @@ -74,29 +74,29 @@ # so we moved the names into the Etc subdirectory. # Also, the time zone abbreviations are now compatible with %z. -Zone Etc/GMT-14 14 - +14 -Zone Etc/GMT-13 13 - +13 -Zone Etc/GMT-12 12 - +12 -Zone Etc/GMT-11 11 - +11 -Zone Etc/GMT-10 10 - +10 -Zone Etc/GMT-9 9 - +09 -Zone Etc/GMT-8 8 - +08 -Zone Etc/GMT-7 7 - +07 -Zone Etc/GMT-6 6 - +06 -Zone Etc/GMT-5 5 - +05 -Zone Etc/GMT-4 4 - +04 -Zone Etc/GMT-3 3 - +03 -Zone Etc/GMT-2 2 - +02 -Zone Etc/GMT-1 1 - +01 -Zone Etc/GMT+1 -1 - -01 -Zone Etc/GMT+2 -2 - -02 -Zone Etc/GMT+3 -3 - -03 -Zone Etc/GMT+4 -4 - -04 -Zone Etc/GMT+5 -5 - -05 -Zone Etc/GMT+6 -6 - -06 -Zone Etc/GMT+7 -7 - -07 -Zone Etc/GMT+8 -8 - -08 -Zone Etc/GMT+9 -9 - -09 -Zone Etc/GMT+10 -10 - -10 -Zone Etc/GMT+11 -11 - -11 -Zone Etc/GMT+12 -12 - -12 +Zone Etc/GMT-14 14 - %z +Zone Etc/GMT-13 13 - %z +Zone Etc/GMT-12 12 - %z +Zone Etc/GMT-11 11 - %z +Zone Etc/GMT-10 10 - %z +Zone Etc/GMT-9 9 - %z +Zone Etc/GMT-8 8 - %z +Zone Etc/GMT-7 7 - %z +Zone Etc/GMT-6 6 - %z +Zone Etc/GMT-5 5 - %z +Zone Etc/GMT-4 4 - %z +Zone Etc/GMT-3 3 - %z +Zone Etc/GMT-2 2 - %z +Zone Etc/GMT-1 1 - %z +Zone Etc/GMT+1 -1 - %z +Zone Etc/GMT+2 -2 - %z +Zone Etc/GMT+3 -3 - %z +Zone Etc/GMT+4 -4 - %z +Zone Etc/GMT+5 -5 - %z +Zone Etc/GMT+6 -6 - %z +Zone Etc/GMT+7 -7 - %z +Zone Etc/GMT+8 -8 - %z +Zone Etc/GMT+9 -9 - %z +Zone Etc/GMT+10 -10 - %z +Zone Etc/GMT+11 -11 - %z +Zone Etc/GMT+12 -12 - %z diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/europe openjdk-17-17.0.14+7/make/data/tzdata/europe --- openjdk-17-17.0.13+11/make/data/tzdata/europe 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/europe 2025-01-04 20:25:18.000000000 +0000 @@ -753,14 +753,6 @@ # Take "abolishing daylight saving time" to mean that time is now considered # to be standard. -# These are for backward compatibility with older versions. - -# Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone WET 0:00 EU WE%sT -Zone CET 1:00 C-Eur CE%sT -Zone MET 1:00 C-Eur ME%sT -Zone EET 2:00 EU EE%sT - # Previous editions of this database used abbreviations like MET DST # for Central European Summer Time, but this didn't agree with common usage. @@ -894,7 +886,7 @@ 3:00 Russia MSK/MSD 1990 3:00 - MSK 1991 Mar 31 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s - 3:00 - +03 + 3:00 - %z # Belgium # Luxembourg @@ -1199,22 +1191,22 @@ # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 - -3:00 - -03 1980 Apr 6 2:00 - -3:00 EU -03/-02 1996 + -3:00 - %z 1980 Apr 6 2:00 + -3:00 EU %z 1996 0:00 - GMT # # Use the old name Scoresbysund, as the current name Ittoqqortoormiit # exceeds tzdb's 14-letter limit and has no common English abbreviation. Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit - -2:00 - -02 1980 Apr 6 2:00 - -2:00 C-Eur -02/-01 1981 Mar 29 - -1:00 EU -01/+00 2024 Mar 31 - -2:00 EU -02/-01 + -2:00 - %z 1980 Apr 6 2:00 + -2:00 C-Eur %z 1981 Mar 29 + -1:00 EU %z 2024 Mar 31 + -2:00 EU %z Zone America/Nuuk -3:26:56 - LMT 1916 Jul 28 # Godthåb - -3:00 - -03 1980 Apr 6 2:00 - -3:00 EU -03/-02 2023 Mar 26 1:00u - -2:00 - -02 2023 Oct 29 1:00u - -2:00 EU -02/-01 + -3:00 - %z 1980 Apr 6 2:00 + -3:00 EU %z 2023 Mar 26 1:00u + -2:00 - %z 2023 Oct 29 1:00u + -2:00 EU %z Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik -4:00 Thule A%sT @@ -2086,10 +2078,39 @@ # Portugal -# From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne: -# According to a Portuguese decree (1911-05-26) -# https://dre.pt/application/dir/pdf1sdip/1911/05/12500/23132313.pdf -# Lisbon was at -0:36:44.68, but switched to GMT on 1912-01-01 at 00:00. +# From Tim Parenti (2024-07-01), per Alois Treindl (2021-02-07) and Michael +# Deckers (2021-02-10): +# http://oal.ul.pt/documentos/2018/01/hl1911a2018.pdf/ +# The Astronomical Observatory of Lisbon has published a list detailing the +# historical transitions in legal time within continental Portugal. It +# directly references many decrees and ordinances which are, in turn, +# referenced below. They can be viewed in the public archives of the Diário da +# República (until 1976-04-09 known as the Diário do Govêrno) at +# https://dre.pt/ (in Portuguese). +# +# Most of the Rules below have been updated simply to match the Observatory's +# listing for continental (mainland) Portugal. Although there are over 50 +# referenced decrees and ordinances, only the handful with comments below have +# been verified against the text, typically to provide additional confidence +# wherever dates provided by Whitman and Shanks & Pottenger had disagreed. +# See further below for the Azores and Madeira. + +# From Tim Parenti (2024-07-01), per Paul Eggert (2014-08-11), after a +# heads-up from Stephen Colebourne: +# According to a 1911-05-24 Portuguese decree, Lisbon was at -0:36:44.68, but +# switched to GMT on 1912-01-01 at 00:00. +# https://dre.pt/dr/detalhe/decreto/593090 +# https://dre.pt/application/conteudo/593090 +# The decree made legal time throughout Portugal and her possessions +# "subordinate to the Greenwich meridian, according to the principle adopted at +# the Washington Convention in 1884" and eliminated the "difference of five +# minutes between the internal and external clocks of railway stations". +# +# The decree was gazetted in the 1911-05-30 issue of Diário do Govêrno, and is +# considered to be dated 1911-05-24 by that issue's summary; however, the text +# of the decree itself is dated 1911-05-26. The Diário da República website +# notes the discrepancy, but later laws and the Observatory all seem to refer +# to this decree by the 1911-05-24 date. # # From Michael Deckers (2018-02-15): # article 5 [of the 1911 decree; Deckers's translation] ...: @@ -2097,37 +2118,62 @@ # according to the 2nd article, the civil day January 1, 1912 begins, # all clocks therefore having to be advanced or set back correspondingly ... -# From Rui Pedro Salgueiro (1992-11-12): -# Portugal has recently (September, 27) changed timezone -# (from WET to MET or CET) to harmonize with EEC. -# -# Martin Bruckmann (1996-02-29) reports via Peter Ilieve -# that Portugal is reverting to 0:00 by not moving its clocks this spring. -# The new Prime Minister was fed up with getting up in the dark in the winter. -# -# From Paul Eggert (1996-11-12): -# IATA SSIM (1991-09) reports several 1991-09 and 1992-09 transitions -# at 02:00u, not 01:00u. Assume that these are typos. -# IATA SSIM (1991/1992) reports that the Azores were at -1:00. -# IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00. -# Guess that the Azores changed to EU rules in 1992 (since that's when Portugal -# harmonized with EU rules), and that they stayed +0:00 that winter. -# # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -# DSH writes that despite Decree 1,469 (1915), the change to the clocks was not -# done every year, depending on what Spain did, because of railroad schedules. -# Go with Shanks & Pottenger. +# From Tim Parenti (2024-07-01), per Paul Eggert (1999-01-30): +# DSH writes in their history that Decreto 1469 of 1915-03-30 established +# summer time and that, "despite" this, the change to the clocks was not done +# every year, depending on what Spain did, because of railroad schedules. +# In fact, that decree had nothing to do with DST; rather, it regulated the +# sending of time signals. But we do see linkage to Spain in the 1920s below. +# https://dre.pt/dr/detalhe/decreto/1469-1915-285721 +# https://dre.pt/application/conteudo/285721 +# +# According to the Observatory, standard time was first advanced by Decreto +# 2433 of 1916-06-09 and restored by Decreto 2712 of 1916-10-28. While Whitman +# gives 1916-10-31 for the latter transition, Shanks & Pottenger agrees more +# closely with the decree, which stated that its provision "will start sixty +# minutes after the end of 31 October, according to the current time," i.e., +# 01:00 on 1 November. +# https://dre.pt/dr/detalhe/decreto/2433-1916-267192 +# https://dre.pt/application/conteudo/267192 +# https://dre.pt/dr/detalhe/decreto/2712-1916-590937 +# https://dre.pt/application/conteudo/590937 Rule Port 1916 only - Jun 17 23:00 1:00 S -# Whitman gives 1916 Oct 31; go with Shanks & Pottenger. Rule Port 1916 only - Nov 1 1:00 0 - -Rule Port 1917 only - Feb 28 23:00s 1:00 S -Rule Port 1917 1921 - Oct 14 23:00s 0 - -Rule Port 1918 only - Mar 1 23:00s 1:00 S -Rule Port 1919 only - Feb 28 23:00s 1:00 S -Rule Port 1920 only - Feb 29 23:00s 1:00 S -Rule Port 1921 only - Feb 28 23:00s 1:00 S +# From Tim Parenti (2024-07-01): +# Article 7 of Decreto 2922 of 1916-12-30 stated that "the legal time will be +# advanced by sixty minutes from 1 March to 31 October." Per Article 15, this +# came into force from 1917-01-01. Just before the first fall back, Decreto +# 3446 of 1917-10-11 changed the annual end date to 14 October. +# https://dre.pt/dr/detalhe/decreto/2922-1916-261894 +# https://dre.pt/application/conteudo/261894 +# https://dre.pt/dr/detalhe/decreto/3446-1917-495161 +# https://dre.pt/application/conteudo/495161 +# This annual change was revoked by Decreto 8038 of 1922-02-18. +# https://dre.pt/dr/detalhe/decreto/8038-1922-569751 +# https://dre.pt/application/conteudo/569751 +Rule Port 1917 1921 - Mar 1 0:00 1:00 S +Rule Port 1917 1921 - Oct 14 24:00 0 - +# From Tim Parenti (2024-07-01): +# Decreto 9592 of 1924-04-14 noted that "France maintains the advance of legal +# time in the summer and Spain has now adopted it for the first time" and +# considered "that the absence of similar measures would cause serious +# difficulties for international rail connections with consequent repercussions +# on domestic service hours..." along with "inconvenient analogues...for postal +# and telegraph services." Summer time would be in effect from 17 April to 4 +# October, with the spring change explicitly specified by bringing clocks +# forward from 16 April 23:00. +# https://dre.pt/dr/detalhe/decreto/9592-1924-652133 +# https://dre.pt/application/conteudo/652133 +# +# Decreto 10700, issued 1925-04-16, noted that Spain had not continued summer +# time, declared that "the current legal hour prior to 17 April remains +# unchanged from that day forward", and revoked legislation to the contrary, +# just a day before summer time would have otherwise resumed. +# https://dre.pt/dr/detalhe/decreto/10700-1925-437826 +# https://dre.pt/application/conteudo/437826 Rule Port 1924 only - Apr 16 23:00s 1:00 S -Rule Port 1924 only - Oct 14 23:00s 0 - +Rule Port 1924 only - Oct 4 23:00s 0 - Rule Port 1926 only - Apr 17 23:00s 1:00 S Rule Port 1926 1929 - Oct Sat>=1 23:00s 0 - Rule Port 1927 only - Apr 9 23:00s 1:00 S @@ -2139,6 +2185,8 @@ Rule Port 1932 only - Apr 2 23:00s 1:00 S Rule Port 1934 only - Apr 7 23:00s 1:00 S # Whitman gives 1934 Oct 5; go with Shanks & Pottenger. +# Note: The 1935 law specified 10-06 00:00, not 10-05 24:00, but the following +# is equivalent and more succinct. Rule Port 1934 1938 - Oct Sat>=1 23:00s 0 - # Shanks & Pottenger give 1935 Apr 30; go with Whitman. Rule Port 1935 only - Mar 30 23:00s 1:00 S @@ -2149,10 +2197,19 @@ Rule Port 1939 only - Apr 15 23:00s 1:00 S # Whitman gives 1939 Oct 7; go with Shanks & Pottenger. Rule Port 1939 only - Nov 18 23:00s 0 - +# From Tim Parenti (2024-07-01): +# Portaria 9465 of 1940-02-17 advanced clocks from Saturday 1940-02-24 23:00. +# The clocks were restored by Portaria 9658, issued Monday 1940-10-07, +# effective from 24:00 that very night, which agrees with Shanks & Pottenger; +# Whitman gives Saturday 1940-10-05 instead. +# https://dre.pt/dr/detalhe/portaria/9465-1940-189096 +# https://dre.pt/application/conteudo/189096 +# https://dre.pt/dr/detalhe/portaria/9658-1940-196729 +# https://dre.pt/application/conteudo/196729 Rule Port 1940 only - Feb 24 23:00s 1:00 S -# Shanks & Pottenger give 1940 Oct 7; go with Whitman. -Rule Port 1940 1941 - Oct 5 23:00s 0 - +Rule Port 1940 only - Oct 7 23:00s 0 - Rule Port 1941 only - Apr 5 23:00s 1:00 S +Rule Port 1941 only - Oct 5 23:00s 0 - Rule Port 1942 1945 - Mar Sat>=8 23:00s 1:00 S Rule Port 1942 only - Apr 25 22:00s 2:00 M # Midsummer Rule Port 1942 only - Aug 15 22:00s 1:00 S @@ -2162,66 +2219,195 @@ Rule Port 1944 1945 - Apr Sat>=21 22:00s 2:00 M Rule Port 1946 only - Apr Sat>=1 23:00s 1:00 S Rule Port 1946 only - Oct Sat>=1 23:00s 0 - -# Whitman says DST was not observed in 1950; go with Shanks & Pottenger. -# Whitman gives Oct lastSun for 1952 on; go with Shanks & Pottenger. -Rule Port 1947 1965 - Apr Sun>=1 2:00s 1:00 S +# From Tim Parenti (2024-07-01), per Alois Treindl (2021-02-07): +# The Astronomical Observatory of Lisbon cites Portaria 11767 of 1947-03-28 for +# 1947 and Portaria 12286 of 1948-02-19 for 1948. +# https://dre.pt/dr/detalhe/portaria/11767-1947-414787 +# https://dre.pt/application/conteudo/414787 +# https://dre.pt/dr/detalhe/portaria/12286-1948-152953 +# https://dre.pt/application/conteudo/152953 +# +# Although the latter ordinance explicitly had the 1948-10-03 transition +# scheduled for 02:00 rather than 03:00 as had been used in 1947, Decreto-Lei +# 37048 of 1948-09-07 recognized "that it is advisable to definitely set...the +# 'summer time' regime", and fixed the fall transition at 03:00 moving forward. +# https://dre.pt/dr/detalhe/decreto-lei/37048-1948-373810 +# https://dre.pt/application/conteudo/373810 +# While the Observatory only cites this act for 1949-1965 and not for 1948, it +# does not appear to have had any provision delaying its effect, so assume that +# it overrode the prior ordinance for 1948-10-03. +# +# Whitman says DST was not observed in 1950 and gives Oct lastSun for 1952 on. +# The Observatory, however, agrees with Shanks & Pottenger that 1950 was not an +# exception and that Oct Sun>=1 was maintained through 1965. +Rule Port 1947 1966 - Apr Sun>=1 2:00s 1:00 S Rule Port 1947 1965 - Oct Sun>=1 2:00s 0 - -Rule Port 1977 only - Mar 27 0:00s 1:00 S -Rule Port 1977 only - Sep 25 0:00s 0 - -Rule Port 1978 1979 - Apr Sun>=1 0:00s 1:00 S -Rule Port 1978 only - Oct 1 0:00s 0 - -Rule Port 1979 1982 - Sep lastSun 1:00s 0 - -Rule Port 1980 only - Mar lastSun 0:00s 1:00 S -Rule Port 1981 1982 - Mar lastSun 1:00s 1:00 S -Rule Port 1983 only - Mar lastSun 2:00s 1:00 S +# From Tim Parenti (2024-07-01): +# Decreto-Lei 47233 of 1966-10-01 considered that the "duality" in time was +# "the cause of serious disturbances" and noted that "the countries with which +# we have the most frequent contacts...have already adopted" a solution +# coinciding with the extant "summer time". It established that the former +# "summer time" would apply year-round on the mainland and adjacent islands +# with immediate effect, as the fall back would have otherwise occurred later +# that evening. +# https://dre.pt/dr/detalhe/decreto-lei/47233-1966-293729 +# Model this by changing zones without changing clocks at the +# previously-appointed fall back time. +# +# Decreto-Lei 309/76 of 1976-04-27 acknowledged that those international +# contacts had returned to adopting seasonal times, and considered that the +# year-round advancement "entails considerable sacrifices for the vast majority +# of the working population during the winter months", including morning +# visibility concerns for schoolchildren. It specified, beginning 1976-09-26 +# 01:00, an annual return to UT+00 on the mainland from 00:00 UT on Sep lastSun +# to 00:00 UT on Mar lastSun (unless the latter date fell on Easter, in which +# case it was to be brought forward to the preceding Sunday). It also assigned +# the Permanent Time Commission to study and propose revisions for the Azores +# and Madeira, neither of which resumed DST until 1982 (as described further +# below). +# https://dre.pt/dr/detalhe/decreto-lei/309-1976-502063 +Rule Port 1976 only - Sep lastSun 1:00 0 - +Rule Port 1977 only - Mar lastSun 0:00s 1:00 S +Rule Port 1977 only - Sep lastSun 0:00s 0 - +# From Tim Parenti (2024-07-01): +# Beginning in 1978, rather than triggering the Easter rule of the 1976 decree +# (Easter fell on 1978-03-26), Article 5 was used instead, which allowed DST +# dates to be changed by order of the Minister of Education and Scientific +# Research, upon consultation with the Permanent Time Commission, "whenever +# considered convenient." As such, a series of one-off ordinances were +# promulgated for the mainland in 1978 through 1980, after which the 1976 +# decree naturally came back into force from 1981. +Rule Port 1978 1980 - Apr Sun>=1 1:00s 1:00 S +Rule Port 1978 only - Oct 1 1:00s 0 - +Rule Port 1979 1980 - Sep lastSun 1:00s 0 - +Rule Port 1981 1986 - Mar lastSun 0:00s 1:00 S +Rule Port 1981 1985 - Sep lastSun 0:00s 0 - +# From Tim Parenti (2024-07-01): +# Decreto-Lei 44-B/86 of 1986-03-07 switched mainland Portugal's transition +# times from 0:00s to 1:00u to harmonize with the EEC from 1986-03-30. +# https://dre.pt/dr/detalhe/decreto-lei/44-b-1986-628280 +# (Transitions of 1:00s as previously reported and used by the W-Eur rules, +# though equivalent, appear to have been fiction here.) Madeira continued to +# use 0:00s for spring 1986 before joining with the mainland using 1:00u in the +# fall; meanwhile, in the Azores the two were equivalent, so the law specifying +# 0:00s wasn't touched until 1992. (See below for more on the islands.) +# +# From Rui Pedro Salgueiro (1992-11-12): +# Portugal has recently (September, 27) changed timezone +# (from WET to MET or CET) to harmonize with EEC. +# +# Martin Bruckmann (1996-02-29) reports via Peter Ilieve +# that Portugal is reverting to 0:00 by not moving its clocks this spring. +# The new Prime Minister was fed up with getting up in the dark in the winter. +# +# From Paul Eggert (1996-11-12): +# IATA SSIM (1991-09) reports several 1991-09 and 1992-09 transitions +# at 02:00u, not 01:00u. Assume that these are typos. # # Zone NAME STDOFF RULES FORMAT [UNTIL] #STDOFF -0:36:44.68 Zone Europe/Lisbon -0:36:45 - LMT 1884 -0:36:45 - LMT 1912 Jan 1 0:00u # Lisbon MT - 0:00 Port WE%sT 1966 Apr 3 2:00 + 0:00 Port WE%sT 1966 Oct 2 2:00s 1:00 - CET 1976 Sep 26 1:00 - 0:00 Port WE%sT 1983 Sep 25 1:00s - 0:00 W-Eur WE%sT 1992 Sep 27 1:00s + 0:00 Port WE%sT 1986 + 0:00 EU WE%sT 1992 Sep 27 1:00u 1:00 EU CE%sT 1996 Mar 31 1:00u 0:00 EU WE%sT + +# From Tim Parenti (2024-07-01): +# For the Azores and Madeira, legislation was followed from the laws currently +# in force as listed at: +# https://oal.ul.pt/hora-legal/legislacao/ +# working backward through references of revocation and abrogation to +# Decreto-Lei 47233 of 1966-10-01, the last time DST was abolished across the +# mainland and its adjacent islands. Because of that reference, it is +# therefore assumed that DST rules in the islands prior to 1966 were like that +# of the mainland, though most legislation of the time didn't explicitly +# specify DST practices for the islands. Zone Atlantic/Azores -1:42:40 - LMT 1884 # Ponta Delgada -1:54:32 - HMT 1912 Jan 1 2:00u # Horta MT # Vanguard section, for zic and other parsers that support %z. -# -2:00 Port %z 1966 Apr 3 2:00 -# -1:00 Port %z 1983 Sep 25 1:00s -# -1:00 W-Eur %z 1992 Sep 27 1:00s + -2:00 Port %z 1966 Oct 2 2:00s +# From Tim Parenti (2024-07-01): +# While Decreto-Lei 309/76 of 1976-04-27 reintroduced DST on the mainland by +# falling back on 1976-09-26, it assigned the Permanent Time Commission to +# study and propose revisions for the Azores and Madeira. Decreto Regional +# 9/77/A of 1977-05-17 affirmed that "the legal time remained unchanged in the +# Azores" at UT-1, and would remain there year-round. +# https://dre.pt/dr/detalhe/decreto-regional/9-1977-252066 +# +# Decreto Regional 2/82/A, published 1982-03-02, adopted DST in the same +# fashion as the mainland used at the time. +# https://dre.pt/dr/detalhe/decreto-regional/2-1982-599965 +# Though transitions in the Azores officially remained at 0:00s through 1992, +# this was equivalent to the EU-style 1:00u adopted by the mainland in 1986, so +# model it as such. + -1:00 - %z 1982 Mar 28 0:00s + -1:00 Port %z 1986 # Rearguard section, for parsers lacking %z; see ziguard.awk. - -2:00 Port -02/-01 1942 Apr 25 22:00s - -2:00 Port +00 1942 Aug 15 22:00s - -2:00 Port -02/-01 1943 Apr 17 22:00s - -2:00 Port +00 1943 Aug 28 22:00s - -2:00 Port -02/-01 1944 Apr 22 22:00s - -2:00 Port +00 1944 Aug 26 22:00s - -2:00 Port -02/-01 1945 Apr 21 22:00s - -2:00 Port +00 1945 Aug 25 22:00s - -2:00 Port -02/-01 1966 Apr 3 2:00 - -1:00 Port -01/+00 1983 Sep 25 1:00s - -1:00 W-Eur -01/+00 1992 Sep 27 1:00s +# -2:00 Port -02/-01 1942 Apr 25 22:00s +# -2:00 Port +00 1942 Aug 15 22:00s +# -2:00 Port -02/-01 1943 Apr 17 22:00s +# -2:00 Port +00 1943 Aug 28 22:00s +# -2:00 Port -02/-01 1944 Apr 22 22:00s +# -2:00 Port +00 1944 Aug 26 22:00s +# -2:00 Port -02/-01 1945 Apr 21 22:00s +# -2:00 Port +00 1945 Aug 25 22:00s +# -2:00 Port -02/-01 1966 Oct 2 2:00s +# -1:00 - -01 1982 Mar 28 0:00s +# -1:00 Port -01/+00 1986 # End of rearguard section. - 0:00 EU WE%sT 1993 Mar 28 1:00u - -1:00 EU -01/+00 +# +# From Paul Eggert (1996-11-12): +# IATA SSIM (1991/1992) reports that the Azores were at -1:00. +# IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00. +# +# From Tim Parenti (2024-07-01): +# After mainland Portugal had shifted forward an hour from 1992-09-27, Decreto +# Legislativo Regional 29/92/A of 1992-12-23 sought to "reduce the time +# difference" by shifting the Azores forward as well from 1992-12-27. Just six +# months later, this was revoked by Decreto Legislativo Regional 9/93/A, citing +# "major changes in work habits and way of life." Though the revocation didn't +# give a transition time, it was signed Wednesday 1993-06-16; assume it took +# effect later that evening, and that an EU-style spring forward (to +01) was +# still observed in the interim on 1993-03-28. +# https://dre.pt/dr/detalhe/decreto-legislativo-regional/29-1992-621553 +# https://dre.pt/dr/detalhe/decreto-legislativo-regional/9-1993-389633 + -1:00 EU %z 1992 Dec 27 1:00s + 0:00 EU WE%sT 1993 Jun 17 1:00u + -1:00 EU %z + Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal -1:07:36 - FMT 1912 Jan 1 1:00u # Funchal MT # Vanguard section, for zic and other parsers that support %z. -# -1:00 Port %z 1966 Apr 3 2:00 + -1:00 Port %z 1966 Oct 2 2:00s # Rearguard section, for parsers lacking %z; see ziguard.awk. - -1:00 Port -01/+00 1942 Apr 25 22:00s - -1:00 Port +01 1942 Aug 15 22:00s - -1:00 Port -01/+00 1943 Apr 17 22:00s - -1:00 Port +01 1943 Aug 28 22:00s - -1:00 Port -01/+00 1944 Apr 22 22:00s - -1:00 Port +01 1944 Aug 26 22:00s - -1:00 Port -01/+00 1945 Apr 21 22:00s - -1:00 Port +01 1945 Aug 25 22:00s - -1:00 Port -01/+00 1966 Apr 3 2:00 +# -1:00 Port -01/+00 1942 Apr 25 22:00s +# -1:00 Port +01 1942 Aug 15 22:00s +# -1:00 Port -01/+00 1943 Apr 17 22:00s +# -1:00 Port +01 1943 Aug 28 22:00s +# -1:00 Port -01/+00 1944 Apr 22 22:00s +# -1:00 Port +01 1944 Aug 26 22:00s +# -1:00 Port -01/+00 1945 Apr 21 22:00s +# -1:00 Port +01 1945 Aug 25 22:00s +# -1:00 Port -01/+00 1966 Oct 2 2:00s # End of rearguard section. - 0:00 Port WE%sT 1983 Sep 25 1:00s +# +# From Tim Parenti (2024-07-01): +# Decreto Regional 5/82/M, published 1982-04-03, established DST transitions at +# 0:00u, which for Madeira is equivalent to the mainland's rules (0:00s) at the +# time. It came into effect the day following its publication, Sunday +# 1982-04-04, thus resuming Madeira's DST practice about a week later than the +# mainland and the Azores. +# https://dre.pt/dr/detalhe/decreto-regional/5-1982-608273 +# +# Decreto Legislativo Regional 18/86/M, published 1986-10-01, adopted EU-style +# rules (1:00u) and entered into immediate force after being signed on +# 1986-07-31. +# https://dre.pt/dr/detalhe/decreto-legislativo-regional/18-1986-221705 + 0:00 - WET 1982 Apr 4 + 0:00 Port WE%sT 1986 Jul 31 0:00 EU WE%sT # Romania @@ -2433,7 +2619,7 @@ 2:00 Poland EE%sT 1946 Apr 7 3:00 Russia MSK/MSD 1989 Mar 26 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s - 3:00 - +03 2014 Oct 26 2:00s + 3:00 - %z 2014 Oct 26 2:00s 2:00 - EET @@ -2683,14 +2869,14 @@ # http://publication.pravo.gov.ru/Document/View/0001201602150056 Zone Europe/Astrakhan 3:12:12 - LMT 1924 May - 3:00 - +03 1930 Jun 21 - 4:00 Russia +04/+05 1989 Mar 26 2:00s - 3:00 Russia +03/+04 1991 Mar 31 2:00s - 4:00 - +04 1992 Mar 29 2:00s - 3:00 Russia +03/+04 2011 Mar 27 2:00s - 4:00 - +04 2014 Oct 26 2:00s - 3:00 - +03 2016 Mar 27 2:00s - 4:00 - +04 + 3:00 - %z 1930 Jun 21 + 4:00 Russia %z 1989 Mar 26 2:00s + 3:00 Russia %z 1991 Mar 31 2:00s + 4:00 - %z 1992 Mar 29 2:00s + 3:00 Russia %z 2011 Mar 27 2:00s + 4:00 - %z 2014 Oct 26 2:00s + 3:00 - %z 2016 Mar 27 2:00s + 4:00 - %z # From Paul Eggert (2016-11-11): # Europe/Volgograd covers: @@ -2720,15 +2906,15 @@ # http://publication.pravo.gov.ru/Document/View/0001202012220002 Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 - 3:00 - +03 1930 Jun 21 - 4:00 - +04 1961 Nov 11 - 4:00 Russia +04/+05 1988 Mar 27 2:00s + 3:00 - %z 1930 Jun 21 + 4:00 - %z 1961 Nov 11 + 4:00 Russia %z 1988 Mar 27 2:00s 3:00 Russia MSK/MSD 1991 Mar 31 2:00s - 4:00 - +04 1992 Mar 29 2:00s + 4:00 - %z 1992 Mar 29 2:00s 3:00 Russia MSK/MSD 2011 Mar 27 2:00s 4:00 - MSK 2014 Oct 26 2:00s 3:00 - MSK 2018 Oct 28 2:00s - 4:00 - +04 2020 Dec 27 2:00s + 4:00 - %z 2020 Dec 27 2:00s 3:00 - MSK # From Paul Eggert (2016-11-11): @@ -2743,14 +2929,14 @@ # http://publication.pravo.gov.ru/Document/View/0001201611220031 Zone Europe/Saratov 3:04:18 - LMT 1919 Jul 1 0:00u - 3:00 - +03 1930 Jun 21 - 4:00 Russia +04/+05 1988 Mar 27 2:00s - 3:00 Russia +03/+04 1991 Mar 31 2:00s - 4:00 - +04 1992 Mar 29 2:00s - 3:00 Russia +03/+04 2011 Mar 27 2:00s - 4:00 - +04 2014 Oct 26 2:00s - 3:00 - +03 2016 Dec 4 2:00s - 4:00 - +04 + 3:00 - %z 1930 Jun 21 + 4:00 Russia %z 1988 Mar 27 2:00s + 3:00 Russia %z 1991 Mar 31 2:00s + 4:00 - %z 1992 Mar 29 2:00s + 3:00 Russia %z 2011 Mar 27 2:00s + 4:00 - %z 2014 Oct 26 2:00s + 3:00 - %z 2016 Dec 4 2:00s + 4:00 - %z # From Paul Eggert (2016-03-18): # Europe/Kirov covers: @@ -2758,10 +2944,10 @@ # The 1989 transition is from USSR act No. 227 (1989-03-14). # Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0:00u - 3:00 - +03 1930 Jun 21 - 4:00 Russia +04/+05 1989 Mar 26 2:00s + 3:00 - %z 1930 Jun 21 + 4:00 Russia %z 1989 Mar 26 2:00s 3:00 Russia MSK/MSD 1991 Mar 31 2:00s - 4:00 - +04 1992 Mar 29 2:00s + 4:00 - %z 1992 Mar 29 2:00s 3:00 Russia MSK/MSD 2011 Mar 27 2:00s 4:00 - MSK 2014 Oct 26 2:00s 3:00 - MSK @@ -2776,15 +2962,15 @@ # The 1989 transition is from USSR act No. 227 (1989-03-14). Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 0:00u - 3:00 - +03 1930 Jun 21 - 4:00 - +04 1935 Jan 27 - 4:00 Russia +04/+05 1989 Mar 26 2:00s - 3:00 Russia +03/+04 1991 Mar 31 2:00s - 2:00 Russia +02/+03 1991 Sep 29 2:00s - 3:00 - +03 1991 Oct 20 3:00 - 4:00 Russia +04/+05 2010 Mar 28 2:00s - 3:00 Russia +03/+04 2011 Mar 27 2:00s - 4:00 - +04 + 3:00 - %z 1930 Jun 21 + 4:00 - %z 1935 Jan 27 + 4:00 Russia %z 1989 Mar 26 2:00s + 3:00 Russia %z 1991 Mar 31 2:00s + 2:00 Russia %z 1991 Sep 29 2:00s + 3:00 - %z 1991 Oct 20 3:00 + 4:00 Russia %z 2010 Mar 28 2:00s + 3:00 Russia %z 2011 Mar 27 2:00s + 4:00 - %z # From Paul Eggert (2016-03-18): # Europe/Ulyanovsk covers: @@ -2800,14 +2986,14 @@ # http://publication.pravo.gov.ru/Document/View/0001201603090051 Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0:00u - 3:00 - +03 1930 Jun 21 - 4:00 Russia +04/+05 1989 Mar 26 2:00s - 3:00 Russia +03/+04 1991 Mar 31 2:00s - 2:00 Russia +02/+03 1992 Jan 19 2:00s - 3:00 Russia +03/+04 2011 Mar 27 2:00s - 4:00 - +04 2014 Oct 26 2:00s - 3:00 - +03 2016 Mar 27 2:00s - 4:00 - +04 + 3:00 - %z 1930 Jun 21 + 4:00 Russia %z 1989 Mar 26 2:00s + 3:00 Russia %z 1991 Mar 31 2:00s + 2:00 Russia %z 1992 Jan 19 2:00s + 3:00 Russia %z 2011 Mar 27 2:00s + 4:00 - %z 2014 Oct 26 2:00s + 3:00 - %z 2016 Mar 27 2:00s + 4:00 - %z # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): # Asia/Yekaterinburg covers... @@ -2832,12 +3018,12 @@ #STDOFF 4:02:32.9 Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3 3:45:05 - PMT 1919 Jul 15 4:00 - 4:00 - +04 1930 Jun 21 - 5:00 Russia +05/+06 1991 Mar 31 2:00s - 4:00 Russia +04/+05 1992 Jan 19 2:00s - 5:00 Russia +05/+06 2011 Mar 27 2:00s - 6:00 - +06 2014 Oct 26 2:00s - 5:00 - +05 + 4:00 - %z 1930 Jun 21 + 5:00 Russia %z 1991 Mar 31 2:00s + 4:00 Russia %z 1992 Jan 19 2:00s + 5:00 Russia %z 2011 Mar 27 2:00s + 6:00 - %z 2014 Oct 26 2:00s + 5:00 - %z # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): @@ -2847,12 +3033,12 @@ # Byalokoz 1919 says Omsk was 4:53:30. Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14 - 5:00 - +05 1930 Jun 21 - 6:00 Russia +06/+07 1991 Mar 31 2:00s - 5:00 Russia +05/+06 1992 Jan 19 2:00s - 6:00 Russia +06/+07 2011 Mar 27 2:00s - 7:00 - +07 2014 Oct 26 2:00s - 6:00 - +06 + 5:00 - %z 1930 Jun 21 + 6:00 Russia %z 1991 Mar 31 2:00s + 5:00 Russia %z 1992 Jan 19 2:00s + 6:00 Russia %z 2011 Mar 27 2:00s + 7:00 - %z 2014 Oct 26 2:00s + 6:00 - %z # From Paul Eggert (2016-02-22): # Asia/Barnaul covers: @@ -2885,14 +3071,14 @@ # http://publication.pravo.gov.ru/Document/View/0001201603090038 Zone Asia/Barnaul 5:35:00 - LMT 1919 Dec 10 - 6:00 - +06 1930 Jun 21 - 7:00 Russia +07/+08 1991 Mar 31 2:00s - 6:00 Russia +06/+07 1992 Jan 19 2:00s - 7:00 Russia +07/+08 1995 May 28 - 6:00 Russia +06/+07 2011 Mar 27 2:00s - 7:00 - +07 2014 Oct 26 2:00s - 6:00 - +06 2016 Mar 27 2:00s - 7:00 - +07 + 6:00 - %z 1930 Jun 21 + 7:00 Russia %z 1991 Mar 31 2:00s + 6:00 Russia %z 1992 Jan 19 2:00s + 7:00 Russia %z 1995 May 28 + 6:00 Russia %z 2011 Mar 27 2:00s + 7:00 - %z 2014 Oct 26 2:00s + 6:00 - %z 2016 Mar 27 2:00s + 7:00 - %z # From Paul Eggert (2016-03-18): # Asia/Novosibirsk covers: @@ -2906,14 +3092,14 @@ # http://publication.pravo.gov.ru/Document/View/0001201607040064 Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00 - 6:00 - +06 1930 Jun 21 - 7:00 Russia +07/+08 1991 Mar 31 2:00s - 6:00 Russia +06/+07 1992 Jan 19 2:00s - 7:00 Russia +07/+08 1993 May 23 # say Shanks & P. - 6:00 Russia +06/+07 2011 Mar 27 2:00s - 7:00 - +07 2014 Oct 26 2:00s - 6:00 - +06 2016 Jul 24 2:00s - 7:00 - +07 + 6:00 - %z 1930 Jun 21 + 7:00 Russia %z 1991 Mar 31 2:00s + 6:00 Russia %z 1992 Jan 19 2:00s + 7:00 Russia %z 1993 May 23 # say Shanks & P. + 6:00 Russia %z 2011 Mar 27 2:00s + 7:00 - %z 2014 Oct 26 2:00s + 6:00 - %z 2016 Jul 24 2:00s + 7:00 - %z # From Paul Eggert (2016-03-18): # Asia/Tomsk covers: @@ -2958,14 +3144,14 @@ # http://publication.pravo.gov.ru/Document/View/0001201604260048 Zone Asia/Tomsk 5:39:51 - LMT 1919 Dec 22 - 6:00 - +06 1930 Jun 21 - 7:00 Russia +07/+08 1991 Mar 31 2:00s - 6:00 Russia +06/+07 1992 Jan 19 2:00s - 7:00 Russia +07/+08 2002 May 1 3:00 - 6:00 Russia +06/+07 2011 Mar 27 2:00s - 7:00 - +07 2014 Oct 26 2:00s - 6:00 - +06 2016 May 29 2:00s - 7:00 - +07 + 6:00 - %z 1930 Jun 21 + 7:00 Russia %z 1991 Mar 31 2:00s + 6:00 Russia %z 1992 Jan 19 2:00s + 7:00 Russia %z 2002 May 1 3:00 + 6:00 Russia %z 2011 Mar 27 2:00s + 7:00 - %z 2014 Oct 26 2:00s + 6:00 - %z 2016 May 29 2:00s + 7:00 - %z # From Tim Parenti (2014-07-03): @@ -2996,12 +3182,12 @@ # realigning itself with KRAT. Zone Asia/Novokuznetsk 5:48:48 - LMT 1924 May 1 - 6:00 - +06 1930 Jun 21 - 7:00 Russia +07/+08 1991 Mar 31 2:00s - 6:00 Russia +06/+07 1992 Jan 19 2:00s - 7:00 Russia +07/+08 2010 Mar 28 2:00s - 6:00 Russia +06/+07 2011 Mar 27 2:00s - 7:00 - +07 + 6:00 - %z 1930 Jun 21 + 7:00 Russia %z 1991 Mar 31 2:00s + 6:00 Russia %z 1992 Jan 19 2:00s + 7:00 Russia %z 2010 Mar 28 2:00s + 6:00 Russia %z 2011 Mar 27 2:00s + 7:00 - %z # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): # Asia/Krasnoyarsk covers... @@ -3015,12 +3201,12 @@ # Byalokoz 1919 says Krasnoyarsk was 6:11:26. Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6 - 6:00 - +06 1930 Jun 21 - 7:00 Russia +07/+08 1991 Mar 31 2:00s - 6:00 Russia +06/+07 1992 Jan 19 2:00s - 7:00 Russia +07/+08 2011 Mar 27 2:00s - 8:00 - +08 2014 Oct 26 2:00s - 7:00 - +07 + 6:00 - %z 1930 Jun 21 + 7:00 Russia %z 1991 Mar 31 2:00s + 6:00 Russia %z 1992 Jan 19 2:00s + 7:00 Russia %z 2011 Mar 27 2:00s + 8:00 - %z 2014 Oct 26 2:00s + 7:00 - %z # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): @@ -3037,12 +3223,12 @@ Zone Asia/Irkutsk 6:57:05 - LMT 1880 6:57:05 - IMT 1920 Jan 25 # Irkutsk Mean Time - 7:00 - +07 1930 Jun 21 - 8:00 Russia +08/+09 1991 Mar 31 2:00s - 7:00 Russia +07/+08 1992 Jan 19 2:00s - 8:00 Russia +08/+09 2011 Mar 27 2:00s - 9:00 - +09 2014 Oct 26 2:00s - 8:00 - +08 + 7:00 - %z 1930 Jun 21 + 8:00 Russia %z 1991 Mar 31 2:00s + 7:00 Russia %z 1992 Jan 19 2:00s + 8:00 Russia %z 2011 Mar 27 2:00s + 9:00 - %z 2014 Oct 26 2:00s + 8:00 - %z # From Tim Parenti (2014-07-06): @@ -3059,13 +3245,13 @@ # http://publication.pravo.gov.ru/Document/View/0001201512300107 Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15 - 8:00 - +08 1930 Jun 21 - 9:00 Russia +09/+10 1991 Mar 31 2:00s - 8:00 Russia +08/+09 1992 Jan 19 2:00s - 9:00 Russia +09/+10 2011 Mar 27 2:00s - 10:00 - +10 2014 Oct 26 2:00s - 8:00 - +08 2016 Mar 27 2:00 - 9:00 - +09 + 8:00 - %z 1930 Jun 21 + 9:00 Russia %z 1991 Mar 31 2:00s + 8:00 Russia %z 1992 Jan 19 2:00s + 9:00 Russia %z 2011 Mar 27 2:00s + 10:00 - %z 2014 Oct 26 2:00s + 8:00 - %z 2016 Mar 27 2:00 + 9:00 - %z # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): @@ -3105,12 +3291,12 @@ # Byalokoz 1919 says Yakutsk was 8:38:58. Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15 - 8:00 - +08 1930 Jun 21 - 9:00 Russia +09/+10 1991 Mar 31 2:00s - 8:00 Russia +08/+09 1992 Jan 19 2:00s - 9:00 Russia +09/+10 2011 Mar 27 2:00s - 10:00 - +10 2014 Oct 26 2:00s - 9:00 - +09 + 8:00 - %z 1930 Jun 21 + 9:00 Russia %z 1991 Mar 31 2:00s + 8:00 Russia %z 1992 Jan 19 2:00s + 9:00 Russia %z 2011 Mar 27 2:00s + 10:00 - %z 2014 Oct 26 2:00s + 9:00 - %z # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): @@ -3128,12 +3314,12 @@ # Go with Byalokoz. Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15 - 9:00 - +09 1930 Jun 21 - 10:00 Russia +10/+11 1991 Mar 31 2:00s - 9:00 Russia +09/+10 1992 Jan 19 2:00s - 10:00 Russia +10/+11 2011 Mar 27 2:00s - 11:00 - +11 2014 Oct 26 2:00s - 10:00 - +10 + 9:00 - %z 1930 Jun 21 + 10:00 Russia %z 1991 Mar 31 2:00s + 9:00 Russia %z 1992 Jan 19 2:00s + 10:00 Russia %z 2011 Mar 27 2:00s + 11:00 - %z 2014 Oct 26 2:00s + 10:00 - %z # From Tim Parenti (2014-07-03): @@ -3151,14 +3337,14 @@ # This transition is no doubt wrong, but we have no better info. Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15 - 8:00 - +08 1930 Jun 21 - 9:00 Russia +09/+10 1991 Mar 31 2:00s - 8:00 Russia +08/+09 1992 Jan 19 2:00s - 9:00 Russia +09/+10 2004 - 10:00 Russia +10/+11 2011 Mar 27 2:00s - 11:00 - +11 2011 Sep 13 0:00s # Decree 725? - 10:00 - +10 2014 Oct 26 2:00s - 9:00 - +09 + 8:00 - %z 1930 Jun 21 + 9:00 Russia %z 1991 Mar 31 2:00s + 8:00 Russia %z 1992 Jan 19 2:00s + 9:00 Russia %z 2004 + 10:00 Russia %z 2011 Mar 27 2:00s + 11:00 - %z 2011 Sep 13 0:00s # Decree 725? + 10:00 - %z 2014 Oct 26 2:00s + 9:00 - %z # From Tim Parenti (2014-07-03): @@ -3174,14 +3360,14 @@ # The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long. Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23 - 9:00 - +09 1945 Aug 25 - 11:00 Russia +11/+12 1991 Mar 31 2:00s # Sakhalin T - 10:00 Russia +10/+11 1992 Jan 19 2:00s - 11:00 Russia +11/+12 1997 Mar lastSun 2:00s - 10:00 Russia +10/+11 2011 Mar 27 2:00s - 11:00 - +11 2014 Oct 26 2:00s - 10:00 - +10 2016 Mar 27 2:00s - 11:00 - +11 + 9:00 - %z 1945 Aug 25 + 11:00 Russia %z 1991 Mar 31 2:00s # Sakhalin T + 10:00 Russia %z 1992 Jan 19 2:00s + 11:00 Russia %z 1997 Mar lastSun 2:00s + 10:00 Russia %z 2011 Mar 27 2:00s + 11:00 - %z 2014 Oct 26 2:00s + 10:00 - %z 2016 Mar 27 2:00s + 11:00 - %z # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): @@ -3204,13 +3390,13 @@ # http://publication.pravo.gov.ru/Document/View/0001201604050038 Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 - 10:00 - +10 1930 Jun 21 # Magadan Time - 11:00 Russia +11/+12 1991 Mar 31 2:00s - 10:00 Russia +10/+11 1992 Jan 19 2:00s - 11:00 Russia +11/+12 2011 Mar 27 2:00s - 12:00 - +12 2014 Oct 26 2:00s - 10:00 - +10 2016 Apr 24 2:00s - 11:00 - +11 + 10:00 - %z 1930 Jun 21 # Magadan Time + 11:00 Russia %z 1991 Mar 31 2:00s + 10:00 Russia %z 1992 Jan 19 2:00s + 11:00 Russia %z 2011 Mar 27 2:00s + 12:00 - %z 2014 Oct 26 2:00s + 10:00 - %z 2016 Apr 24 2:00s + 11:00 - %z # From Tim Parenti (2014-07-06): @@ -3255,12 +3441,12 @@ # Go with Srednekolymsk. Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 - 10:00 - +10 1930 Jun 21 - 11:00 Russia +11/+12 1991 Mar 31 2:00s - 10:00 Russia +10/+11 1992 Jan 19 2:00s - 11:00 Russia +11/+12 2011 Mar 27 2:00s - 12:00 - +12 2014 Oct 26 2:00s - 11:00 - +11 + 10:00 - %z 1930 Jun 21 + 11:00 Russia %z 1991 Mar 31 2:00s + 10:00 Russia %z 1992 Jan 19 2:00s + 11:00 Russia %z 2011 Mar 27 2:00s + 12:00 - %z 2014 Oct 26 2:00s + 11:00 - %z # From Tim Parenti (2014-07-03): @@ -3278,14 +3464,14 @@ # UTC+12 since at least then, too. Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15 - 8:00 - +08 1930 Jun 21 - 9:00 Russia +09/+10 1981 Apr 1 - 11:00 Russia +11/+12 1991 Mar 31 2:00s - 10:00 Russia +10/+11 1992 Jan 19 2:00s - 11:00 Russia +11/+12 2011 Mar 27 2:00s - 12:00 - +12 2011 Sep 13 0:00s # Decree 725? - 11:00 - +11 2014 Oct 26 2:00s - 10:00 - +10 + 8:00 - %z 1930 Jun 21 + 9:00 Russia %z 1981 Apr 1 + 11:00 Russia %z 1991 Mar 31 2:00s + 10:00 Russia %z 1992 Jan 19 2:00s + 11:00 Russia %z 2011 Mar 27 2:00s + 12:00 - %z 2011 Sep 13 0:00s # Decree 725? + 11:00 - %z 2014 Oct 26 2:00s + 10:00 - %z # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): @@ -3298,12 +3484,12 @@ # The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps # Asia/Petropavlovsk-Kamchatsky, but these are too long. Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10 - 11:00 - +11 1930 Jun 21 - 12:00 Russia +12/+13 1991 Mar 31 2:00s - 11:00 Russia +11/+12 1992 Jan 19 2:00s - 12:00 Russia +12/+13 2010 Mar 28 2:00s - 11:00 Russia +11/+12 2011 Mar 27 2:00s - 12:00 - +12 + 11:00 - %z 1930 Jun 21 + 12:00 Russia %z 1991 Mar 31 2:00s + 11:00 Russia %z 1992 Jan 19 2:00s + 12:00 Russia %z 2010 Mar 28 2:00s + 11:00 Russia %z 2011 Mar 27 2:00s + 12:00 - %z # From Tim Parenti (2014-07-03): @@ -3311,13 +3497,13 @@ # 87 RU-CHU Chukotka Autonomous Okrug Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 - 12:00 - +12 1930 Jun 21 - 13:00 Russia +13/+14 1982 Apr 1 0:00s - 12:00 Russia +12/+13 1991 Mar 31 2:00s - 11:00 Russia +11/+12 1992 Jan 19 2:00s - 12:00 Russia +12/+13 2010 Mar 28 2:00s - 11:00 Russia +11/+12 2011 Mar 27 2:00s - 12:00 - +12 + 12:00 - %z 1930 Jun 21 + 13:00 Russia %z 1982 Apr 1 0:00s + 12:00 Russia %z 1991 Mar 31 2:00s + 11:00 Russia %z 1992 Jan 19 2:00s + 12:00 Russia %z 2010 Mar 28 2:00s + 11:00 Russia %z 2011 Mar 27 2:00s + 12:00 - %z # Bosnia & Herzegovina # Croatia @@ -3436,7 +3622,7 @@ 1:00 - CET 1986 1:00 EU CE%sT Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. - -1:00 - -01 1946 Sep 30 1:00 + -1:00 - %z 1946 Sep 30 1:00 0:00 - WET 1980 Apr 6 0:00s 0:00 1:00 WEST 1980 Sep 28 1:00u 0:00 EU WE%sT @@ -3517,8 +3703,8 @@ # but if no one is present after 11 at night, could be postponed until one # hour before the beginning of service. -# From Paul Eggert (2013-09-11): -# Round BMT to the nearest even second, 0:29:46. +# From Paul Eggert (2024-05-24): +# Express BMT as 0:29:45.500, approximately the same precision 7° 26' 22.50". # # We can find no reliable source for Shanks's assertion that all of Switzerland # except Geneva switched to Bern Mean Time at 00:00 on 1848-09-12. This book: @@ -3557,6 +3743,7 @@ Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. + #STDOFF 0:29:45.500 0:29:46 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT @@ -3754,7 +3941,7 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 1:56:56 - IMT 1910 Oct # Istanbul Mean Time? 2:00 Turkey EE%sT 1978 Jun 29 - 3:00 Turkey +03/+04 1984 Nov 1 2:00 + 3:00 Turkey %z 1984 Nov 1 2:00 2:00 Turkey EE%sT 2007 2:00 EU EE%sT 2011 Mar 27 1:00u 2:00 - EET 2011 Mar 28 1:00u @@ -3763,7 +3950,7 @@ 2:00 EU EE%sT 2015 Oct 25 1:00u 2:00 1:00 EEST 2015 Nov 8 1:00u 2:00 EU EE%sT 2016 Sep 7 - 3:00 - +03 + 3:00 - %z # Ukraine # diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/leapseconds openjdk-17-17.0.14+7/make/data/tzdata/leapseconds --- openjdk-17-17.0.13+11/make/data/tzdata/leapseconds 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/leapseconds 2025-01-04 20:25:18.000000000 +0000 @@ -92,11 +92,11 @@ # Any additional leap seconds will come after this. # This Expires line is commented out for now, # so that pre-2020a zic implementations do not reject this file. -#Expires 2024 Dec 28 00:00:00 +#Expires 2025 Jun 28 00:00:00 # POSIX timestamps for the data in this file: -#updated 1704708379 (2024-01-08 10:06:19 UTC) -#expires 1735344000 (2024-12-28 00:00:00 UTC) +#updated 1720104763 (2024-07-04 14:52:43 UTC) +#expires 1751068800 (2025-06-28 00:00:00 UTC) # Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat) -# File expires on 28 December 2024 +# File expires on 28 June 2025 diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/northamerica openjdk-17-17.0.14+7/make/data/tzdata/northamerica --- openjdk-17-17.0.13+11/make/data/tzdata/northamerica 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/northamerica 2025-01-04 20:25:18.000000000 +0000 @@ -208,26 +208,6 @@ Rule US 2007 max - Mar Sun>=8 2:00 1:00 D Rule US 2007 max - Nov Sun>=1 2:00 0 S -# From Arthur David Olson, 2005-12-19 -# We generate the files specified below to guard against old files with -# obsolete information being left in the time zone binary directory. -# We limit the list to names that have appeared in previous versions of -# this time zone package. -# We do these as separate Zones rather than as Links to avoid problems if -# a particular place changes whether it observes DST. -# We put these specifications here in the northamerica file both to -# increase the chances that they'll actually get compiled and to -# avoid the need to duplicate the US rules in another file. - -# Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone EST -5:00 - EST -Zone MST -7:00 - MST -Zone HST -10:00 - HST -Zone EST5EDT -5:00 US E%sT -Zone CST6CDT -6:00 US C%sT -Zone MST7MDT -7:00 US M%sT -Zone PST8PDT -8:00 US P%sT - # From U. S. Naval Observatory (1989-01-19): # USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON # USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30 @@ -2396,6 +2376,81 @@ # the researchers who prepared the Decrees page failed to find some of # the relevant documents. +# From Heitor David Pinto (2024-08-04): +# In 1931, the decree implementing DST specified that it would take +# effect on 30 April.... +# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=192270&pagina=2&seccion=1 +# +# In 1981, the decree changing Campeche, Yucatán and Quintana Roo to UTC-5 +# specified that it would enter into force on 26 December 1981 at 2:00.... +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4705667&fecha=23/12/1981&cod_diario=202796 +# +# In 1982, the decree returning Campeche and Yucatán to UTC-6 specified that +# it would enter into force on 2 November 1982 at 2:00.... +# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=205689&pagina=3&seccion=0 +# +# Quintana Roo changed to UTC-6 on 4 January 1983 at 0:00, and again +# to UTC-5 on 26 October 1997 at 2:00.... +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4787355&fecha=28/12/1982&cod_diario=206112 +# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=209559&pagina=15&seccion=0 +# +# Durango, Coahuila, Nuevo León and Tamaulipas were set to UTC-7 on 1 January +# 1922, and changed to UTC-6 on 10 June 1927. Then Durango, Coahuila and +# Nuevo León (but not Tamaulipas) returned to UTC-7 on 15 November 1930, +# observed DST in 1931, and changed again to UTC-6 on 1 April 1932.... +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4441846&fecha=29/12/1921&cod_diario=187468 +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4541520&fecha=09/06/1927&cod_diario=193920 +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4491963&fecha=15/11/1930&cod_diario=190835 +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4418437&fecha=21/01/1932&cod_diario=185588 +# +# ... the ... 10 June 1927 ... decree only said 10 June 1927, without +# specifying a time, so I suppose that it should be considered at 0:00. +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4541520&fecha=09/06/1927&cod_diario=193920 +# +# In 1942, the decree changing Baja California, Baja California Sur, Sonora, +# Sinaloa and Nayarit to UTC-7 was published on 24 April, but it said that it +# would apply from 1 April, so it's unclear when the change actually +# occurred. The database currently shows 24 April 1942. +# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=192203&pagina=2&seccion=1 +# +# Baja California Sur, Sonora, Sinaloa and Nayarit never used UTC-8. The ... +# 14 January 1949 ... change [to UTC-8] only occurred in Baja California. +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4515613&fecha=13/01/1949&cod_diario=192309 +# +# In 1945, the decree changing Baja California to UTC-8 specified that it +# would take effect on the third day from its publication. +# It was published on 12 November, so it would take effect on 15 November.... +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4555049&fecha=12/11/1945&cod_diario=194763 +# +# In 1948, the decree changing Baja California to UTC-7 specified that it +# would take effect on "this date". The decree was made on 13 March, +# but published on 5 April, so it's unclear when the change actually occurred. +# The database currently shows 5 April 1948. +# https://www.dof.gob.mx/nota_to_imagen_fs.php?cod_diario=188624&pagina=2&seccion=0 +# +# In 1949, the decree changing Baja California to UTC-8 was published on 13 +# January, but it said that it would apply from 1 January, so it's unclear when +# the change actually occurred. The database currently shows 14 January 1949. +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4515613&fecha=13/01/1949&cod_diario=192309 +# +# Baja California also observed UTC-7 from 1 May to 24 September 1950, +# from 29 April to 30 September 1951 at 2:00, +# and from 27 April to 28 September 1952 at 2:00.... +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4600403&fecha=29/04/1950&cod_diario=197505 +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4623553&fecha=23/09/1950&cod_diario=198805 +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4469444&fecha=27/04/1951&cod_diario=189317 +# https://www.dof.gob.mx/nota_to_imagen_fs.php?codnota=4533868&fecha=10/03/1952&cod_diario=193465 +# +# All changes in Baja California from 1948 to 1952 match those in California, +# on the same dates or with a difference of one day. +# So it may be easier to implement these changes as DST with rule CA +# during this whole period. +# +# From Paul Eggert (2024-08-18): +# For now, maintain the slightly-different history for Baja California, +# as we have no information on whether 1948/1952 clocks in Tijuana followed +# the decrees or followed San Diego. + # From Alan Perry (1996-02-15): # A guy from our Mexico subsidiary finally found the Presidential Decree # outlining the timezone changes in Mexico. @@ -2599,7 +2654,7 @@ # http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -Rule Mexico 1931 only - May 1 23:00 1:00 D +Rule Mexico 1931 only - April 30 0:00 1:00 D Rule Mexico 1931 only - Oct 1 0:00 0 S Rule Mexico 1939 only - Feb 5 0:00 1:00 D Rule Mexico 1939 only - Jun 25 0:00 0 S @@ -2618,14 +2673,16 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] # Quintana Roo; represented by Cancún Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1981 Dec 23 + -6:00 - CST 1981 Dec 26 2:00 + -5:00 - EST 1983 Jan 4 0:00 + -6:00 Mexico C%sT 1997 Oct 26 2:00 -5:00 Mexico E%sT 1998 Aug 2 2:00 -6:00 Mexico C%sT 2015 Feb 1 2:00 -5:00 - EST # Campeche, Yucatán; represented by Mérida Zone America/Merida -5:58:28 - LMT 1922 Jan 1 6:00u - -6:00 - CST 1981 Dec 23 - -5:00 - EST 1982 Dec 2 + -6:00 - CST 1981 Dec 26 2:00 + -5:00 - EST 1982 Nov 2 2:00 -6:00 Mexico C%sT # Coahuila, Nuevo León, Tamaulipas (near US border) # This includes the following municipios: @@ -2642,12 +2699,15 @@ -6:00 US C%sT # Durango; Coahuila, Nuevo León, Tamaulipas (away from US border) Zone America/Monterrey -6:41:16 - LMT 1922 Jan 1 6:00u + -7:00 - MST 1927 Jun 10 + -6:00 - CST 1930 Nov 15 + -7:00 Mexico M%sT 1932 Apr 1 -6:00 - CST 1988 -6:00 US C%sT 1989 -6:00 Mexico C%sT # Central Mexico Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 + -7:00 - MST 1927 Jun 10 -6:00 - CST 1930 Nov 15 -7:00 Mexico M%sT 1932 Apr 1 -6:00 Mexico C%sT 2001 Sep 30 2:00 @@ -2658,7 +2718,7 @@ # Práxedis G Guerrero. # http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf Zone America/Ciudad_Juarez -7:05:56 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 + -7:00 - MST 1927 Jun 10 -6:00 - CST 1930 Nov 15 -7:00 Mexico M%sT 1932 Apr 1 -6:00 - CST 1996 @@ -2673,7 +2733,7 @@ # Benavides. # http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 + -7:00 - MST 1927 Jun 10 -6:00 - CST 1930 Nov 15 -7:00 Mexico M%sT 1932 Apr 1 -6:00 - CST 1996 @@ -2685,7 +2745,7 @@ -6:00 US C%sT # Chihuahua (away from US border) Zone America/Chihuahua -7:04:20 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 + -7:00 - MST 1927 Jun 10 -6:00 - CST 1930 Nov 15 -7:00 Mexico M%sT 1932 Apr 1 -6:00 - CST 1996 @@ -2695,23 +2755,21 @@ -6:00 - CST # Sonora Zone America/Hermosillo -7:23:52 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 + -7:00 - MST 1927 Jun 10 -6:00 - CST 1930 Nov 15 -7:00 Mexico M%sT 1932 Apr 1 -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 + -7:00 - MST 1996 -7:00 Mexico M%sT 1999 -7:00 - MST # Baja California Sur, Nayarit (except Bahía de Banderas), Sinaloa Zone America/Mazatlan -7:05:40 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 + -7:00 - MST 1927 Jun 10 -6:00 - CST 1930 Nov 15 -7:00 Mexico M%sT 1932 Apr 1 -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 + -7:00 - MST 1970 -7:00 Mexico M%sT # Bahía de Banderas @@ -2744,27 +2802,32 @@ # Use "Bahia_Banderas" to keep the name to fourteen characters. Zone America/Bahia_Banderas -7:01:00 - LMT 1922 Jan 1 7:00u - -7:00 - MST 1927 Jun 10 23:00 + -7:00 - MST 1927 Jun 10 -6:00 - CST 1930 Nov 15 -7:00 Mexico M%sT 1932 Apr 1 -6:00 - CST 1942 Apr 24 - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1970 + -7:00 - MST 1970 -7:00 Mexico M%sT 2010 Apr 4 2:00 -6:00 Mexico C%sT # Baja California Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u -7:00 - MST 1924 - -8:00 - PST 1927 Jun 10 23:00 + -8:00 - PST 1927 Jun 10 -7:00 - MST 1930 Nov 15 -8:00 - PST 1931 Apr 1 -8:00 1:00 PDT 1931 Sep 30 -8:00 - PST 1942 Apr 24 -8:00 1:00 PWT 1945 Aug 14 23:00u - -8:00 1:00 PPT 1945 Nov 12 # Peace + -8:00 1:00 PPT 1945 Nov 15 # Peace -8:00 - PST 1948 Apr 5 -8:00 1:00 PDT 1949 Jan 14 + -8:00 - PST 1950 May 1 + -8:00 1:00 PDT 1950 Sep 24 + -8:00 - PST 1951 Apr 29 2:00 + -8:00 1:00 PDT 1951 Sep 30 2:00 + -8:00 - PST 1952 Apr 27 2:00 + -8:00 1:00 PDT 1952 Sep 28 2:00 -8:00 - PST 1954 -8:00 CA P%sT 1961 -8:00 - PST 1976 @@ -3573,8 +3636,8 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Miquelon -3:44:40 - LMT 1911 Jun 15 # St Pierre -4:00 - AST 1980 May - -3:00 - -03 1987 - -3:00 Canada -03/-02 + -3:00 - %z 1987 + -3:00 Canada %z # Turks and Caicos # diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/southamerica openjdk-17-17.0.14+7/make/data/tzdata/southamerica --- openjdk-17-17.0.13+11/make/data/tzdata/southamerica 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/southamerica 2025-01-04 20:25:18.000000000 +0000 @@ -425,11 +425,11 @@ Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May # Córdoba Mean Time - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 Arg -03/-02 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 Arg %z # # Córdoba (CB), Santa Fe (SF), Entre Ríos (ER), Corrientes (CN), Misiones (MN), # Chaco (CC), Formosa (FM), Santiago del Estero (SE) @@ -444,120 +444,120 @@ #STDOFF -4:16:48.25 Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1991 Mar 3 - -4:00 - -04 1991 Oct 20 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 Arg -03/-02 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1991 Mar 3 + -4:00 - %z 1991 Oct 20 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 Arg %z # # Salta (SA), La Pampa (LP), Neuquén (NQ), Rio Negro (RN) Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1991 Mar 3 - -4:00 - -04 1991 Oct 20 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1991 Mar 3 + -4:00 - %z 1991 Oct 20 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 Arg %z 2008 Oct 18 + -3:00 - %z # # Tucumán (TM) Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1991 Mar 3 - -4:00 - -04 1991 Oct 20 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 - -03 2004 Jun 1 - -4:00 - -04 2004 Jun 13 - -3:00 Arg -03/-02 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1991 Mar 3 + -4:00 - %z 1991 Oct 20 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 - %z 2004 Jun 1 + -4:00 - %z 2004 Jun 13 + -3:00 Arg %z # # La Rioja (LR) Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1991 Mar 1 - -4:00 - -04 1991 May 7 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 - -03 2004 Jun 1 - -4:00 - -04 2004 Jun 20 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1991 Mar 1 + -4:00 - %z 1991 May 7 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 - %z 2004 Jun 1 + -4:00 - %z 2004 Jun 20 + -3:00 Arg %z 2008 Oct 18 + -3:00 - %z # # San Juan (SJ) Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1991 Mar 1 - -4:00 - -04 1991 May 7 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 - -03 2004 May 31 - -4:00 - -04 2004 Jul 25 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1991 Mar 1 + -4:00 - %z 1991 May 7 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 - %z 2004 May 31 + -4:00 - %z 2004 Jul 25 + -3:00 Arg %z 2008 Oct 18 + -3:00 - %z # # Jujuy (JY) Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1990 Mar 4 - -4:00 - -04 1990 Oct 28 - -4:00 1:00 -03 1991 Mar 17 - -4:00 - -04 1991 Oct 6 - -3:00 1:00 -02 1992 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1990 Mar 4 + -4:00 - %z 1990 Oct 28 + -4:00 1:00 %z 1991 Mar 17 + -4:00 - %z 1991 Oct 6 + -3:00 1:00 %z 1992 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 Arg %z 2008 Oct 18 + -3:00 - %z # # Catamarca (CT), Chubut (CH) Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1991 Mar 3 - -4:00 - -04 1991 Oct 20 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 - -03 2004 Jun 1 - -4:00 - -04 2004 Jun 20 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1991 Mar 3 + -4:00 - %z 1991 Oct 20 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 - %z 2004 Jun 1 + -4:00 - %z 2004 Jun 20 + -3:00 Arg %z 2008 Oct 18 + -3:00 - %z # # Mendoza (MZ) Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1990 Mar 4 - -4:00 - -04 1990 Oct 15 - -4:00 1:00 -03 1991 Mar 1 - -4:00 - -04 1991 Oct 15 - -4:00 1:00 -03 1992 Mar 1 - -4:00 - -04 1992 Oct 18 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 - -03 2004 May 23 - -4:00 - -04 2004 Sep 26 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1990 Mar 4 + -4:00 - %z 1990 Oct 15 + -4:00 1:00 %z 1991 Mar 1 + -4:00 - %z 1991 Oct 15 + -4:00 1:00 %z 1992 Mar 1 + -4:00 - %z 1992 Oct 18 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 - %z 2004 May 23 + -4:00 - %z 2004 Sep 26 + -3:00 Arg %z 2008 Oct 18 + -3:00 - %z # # San Luis (SL) @@ -567,53 +567,53 @@ Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1990 - -3:00 1:00 -02 1990 Mar 14 - -4:00 - -04 1990 Oct 15 - -4:00 1:00 -03 1991 Mar 1 - -4:00 - -04 1991 Jun 1 - -3:00 - -03 1999 Oct 3 - -4:00 1:00 -03 2000 Mar 3 - -3:00 - -03 2004 May 31 - -4:00 - -04 2004 Jul 25 - -3:00 Arg -03/-02 2008 Jan 21 - -4:00 SanLuis -04/-03 2009 Oct 11 - -3:00 - -03 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1990 + -3:00 1:00 %z 1990 Mar 14 + -4:00 - %z 1990 Oct 15 + -4:00 1:00 %z 1991 Mar 1 + -4:00 - %z 1991 Jun 1 + -3:00 - %z 1999 Oct 3 + -4:00 1:00 %z 2000 Mar 3 + -3:00 - %z 2004 May 31 + -4:00 - %z 2004 Jul 25 + -3:00 Arg %z 2008 Jan 21 + -4:00 SanLuis %z 2009 Oct 11 + -3:00 - %z # # Santa Cruz (SC) Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 - -03 2004 Jun 1 - -4:00 - -04 2004 Jun 20 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 - %z 2004 Jun 1 + -4:00 - %z 2004 Jun 20 + -3:00 Arg %z 2008 Oct 18 + -3:00 - %z # # Tierra del Fuego, Antártida e Islas del Atlántico Sur (TF) Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31 #STDOFF -4:16:48.25 -4:16:48 - CMT 1920 May - -4:00 - -04 1930 Dec - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1999 Oct 3 - -4:00 Arg -04/-03 2000 Mar 3 - -3:00 - -03 2004 May 30 - -4:00 - -04 2004 Jun 20 - -3:00 Arg -03/-02 2008 Oct 18 - -3:00 - -03 + -4:00 - %z 1930 Dec + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1999 Oct 3 + -4:00 Arg %z 2000 Mar 3 + -3:00 - %z 2004 May 30 + -4:00 - %z 2004 Jun 20 + -3:00 Arg %z 2008 Oct 18 + -3:00 - %z # Bolivia # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/La_Paz -4:32:36 - LMT 1890 -4:32:36 - CMT 1931 Oct 15 # Calamarca MT -4:32:36 1:00 BST 1932 Mar 21 # Bolivia ST - -4:00 - -04 + -4:00 - %z # Brazil @@ -984,12 +984,12 @@ # # Fernando de Noronha (administratively part of PE) Zone America/Noronha -2:09:40 - LMT 1914 - -2:00 Brazil -02/-01 1990 Sep 17 - -2:00 - -02 1999 Sep 30 - -2:00 Brazil -02/-01 2000 Oct 15 - -2:00 - -02 2001 Sep 13 - -2:00 Brazil -02/-01 2002 Oct 1 - -2:00 - -02 + -2:00 Brazil %z 1990 Sep 17 + -2:00 - %z 1999 Sep 30 + -2:00 Brazil %z 2000 Oct 15 + -2:00 - %z 2001 Sep 13 + -2:00 Brazil %z 2002 Oct 1 + -2:00 - %z # Other Atlantic islands have no permanent settlement. # These include Trindade and Martim Vaz (administratively part of ES), # Rocas Atoll (RN), and the St Peter and St Paul Archipelago (PE). @@ -1002,119 +1002,119 @@ # In the north a very small part from the river Javary (now Jari I guess, # the border with Amapá) to the Amazon, then to the Xingu. Zone America/Belem -3:13:56 - LMT 1914 - -3:00 Brazil -03/-02 1988 Sep 12 - -3:00 - -03 + -3:00 Brazil %z 1988 Sep 12 + -3:00 - %z # # west Pará (PA) # West Pará includes Altamira, Óbidos, Prainha, Oriximiná, and Santarém. Zone America/Santarem -3:38:48 - LMT 1914 - -4:00 Brazil -04/-03 1988 Sep 12 - -4:00 - -04 2008 Jun 24 0:00 - -3:00 - -03 + -4:00 Brazil %z 1988 Sep 12 + -4:00 - %z 2008 Jun 24 0:00 + -3:00 - %z # # Maranhão (MA), Piauí (PI), Ceará (CE), Rio Grande do Norte (RN), # Paraíba (PB) Zone America/Fortaleza -2:34:00 - LMT 1914 - -3:00 Brazil -03/-02 1990 Sep 17 - -3:00 - -03 1999 Sep 30 - -3:00 Brazil -03/-02 2000 Oct 22 - -3:00 - -03 2001 Sep 13 - -3:00 Brazil -03/-02 2002 Oct 1 - -3:00 - -03 + -3:00 Brazil %z 1990 Sep 17 + -3:00 - %z 1999 Sep 30 + -3:00 Brazil %z 2000 Oct 22 + -3:00 - %z 2001 Sep 13 + -3:00 Brazil %z 2002 Oct 1 + -3:00 - %z # # Pernambuco (PE) (except Atlantic islands) Zone America/Recife -2:19:36 - LMT 1914 - -3:00 Brazil -03/-02 1990 Sep 17 - -3:00 - -03 1999 Sep 30 - -3:00 Brazil -03/-02 2000 Oct 15 - -3:00 - -03 2001 Sep 13 - -3:00 Brazil -03/-02 2002 Oct 1 - -3:00 - -03 + -3:00 Brazil %z 1990 Sep 17 + -3:00 - %z 1999 Sep 30 + -3:00 Brazil %z 2000 Oct 15 + -3:00 - %z 2001 Sep 13 + -3:00 Brazil %z 2002 Oct 1 + -3:00 - %z # # Tocantins (TO) Zone America/Araguaina -3:12:48 - LMT 1914 - -3:00 Brazil -03/-02 1990 Sep 17 - -3:00 - -03 1995 Sep 14 - -3:00 Brazil -03/-02 2003 Sep 24 - -3:00 - -03 2012 Oct 21 - -3:00 Brazil -03/-02 2013 Sep - -3:00 - -03 + -3:00 Brazil %z 1990 Sep 17 + -3:00 - %z 1995 Sep 14 + -3:00 Brazil %z 2003 Sep 24 + -3:00 - %z 2012 Oct 21 + -3:00 Brazil %z 2013 Sep + -3:00 - %z # # Alagoas (AL), Sergipe (SE) Zone America/Maceio -2:22:52 - LMT 1914 - -3:00 Brazil -03/-02 1990 Sep 17 - -3:00 - -03 1995 Oct 13 - -3:00 Brazil -03/-02 1996 Sep 4 - -3:00 - -03 1999 Sep 30 - -3:00 Brazil -03/-02 2000 Oct 22 - -3:00 - -03 2001 Sep 13 - -3:00 Brazil -03/-02 2002 Oct 1 - -3:00 - -03 + -3:00 Brazil %z 1990 Sep 17 + -3:00 - %z 1995 Oct 13 + -3:00 Brazil %z 1996 Sep 4 + -3:00 - %z 1999 Sep 30 + -3:00 Brazil %z 2000 Oct 22 + -3:00 - %z 2001 Sep 13 + -3:00 Brazil %z 2002 Oct 1 + -3:00 - %z # # Bahia (BA) # There are too many Salvadors elsewhere, so use America/Bahia instead # of America/Salvador. Zone America/Bahia -2:34:04 - LMT 1914 - -3:00 Brazil -03/-02 2003 Sep 24 - -3:00 - -03 2011 Oct 16 - -3:00 Brazil -03/-02 2012 Oct 21 - -3:00 - -03 + -3:00 Brazil %z 2003 Sep 24 + -3:00 - %z 2011 Oct 16 + -3:00 Brazil %z 2012 Oct 21 + -3:00 - %z # # Goiás (GO), Distrito Federal (DF), Minas Gerais (MG), # Espírito Santo (ES), Rio de Janeiro (RJ), São Paulo (SP), Paraná (PR), # Santa Catarina (SC), Rio Grande do Sul (RS) Zone America/Sao_Paulo -3:06:28 - LMT 1914 - -3:00 Brazil -03/-02 1963 Oct 23 0:00 - -3:00 1:00 -02 1964 - -3:00 Brazil -03/-02 + -3:00 Brazil %z 1963 Oct 23 0:00 + -3:00 1:00 %z 1964 + -3:00 Brazil %z # # Mato Grosso do Sul (MS) Zone America/Campo_Grande -3:38:28 - LMT 1914 - -4:00 Brazil -04/-03 + -4:00 Brazil %z # # Mato Grosso (MT) Zone America/Cuiaba -3:44:20 - LMT 1914 - -4:00 Brazil -04/-03 2003 Sep 24 - -4:00 - -04 2004 Oct 1 - -4:00 Brazil -04/-03 + -4:00 Brazil %z 2003 Sep 24 + -4:00 - %z 2004 Oct 1 + -4:00 Brazil %z # # Rondônia (RO) Zone America/Porto_Velho -4:15:36 - LMT 1914 - -4:00 Brazil -04/-03 1988 Sep 12 - -4:00 - -04 + -4:00 Brazil %z 1988 Sep 12 + -4:00 - %z # # Roraima (RR) Zone America/Boa_Vista -4:02:40 - LMT 1914 - -4:00 Brazil -04/-03 1988 Sep 12 - -4:00 - -04 1999 Sep 30 - -4:00 Brazil -04/-03 2000 Oct 15 - -4:00 - -04 + -4:00 Brazil %z 1988 Sep 12 + -4:00 - %z 1999 Sep 30 + -4:00 Brazil %z 2000 Oct 15 + -4:00 - %z # # east Amazonas (AM): Boca do Acre, Jutaí, Manaus, Floriano Peixoto # The great circle line from Tabatinga to Porto Acre divides # east from west Amazonas. Zone America/Manaus -4:00:04 - LMT 1914 - -4:00 Brazil -04/-03 1988 Sep 12 - -4:00 - -04 1993 Sep 28 - -4:00 Brazil -04/-03 1994 Sep 22 - -4:00 - -04 + -4:00 Brazil %z 1988 Sep 12 + -4:00 - %z 1993 Sep 28 + -4:00 Brazil %z 1994 Sep 22 + -4:00 - %z # # west Amazonas (AM): Atalaia do Norte, Boca do Maoco, Benjamin Constant, # Eirunepé, Envira, Ipixuna Zone America/Eirunepe -4:39:28 - LMT 1914 - -5:00 Brazil -05/-04 1988 Sep 12 - -5:00 - -05 1993 Sep 28 - -5:00 Brazil -05/-04 1994 Sep 22 - -5:00 - -05 2008 Jun 24 0:00 - -4:00 - -04 2013 Nov 10 - -5:00 - -05 + -5:00 Brazil %z 1988 Sep 12 + -5:00 - %z 1993 Sep 28 + -5:00 Brazil %z 1994 Sep 22 + -5:00 - %z 2008 Jun 24 0:00 + -4:00 - %z 2013 Nov 10 + -5:00 - %z # # Acre (AC) Zone America/Rio_Branco -4:31:12 - LMT 1914 - -5:00 Brazil -05/-04 1988 Sep 12 - -5:00 - -05 2008 Jun 24 0:00 - -4:00 - -04 2013 Nov 10 - -5:00 - -05 + -5:00 Brazil %z 1988 Sep 12 + -5:00 - %z 2008 Jun 24 0:00 + -4:00 - %z 2013 Nov 10 + -5:00 - %z # Chile @@ -1382,36 +1382,36 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Santiago -4:42:45 - LMT 1890 -4:42:45 - SMT 1910 Jan 10 # Santiago Mean Time - -5:00 - -05 1916 Jul 1 + -5:00 - %z 1916 Jul 1 -4:42:45 - SMT 1918 Sep 10 - -4:00 - -04 1919 Jul 1 + -4:00 - %z 1919 Jul 1 -4:42:45 - SMT 1927 Sep 1 - -5:00 Chile -05/-04 1932 Sep 1 - -4:00 - -04 1942 Jun 1 - -5:00 - -05 1942 Aug 1 - -4:00 - -04 1946 Jul 14 24:00 - -4:00 1:00 -03 1946 Aug 28 24:00 # central CL - -5:00 1:00 -04 1947 Mar 31 24:00 - -5:00 - -05 1947 May 21 23:00 - -4:00 Chile -04/-03 + -5:00 Chile %z 1932 Sep 1 + -4:00 - %z 1942 Jun 1 + -5:00 - %z 1942 Aug 1 + -4:00 - %z 1946 Jul 14 24:00 + -4:00 1:00 %z 1946 Aug 28 24:00 # central CL + -5:00 1:00 %z 1947 Mar 31 24:00 + -5:00 - %z 1947 May 21 23:00 + -4:00 Chile %z Zone America/Punta_Arenas -4:43:40 - LMT 1890 -4:42:45 - SMT 1910 Jan 10 - -5:00 - -05 1916 Jul 1 + -5:00 - %z 1916 Jul 1 -4:42:45 - SMT 1918 Sep 10 - -4:00 - -04 1919 Jul 1 + -4:00 - %z 1919 Jul 1 -4:42:45 - SMT 1927 Sep 1 - -5:00 Chile -05/-04 1932 Sep 1 - -4:00 - -04 1942 Jun 1 - -5:00 - -05 1942 Aug 1 - -4:00 - -04 1946 Aug 28 24:00 - -5:00 1:00 -04 1947 Mar 31 24:00 - -5:00 - -05 1947 May 21 23:00 - -4:00 Chile -04/-03 2016 Dec 4 - -3:00 - -03 + -5:00 Chile %z 1932 Sep 1 + -4:00 - %z 1942 Jun 1 + -5:00 - %z 1942 Aug 1 + -4:00 - %z 1946 Aug 28 24:00 + -5:00 1:00 %z 1947 Mar 31 24:00 + -5:00 - %z 1947 May 21 23:00 + -4:00 Chile %z 2016 Dec 4 + -3:00 - %z Zone Pacific/Easter -7:17:28 - LMT 1890 -7:17:28 - EMT 1932 Sep # Easter Mean Time - -7:00 Chile -07/-06 1982 Mar 14 3:00u # Easter Time - -6:00 Chile -06/-05 + -7:00 Chile %z 1982 Mar 14 3:00u # Easter Time + -6:00 Chile %z # # Salas y Gómez Island is uninhabited. # Other Chilean locations, including Juan Fernández Is, Desventuradas Is, @@ -1431,10 +1431,10 @@ # # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Palmer 0 - -00 1965 - -4:00 Arg -04/-03 1969 Oct 5 - -3:00 Arg -03/-02 1982 May - -4:00 Chile -04/-03 2016 Dec 4 - -3:00 - -03 + -4:00 Arg %z 1969 Oct 5 + -3:00 Arg %z 1982 May + -4:00 Chile %z 2016 Dec 4 + -3:00 - %z # Colombia @@ -1453,7 +1453,7 @@ #STDOFF -4:56:16.4 Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 -4:56:16 - BMT 1914 Nov 23 # Bogotá Mean Time - -5:00 CO -05/-04 + -5:00 CO %z # Malpelo, Providencia, San Andres # no information; probably like America/Bogota @@ -1484,10 +1484,10 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Guayaquil -5:19:20 - LMT 1890 -5:14:00 - QMT 1931 # Quito Mean Time - -5:00 Ecuador -05/-04 + -5:00 Ecuador %z Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno - -5:00 - -05 1986 - -6:00 Ecuador -06/-05 + -5:00 - %z 1986 + -6:00 Ecuador %z # Falklands @@ -1587,10 +1587,10 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/Stanley -3:51:24 - LMT 1890 -3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time - -4:00 Falk -04/-03 1983 May - -3:00 Falk -03/-02 1985 Sep 15 - -4:00 Falk -04/-03 2010 Sep 5 2:00 - -3:00 - -03 + -4:00 Falk %z 1983 May + -3:00 Falk %z 1985 Sep 15 + -4:00 Falk %z 2010 Sep 5 2:00 + -3:00 - %z # French Guiana # For the 1911/1912 establishment of standard time in French possessions, see: @@ -1598,8 +1598,8 @@ # page 752, 18b. # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Cayenne -3:29:20 - LMT 1911 Jul 1 - -4:00 - -04 1967 Oct - -3:00 - -03 + -4:00 - %z 1967 Oct + -3:00 - %z # Guyana @@ -1633,10 +1633,10 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Guyana -3:52:39 - LMT 1911 Aug 1 # Georgetown - -4:00 - -04 1915 Mar 1 - -3:45 - -0345 1975 Aug 1 - -3:00 - -03 1992 Mar 29 1:00 - -4:00 - -04 + -4:00 - %z 1915 Mar 1 + -3:45 - %z 1975 Aug 1 + -3:00 - %z 1992 Mar 29 1:00 + -4:00 - %z # Paraguay # @@ -1734,9 +1734,9 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 -3:50:40 - AMT 1931 Oct 10 # Asunción Mean Time - -4:00 - -04 1972 Oct - -3:00 - -03 1974 Apr - -4:00 Para -04/-03 + -4:00 - %z 1972 Oct + -3:00 - %z 1974 Apr + -4:00 Para %z # Peru # @@ -1763,12 +1763,12 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Lima -5:08:12 - LMT 1890 -5:08:36 - LMT 1908 Jul 28 # Lima Mean Time? - -5:00 Peru -05/-04 + -5:00 Peru %z # South Georgia # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/South_Georgia -2:26:08 - LMT 1890 # Grytviken - -2:00 - -02 + -2:00 - %z # South Sandwich Is # uninhabited; scientific personnel have wintered @@ -1778,8 +1778,8 @@ Zone America/Paramaribo -3:40:40 - LMT 1911 -3:40:52 - PMT 1935 # Paramaribo Mean Time -3:40:36 - PMT 1945 Oct # The capital moved? - -3:30 - -0330 1984 Oct - -3:00 - -03 + -3:30 - %z 1984 Oct + -3:00 - %z # Uruguay # From Paul Eggert (1993-11-18): @@ -1994,15 +1994,15 @@ # This Zone can be simplified once we assume zic %z. Zone America/Montevideo -3:44:51 - LMT 1908 Jun 10 -3:44:51 - MMT 1920 May 1 # Montevideo MT - -4:00 - -04 1923 Oct 1 - -3:30 Uruguay -0330/-03 1942 Dec 14 - -3:00 Uruguay -03/-0230 1960 - -3:00 Uruguay -03/-02 1968 - -3:00 Uruguay -03/-0230 1970 - -3:00 Uruguay -03/-02 1974 - -3:00 Uruguay -03/-0130 1974 Mar 10 - -3:00 Uruguay -03/-0230 1974 Dec 22 - -3:00 Uruguay -03/-02 + -4:00 - %z 1923 Oct 1 + -3:30 Uruguay %z 1942 Dec 14 + -3:00 Uruguay %z 1960 + -3:00 Uruguay %z 1968 + -3:00 Uruguay %z 1970 + -3:00 Uruguay %z 1974 + -3:00 Uruguay %z 1974 Mar 10 + -3:00 Uruguay %z 1974 Dec 22 + -3:00 Uruguay %z # Venezuela # @@ -2036,7 +2036,7 @@ # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Caracas -4:27:44 - LMT 1890 -4:27:40 - CMT 1912 Feb 12 # Caracas Mean Time? - -4:30 - -0430 1965 Jan 1 0:00 - -4:00 - -04 2007 Dec 9 3:00 - -4:30 - -0430 2016 May 1 2:30 - -4:00 - -04 + -4:30 - %z 1965 Jan 1 0:00 + -4:00 - %z 2007 Dec 9 3:00 + -4:30 - %z 2016 May 1 2:30 + -4:00 - %z diff -Nru openjdk-17-17.0.13+11/make/data/tzdata/zone.tab openjdk-17-17.0.14+7/make/data/tzdata/zone.tab --- openjdk-17-17.0.13+11/make/data/tzdata/zone.tab 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/data/tzdata/zone.tab 2025-01-04 20:25:18.000000000 +0000 @@ -287,8 +287,7 @@ ML +1239-00800 Africa/Bamako MM +1647+09610 Asia/Yangon MN +4755+10653 Asia/Ulaanbaatar most of Mongolia -MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan -MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar +MN +4801+09139 Asia/Hovd Bayan-Olgii, Hovd, Uvs MO +221150+1133230 Asia/Macau MP +1512+14545 Pacific/Saipan MQ +1436-06105 America/Martinique diff -Nru openjdk-17-17.0.13+11/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java openjdk-17-17.0.14+7/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java --- openjdk-17-17.0.13+11/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -273,7 +273,7 @@ // link version-region-rules out.writeShort(builtZones.size()); for (Map.Entry entry : builtZones.entrySet()) { - int regionIndex = Arrays.binarySearch(regionArray, entry.getKey()); + int regionIndex = findRegionIndex(regionArray, entry.getKey()); int rulesIndex = rulesList.indexOf(entry.getValue()); out.writeShort(regionIndex); out.writeShort(rulesIndex); @@ -281,8 +281,8 @@ // alias-region out.writeShort(links.size()); for (Map.Entry entry : links.entrySet()) { - int aliasIndex = Arrays.binarySearch(regionArray, entry.getKey()); - int regionIndex = Arrays.binarySearch(regionArray, entry.getValue()); + int aliasIndex = findRegionIndex(regionArray, entry.getKey()); + int regionIndex = findRegionIndex(regionArray, entry.getValue()); out.writeShort(aliasIndex); out.writeShort(regionIndex); } @@ -294,6 +294,14 @@ } } + private static int findRegionIndex(String[] regionArray, String region) { + int index = Arrays.binarySearch(regionArray, region); + if (index < 0) { + throw new IllegalArgumentException("Unknown region: " + region); + } + return index; + } + /** Whether to output verbose messages. */ private boolean verbose; diff -Nru openjdk-17-17.0.13+11/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java openjdk-17-17.0.14+7/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java --- openjdk-17-17.0.13+11/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -164,7 +164,8 @@ } continue; } - if (line.startsWith("Zone")) { // parse Zone line + int token0len = tokens.length > 0 ? tokens[0].length() : line.length(); + if (line.regionMatches(true, 0, "Zone", 0, token0len)) { // parse Zone line String name = tokens[1]; if (excludedZones.contains(name)){ continue; @@ -182,13 +183,13 @@ if (zLine.parse(tokens, 2)) { openZone = null; } - } else if (line.startsWith("Rule")) { // parse Rule line + } else if (line.regionMatches(true, 0, "Rule", 0, token0len)) { // parse Rule line String name = tokens[1]; if (!rules.containsKey(name)) { rules.put(name, new ArrayList(10)); } rules.get(name).add(new RuleLine().parse(tokens)); - } else if (line.startsWith("Link")) { // parse link line + } else if (line.regionMatches(true, 0, "Link", 0, token0len)) { // parse link line if (tokens.length >= 3) { String realId = tokens[1]; String aliasId = tokens[2]; @@ -304,7 +305,7 @@ month = parseMonth(tokens[off++]); if (off < tokens.length) { String dayRule = tokens[off++]; - if (dayRule.startsWith("last")) { + if (dayRule.regionMatches(true, 0, "last", 0, 4)) { dayOfMonth = -1; dayOfWeek = parseDayOfWeek(dayRule.substring(4)); adjustForwards = false; @@ -355,42 +356,45 @@ } int parseYear(String year, int defaultYear) { - switch (year.toLowerCase()) { - case "min": return 1900; - case "max": return Year.MAX_VALUE; - case "only": return defaultYear; - } + int len = year.length(); + + if (year.regionMatches(true, 0, "minimum", 0, len)) return 1900; + if (year.regionMatches(true, 0, "maximum", 0, len)) return Year.MAX_VALUE; + if (year.regionMatches(true, 0, "only", 0, len)) return defaultYear; + return Integer.parseInt(year); } Month parseMonth(String mon) { - switch (mon) { - case "Jan": return Month.JANUARY; - case "Feb": return Month.FEBRUARY; - case "Mar": return Month.MARCH; - case "Apr": return Month.APRIL; - case "May": return Month.MAY; - case "Jun": return Month.JUNE; - case "Jul": return Month.JULY; - case "Aug": return Month.AUGUST; - case "Sep": return Month.SEPTEMBER; - case "Oct": return Month.OCTOBER; - case "Nov": return Month.NOVEMBER; - case "Dec": return Month.DECEMBER; - } + int len = mon.length(); + + if (mon.regionMatches(true, 0, "January", 0, len)) return Month.JANUARY; + if (mon.regionMatches(true, 0, "February", 0, len)) return Month.FEBRUARY; + if (mon.regionMatches(true, 0, "March", 0, len)) return Month.MARCH; + if (mon.regionMatches(true, 0, "April", 0, len)) return Month.APRIL; + if (mon.regionMatches(true, 0, "May", 0, len)) return Month.MAY; + if (mon.regionMatches(true, 0, "June", 0, len)) return Month.JUNE; + if (mon.regionMatches(true, 0, "July", 0, len)) return Month.JULY; + if (mon.regionMatches(true, 0, "August", 0, len)) return Month.AUGUST; + if (mon.regionMatches(true, 0, "September", 0, len)) return Month.SEPTEMBER; + if (mon.regionMatches(true, 0, "October", 0, len)) return Month.OCTOBER; + if (mon.regionMatches(true, 0, "November", 0, len)) return Month.NOVEMBER; + if (mon.regionMatches(true, 0, "December", 0, len)) return Month.DECEMBER; + throw new IllegalArgumentException("Unknown month: " + mon); } DayOfWeek parseDayOfWeek(String dow) { - switch (dow) { - case "Mon": return DayOfWeek.MONDAY; - case "Tue": return DayOfWeek.TUESDAY; - case "Wed": return DayOfWeek.WEDNESDAY; - case "Thu": return DayOfWeek.THURSDAY; - case "Fri": return DayOfWeek.FRIDAY; - case "Sat": return DayOfWeek.SATURDAY; - case "Sun": return DayOfWeek.SUNDAY; - } + int len = dow.length(); + + if (dow.regionMatches(true, 0, "Monday", 0, len)) return DayOfWeek.MONDAY; + if (dow.regionMatches(true, 0, "Tuesday", 0, len)) return DayOfWeek.TUESDAY; + if (dow.regionMatches(true, 0, "Wednesday", 0, len)) return DayOfWeek.WEDNESDAY; + if (dow.regionMatches(true, 0, "Thursday", 0, len)) return DayOfWeek.THURSDAY; + if (dow.regionMatches(true, 0, "Friday", 0, len)) return DayOfWeek.FRIDAY; + if (dow.regionMatches(true, 0, "Saturday", 0, len)) return DayOfWeek.SATURDAY; + if (dow.regionMatches(true, 0, "Sunday", 0, len)) return DayOfWeek.SUNDAY; + throw new IllegalArgumentException("Unknown day-of-week: " + dow); } diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, Red Hat Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -27,6 +27,7 @@ #include "asm/macroAssembler.hpp" #include "classfile/javaClasses.inline.hpp" #include "classfile/vmClasses.hpp" +#include "compiler/disassembler.hpp" #include "interpreter/interpreter.hpp" #include "interpreter/interpreterRuntime.hpp" #include "memory/allocation.inline.hpp" @@ -36,7 +37,7 @@ #include "runtime/frame.inline.hpp" #include "runtime/stubRoutines.hpp" -#define __ _masm-> +#define __ Disassembler::hook(__FILE__, __LINE__, _masm)-> #ifdef PRODUCT #define BLOCK_COMMENT(str) /* nothing */ diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -26,6 +26,7 @@ #include "precompiled.hpp" #include "asm/macroAssembler.inline.hpp" #include "classfile/javaClasses.hpp" +#include "compiler/disassembler.hpp" #include "compiler/compiler_globals.hpp" #include "gc/shared/barrierSetAssembler.hpp" #include "interpreter/bytecodeHistogram.hpp" @@ -66,7 +67,7 @@ // Max size with JVMTI int TemplateInterpreter::InterpreterCodeSize = 200 * 1024; -#define __ _masm-> +#define __ Disassembler::hook(__FILE__, __LINE__, _masm)-> //----------------------------------------------------------------------------- @@ -1919,13 +1920,21 @@ address& vep) { assert(t->is_valid() && t->tos_in() == vtos, "illegal template"); Label L; - aep = __ pc(); __ push_ptr(); __ b(L); - fep = __ pc(); __ push_f(); __ b(L); - dep = __ pc(); __ push_d(); __ b(L); - lep = __ pc(); __ push_l(); __ b(L); - bep = cep = sep = - iep = __ pc(); __ push_i(); - vep = __ pc(); + aep = __ pc(); // atos entry point + __ push_ptr(); + __ b(L); + fep = __ pc(); // ftos entry point + __ push_f(); + __ b(L); + dep = __ pc(); // dtos entry point + __ push_d(); + __ b(L); + lep = __ pc(); // ltos entry point + __ push_l(); + __ b(L); + bep = cep = sep = iep = __ pc(); // [bcsi]tos entry point + __ push_i(); + vep = __ pc(); // vtos entry point __ bind(L); generate_and_dispatch(t); } diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -25,6 +25,7 @@ #include "precompiled.hpp" #include "asm/macroAssembler.inline.hpp" +#include "compiler/disassembler.hpp" #include "gc/shared/barrierSetAssembler.hpp" #include "gc/shared/collectedHeap.hpp" #include "gc/shared/tlab_globals.hpp" @@ -45,7 +46,7 @@ #include "runtime/synchronizer.hpp" #include "utilities/powerOfTwo.hpp" -#define __ _masm-> +#define __ Disassembler::hook(__FILE__, __LINE__, _masm)-> // Address computation: local variables diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/ppc/assembler_ppc.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/assembler_ppc.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/ppc/assembler_ppc.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/assembler_ppc.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1,6 +1,6 @@ /* - * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2012, 2015 SAP SE. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -79,9 +79,9 @@ // Low-level andi-one-instruction-macro. void Assembler::andi(Register a, Register s, const long ui16) { - if (is_power_of_2(((jlong) ui16)+1)) { + if (is_power_of_2(((unsigned long) ui16)+1)) { // pow2minus1 - clrldi(a, s, 64 - log2i_exact((((jlong) ui16)+1))); + clrldi(a, s, 64 - log2i_exact((((unsigned long) ui16)+1))); } else if (is_power_of_2((jlong) ui16)) { // pow2 rlwinm(a, s, 0, 31 - log2i_exact((jlong) ui16), 31 - log2i_exact((jlong) ui16)); diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -133,9 +133,20 @@ // copied into place by code emitted in the IR. Register OSR_buf = osrBufferPointer()->as_register(); - { assert(frame::interpreter_frame_monitor_size() == BasicObjectLock::size(), "adjust code below"); - int monitor_offset = BytesPerWord * method()->max_locals() + - (2 * BytesPerWord) * (number_of_locks - 1); + { + assert(frame::interpreter_frame_monitor_size() == BasicObjectLock::size(), "adjust code below"); + + const int locals_space = BytesPerWord * method()->max_locals(); + int monitor_offset = locals_space + (2 * BytesPerWord) * (number_of_locks - 1); + bool use_OSR_bias = false; + + if (!Assembler::is_simm16(monitor_offset + BytesPerWord) && number_of_locks > 0) { + // Offsets too large for ld instructions. Use bias. + __ add_const_optimized(OSR_buf, OSR_buf, locals_space); + monitor_offset -= locals_space; + use_OSR_bias = true; + } + // SharedRuntime::OSR_migration_begin() packs BasicObjectLocks in // the OSR buffer using 2 word entries: first the lock and then // the oop. @@ -161,6 +172,11 @@ __ ld(R0, slot_offset + 1*BytesPerWord, OSR_buf); __ std(R0, mo.disp(), mo.base()); } + + if (use_OSR_bias) { + // Restore. + __ sub_const_optimized(OSR_buf, OSR_buf, locals_space); + } } } diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -582,7 +582,7 @@ is_power_of_2(int_or_long_const) || is_power_of_2(-int_or_long_const))) return true; if (bc == Bytecodes::_land && - (is_power_of_2(int_or_long_const+1) || + (is_power_of_2((unsigned long)int_or_long_const+1) || (Assembler::is_uimm(int_or_long_const, 32) && is_power_of_2(int_or_long_const)) || (int_or_long_const != min_jlong && is_power_of_2(-int_or_long_const)))) return true; diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/ppc/ppc.ad openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/ppc.ad --- openjdk-17-17.0.13+11/src/hotspot/cpu/ppc/ppc.ad 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/ppc/ppc.ad 2025-01-04 20:25:18.000000000 +0000 @@ -3510,6 +3510,7 @@ call->_in_rms = _in_rms; call->_nesting = _nesting; call->_override_symbolic_info = _override_symbolic_info; + call->_arg_escape = _arg_escape; // New call needs all inputs of old call. // Req... diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/interp_masm_riscv.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/interp_masm_riscv.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/interp_masm_riscv.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/interp_masm_riscv.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -265,7 +265,6 @@ la(bytecode, Address(cache, ConstantPoolCache::base_offset() + ConstantPoolCacheEntry::indices_offset())); - membar(MacroAssembler::AnyAny); lwu(bytecode, bytecode); membar(MacroAssembler::LoadLoad | MacroAssembler::LoadStore); const int shift_count = (1 + byte_no) * BitsPerByte; diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/interpreterRT_riscv.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/interpreterRT_riscv.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/interpreterRT_riscv.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/interpreterRT_riscv.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -74,6 +74,16 @@ _stack_offset = 0; } +// The C ABI specifies: +// "integer scalars narrower than XLEN bits are widened according to the sign +// of their type up to 32 bits, then sign-extended to XLEN bits." +// Applies for both passed in register and stack. +// +// Java uses 32-bit stack slots; jint, jshort, jchar, jbyte uses one slot. +// Native uses 64-bit stack slots for all integer scalar types. +// +// lw loads the Java stack slot, sign-extends and +// sd store this widened integer into a 64 bit native stack slot. void InterpreterRuntime::SignatureHandlerGenerator::pass_int() { const Address src(from(), Interpreter::local_offset_in_bytes(offset())); @@ -82,7 +92,7 @@ __ lw(reg, src); } else { __ lw(x10, src); - __ sw(x10, Address(to(), next_stack_offset())); + __ sd(x10, Address(to(), next_stack_offset())); } } diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -696,37 +696,9 @@ upper = (int32_t)upper; // lui Rd, imm[31:12] + imm[11] lui(Rd, upper); - // use addiw to distinguish li32 to li64 addiw(Rd, Rd, lower); } -void MacroAssembler::li64(Register Rd, int64_t imm) { - // Load upper 32 bits. upper = imm[63:32], but if imm[31] == 1 or - // (imm[31:20] == 0x7ff && imm[19] == 1), upper = imm[63:32] + 1. - int64_t lower = imm & 0xffffffff; - lower -= ((lower << 44) >> 44); - int64_t tmp_imm = ((uint64_t)(imm & 0xffffffff00000000)) + (uint64_t)lower; - int32_t upper = (tmp_imm - (int32_t)lower) >> 32; - - // Load upper 32 bits - int64_t up = upper, lo = upper; - lo = (lo << 52) >> 52; - up -= lo; - up = (int32_t)up; - lui(Rd, up); - addi(Rd, Rd, lo); - - // Load the rest 32 bits. - slli(Rd, Rd, 12); - addi(Rd, Rd, (int32_t)lower >> 20); - slli(Rd, Rd, 12); - lower = ((int32_t)imm << 12) >> 20; - addi(Rd, Rd, lower); - slli(Rd, Rd, 8); - lower = imm & 0xff; - addi(Rd, Rd, lower); -} - void MacroAssembler::li(Register Rd, int64_t imm) { // int64_t is in range 0x8000 0000 0000 0000 ~ 0x7fff ffff ffff ffff // li -> c.li @@ -1315,27 +1287,6 @@ return MOVPTR_INSTRUCTIONS_NUM * NativeInstruction::instruction_size; } -static int patch_imm_in_li64(address branch, address target) { - const int LI64_INSTRUCTIONS_NUM = 8; // lui + addi + slli + addi + slli + addi + slli + addi - int64_t lower = (intptr_t)target & 0xffffffff; - lower = lower - ((lower << 44) >> 44); - int64_t tmp_imm = ((uint64_t)((intptr_t)target & 0xffffffff00000000)) + (uint64_t)lower; - int32_t upper = (tmp_imm - (int32_t)lower) >> 32; - int64_t tmp_upper = upper, tmp_lower = upper; - tmp_lower = (tmp_lower << 52) >> 52; - tmp_upper -= tmp_lower; - tmp_upper >>= 12; - // Load upper 32 bits. Upper = target[63:32], but if target[31] = 1 or (target[31:20] == 0x7ff && target[19] == 1), - // upper = target[63:32] + 1. - Assembler::patch(branch + 0, 31, 12, tmp_upper & 0xfffff); // Lui. - Assembler::patch(branch + 4, 31, 20, tmp_lower & 0xfff); // Addi. - // Load the rest 32 bits. - Assembler::patch(branch + 12, 31, 20, ((int32_t)lower >> 20) & 0xfff); // Addi. - Assembler::patch(branch + 20, 31, 20, (((intptr_t)target << 44) >> 52) & 0xfff); // Addi. - Assembler::patch(branch + 28, 31, 20, (intptr_t)target & 0xff); // Addi. - return LI64_INSTRUCTIONS_NUM * NativeInstruction::instruction_size; -} - static int patch_imm_in_li32(address branch, int32_t target) { const int LI32_INSTRUCTIONS_NUM = 2; // lui + addiw int64_t upper = (intptr_t)target; @@ -1390,16 +1341,6 @@ return (address) target_address; } -static address get_target_of_li64(address insn_addr) { - assert_cond(insn_addr != NULL); - intptr_t target_address = (((int64_t)Assembler::sextract(Assembler::ld_instr(insn_addr), 31, 12)) & 0xfffff) << 44; // Lui. - target_address += ((int64_t)Assembler::sextract(Assembler::ld_instr(insn_addr + 4), 31, 20)) << 32; // Addi. - target_address += ((int64_t)Assembler::sextract(Assembler::ld_instr(insn_addr + 12), 31, 20)) << 20; // Addi. - target_address += ((int64_t)Assembler::sextract(Assembler::ld_instr(insn_addr + 20), 31, 20)) << 8; // Addi. - target_address += ((int64_t)Assembler::sextract(Assembler::ld_instr(insn_addr + 28), 31, 20)); // Addi. - return (address)target_address; -} - static address get_target_of_li32(address insn_addr) { assert_cond(insn_addr != NULL); intptr_t target_address = (((int64_t)Assembler::sextract(Assembler::ld_instr(insn_addr), 31, 12)) & 0xfffff) << 12; // Lui. @@ -1420,8 +1361,6 @@ return patch_offset_in_pc_relative(branch, offset); } else if (NativeInstruction::is_movptr_at(branch)) { // movptr return patch_addr_in_movptr(branch, target); - } else if (NativeInstruction::is_li64_at(branch)) { // li64 - return patch_imm_in_li64(branch, target); } else if (NativeInstruction::is_li32_at(branch)) { // li32 int64_t imm = (intptr_t)target; return patch_imm_in_li32(branch, (int32_t)imm); @@ -1447,8 +1386,6 @@ offset = get_offset_of_pc_relative(insn_addr); } else if (NativeInstruction::is_movptr_at(insn_addr)) { // movptr return get_target_of_movptr(insn_addr); - } else if (NativeInstruction::is_li64_at(insn_addr)) { // li64 - return get_target_of_li64(insn_addr); } else if (NativeInstruction::is_li32_at(insn_addr)) { // li32 return get_target_of_li32(insn_addr); } else { diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp 2025-01-04 20:25:18.000000000 +0000 @@ -679,7 +679,6 @@ void la(Register Rd, const Address &adr); void li32(Register Rd, int32_t imm); - void li64(Register Rd, int64_t imm); void li (Register Rd, int64_t imm); // optimized load immediate // mv diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/methodHandles_riscv.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/methodHandles_riscv.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/methodHandles_riscv.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/methodHandles_riscv.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, Red Hat Inc. All rights reserved. * Copyright (c) 2020, 2022, Huawei Technologies Co., Ltd. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -28,6 +28,7 @@ #include "asm/macroAssembler.hpp" #include "classfile/javaClasses.inline.hpp" #include "classfile/vmClasses.hpp" +#include "compiler/disassembler.hpp" #include "interpreter/interpreter.hpp" #include "interpreter/interpreterRuntime.hpp" #include "memory/allocation.inline.hpp" @@ -37,7 +38,7 @@ #include "runtime/frame.inline.hpp" #include "runtime/stubRoutines.hpp" -#define __ _masm-> +#define __ Disassembler::hook(__FILE__, __LINE__, _masm)-> #ifdef PRODUCT #define BLOCK_COMMENT(str) /* nothing */ diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/nativeInst_riscv.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/nativeInst_riscv.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/nativeInst_riscv.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/nativeInst_riscv.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -103,18 +103,6 @@ check_li32_data_dependency(instr); } -bool NativeInstruction::is_li64_at(address instr) { - return is_lui_at(instr) && // lui - is_addi_at(instr + instruction_size) && // addi - is_slli_shift_at(instr + instruction_size * 2, 12) && // Slli Rd, Rs, 12 - is_addi_at(instr + instruction_size * 3) && // addi - is_slli_shift_at(instr + instruction_size * 4, 12) && // Slli Rd, Rs, 12 - is_addi_at(instr + instruction_size * 5) && // addi - is_slli_shift_at(instr + instruction_size * 6, 8) && // Slli Rd, Rs, 8 - is_addi_at(instr + instruction_size * 7) && // addi - check_li64_data_dependency(instr); -} - void NativeCall::verify() { assert(NativeCall::is_call_at((address)this), "unexpected code at call site"); } diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/nativeInst_riscv.hpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/nativeInst_riscv.hpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/nativeInst_riscv.hpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/nativeInst_riscv.hpp 2025-01-04 20:25:18.000000000 +0000 @@ -114,40 +114,6 @@ extract_rs1(last_instr) == extract_rd(slli2); } - // the instruction sequence of li64 is as below: - // lui - // addi - // slli - // addi - // slli - // addi - // slli - // addi - static bool check_li64_data_dependency(address instr) { - address lui = instr; - address addi1 = lui + instruction_size; - address slli1 = addi1 + instruction_size; - address addi2 = slli1 + instruction_size; - address slli2 = addi2 + instruction_size; - address addi3 = slli2 + instruction_size; - address slli3 = addi3 + instruction_size; - address addi4 = slli3 + instruction_size; - return extract_rs1(addi1) == extract_rd(lui) && - extract_rs1(addi1) == extract_rd(addi1) && - extract_rs1(slli1) == extract_rd(addi1) && - extract_rs1(slli1) == extract_rd(slli1) && - extract_rs1(addi2) == extract_rd(slli1) && - extract_rs1(addi2) == extract_rd(addi2) && - extract_rs1(slli2) == extract_rd(addi2) && - extract_rs1(slli2) == extract_rd(slli2) && - extract_rs1(addi3) == extract_rd(slli2) && - extract_rs1(addi3) == extract_rd(addi3) && - extract_rs1(slli3) == extract_rd(addi3) && - extract_rs1(slli3) == extract_rd(slli3) && - extract_rs1(addi4) == extract_rd(slli3) && - extract_rs1(addi4) == extract_rd(addi4); - } - // the instruction sequence of li32 is as below: // lui // addiw @@ -182,7 +148,6 @@ static bool is_movptr_at(address instr); static bool is_li32_at(address instr); - static bool is_li64_at(address instr); static bool is_pc_relative_at(address branch); static bool is_load_pc_relative_at(address branch); diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/riscv.ad openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/riscv.ad --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/riscv.ad 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/riscv.ad 2025-01-04 20:25:18.000000000 +0000 @@ -84,8 +84,8 @@ reg_def R0_H ( NS, NS, Op_RegI, 0, x0->as_VMReg()->next() ); reg_def R1 ( NS, SOC, Op_RegI, 1, x1->as_VMReg() ); // ra reg_def R1_H ( NS, SOC, Op_RegI, 1, x1->as_VMReg()->next() ); -reg_def R2 ( NS, SOE, Op_RegI, 2, x2->as_VMReg() ); // sp -reg_def R2_H ( NS, SOE, Op_RegI, 2, x2->as_VMReg()->next() ); +reg_def R2 ( NS, NS, Op_RegI, 2, x2->as_VMReg() ); // sp +reg_def R2_H ( NS, NS, Op_RegI, 2, x2->as_VMReg()->next() ); reg_def R3 ( NS, NS, Op_RegI, 3, x3->as_VMReg() ); // gp reg_def R3_H ( NS, NS, Op_RegI, 3, x3->as_VMReg()->next() ); reg_def R4 ( NS, NS, Op_RegI, 4, x4->as_VMReg() ); // tp diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -758,15 +758,21 @@ return stk_args; } -// On 64 bit we will store integer like items to the stack as -// 64 bits items (riscv64 abi) even though java would only store -// 32bits for a parameter. On 32bit it will simply be 32 bits -// So this routine will do 32->32 on 32bit and 32->64 on 64bit +// The C ABI specifies: +// "integer scalars narrower than XLEN bits are widened according to the sign +// of their type up to 32 bits, then sign-extended to XLEN bits." +// Applies for both passed in register and stack. +// +// Java uses 32-bit stack slots; jint, jshort, jchar, jbyte uses one slot. +// Native uses 64-bit stack slots for all integer scalar types. +// +// lw loads the Java stack slot, sign-extends and +// sd store this widened integer into a 64 bit native stack slot. static void move32_64(MacroAssembler* masm, VMRegPair src, VMRegPair dst) { if (src.first()->is_stack()) { if (dst.first()->is_stack()) { // stack to stack - __ ld(t0, Address(fp, reg2offset_in(src.first()))); + __ lw(t0, Address(fp, reg2offset_in(src.first()))); __ sd(t0, Address(sp, reg2offset_out(dst.first()))); } else { // stack to reg diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2020, Red Hat Inc. All rights reserved. * Copyright (c) 2020, 2022, Huawei Technologies Co., Ltd. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -27,6 +27,7 @@ #include "precompiled.hpp" #include "asm/macroAssembler.inline.hpp" #include "classfile/javaClasses.hpp" +#include "compiler/disassembler.hpp" #include "gc/shared/barrierSetAssembler.hpp" #include "interpreter/bytecodeHistogram.hpp" #include "interpreter/bytecodeTracer.hpp" @@ -66,7 +67,7 @@ // Max size with JVMTI int TemplateInterpreter::InterpreterCodeSize = 256 * 1024; -#define __ _masm-> +#define __ Disassembler::hook(__FILE__, __LINE__, _masm)-> //----------------------------------------------------------------------------- @@ -1691,13 +1692,21 @@ address& vep) { assert(t != NULL && t->is_valid() && t->tos_in() == vtos, "illegal template"); Label L; - aep = __ pc(); __ push_ptr(); __ j(L); - fep = __ pc(); __ push_f(); __ j(L); - dep = __ pc(); __ push_d(); __ j(L); - lep = __ pc(); __ push_l(); __ j(L); - bep = cep = sep = - iep = __ pc(); __ push_i(); - vep = __ pc(); + aep = __ pc(); // atos entry point + __ push_ptr(); + __ j(L); + fep = __ pc(); // ftos entry point + __ push_f(); + __ j(L); + dep = __ pc(); // dtos entry point + __ push_d(); + __ j(L); + lep = __ pc(); // ltos entry point + __ push_l(); + __ j(L); + bep = cep = sep = iep = __ pc(); // [bcsi]tos entry point + __ push_i(); + vep = __ pc(); // vtos entry point __ bind(L); generate_and_dispatch(t); } diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/templateTable_riscv.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/templateTable_riscv.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/riscv/templateTable_riscv.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/riscv/templateTable_riscv.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -26,6 +26,7 @@ #include "precompiled.hpp" #include "asm/macroAssembler.inline.hpp" +#include "compiler/disassembler.hpp" #include "gc/shared/barrierSetAssembler.hpp" #include "gc/shared/collectedHeap.hpp" #include "gc/shared/tlab_globals.hpp" @@ -46,7 +47,7 @@ #include "runtime/synchronizer.hpp" #include "utilities/powerOfTwo.hpp" -#define __ _masm-> +#define __ Disassembler::hook(__FILE__, __LINE__, _masm)-> // Address computation: local variables @@ -317,7 +318,6 @@ // get type __ addi(x13, x11, tags_offset); __ add(x13, x10, x13); - __ membar(MacroAssembler::AnyAny); __ lbu(x13, Address(x13, 0)); __ membar(MacroAssembler::LoadLoad | MacroAssembler::LoadStore); @@ -3491,7 +3491,6 @@ const int tags_offset = Array::base_offset_in_bytes(); __ add(t0, x10, x13); __ la(t0, Address(t0, tags_offset)); - __ membar(MacroAssembler::AnyAny); __ lbu(t0, t0); __ membar(MacroAssembler::LoadLoad | MacroAssembler::LoadStore); __ sub(t1, t0, (u1)JVM_CONSTANT_Class); @@ -3638,7 +3637,6 @@ // See if bytecode has already been quicked __ add(t0, x13, Array::base_offset_in_bytes()); __ add(x11, t0, x9); - __ membar(MacroAssembler::AnyAny); __ lbu(x11, x11); __ membar(MacroAssembler::LoadLoad | MacroAssembler::LoadStore); __ sub(t0, x11, (u1)JVM_CONSTANT_Class); @@ -3694,7 +3692,6 @@ // See if bytecode has already been quicked __ add(t0, x13, Array::base_offset_in_bytes()); __ add(x11, t0, x9); - __ membar(MacroAssembler::AnyAny); __ lbu(x11, x11); __ membar(MacroAssembler::LoadLoad | MacroAssembler::LoadStore); __ sub(t0, x11, (u1)JVM_CONSTANT_Class); diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -133,9 +133,19 @@ // copied into place by code emitted in the IR. Register OSR_buf = osrBufferPointer()->as_register(); - { assert(frame::interpreter_frame_monitor_size() == BasicObjectLock::size(), "adjust code below"); - int monitor_offset = BytesPerWord * method()->max_locals() + - (2 * BytesPerWord) * (number_of_locks - 1); + { + assert(frame::interpreter_frame_monitor_size() == BasicObjectLock::size(), "adjust code below"); + + const int locals_space = BytesPerWord * method() -> max_locals(); + int monitor_offset = locals_space + (2 * BytesPerWord) * (number_of_locks - 1); + bool large_offset = !Immediate::is_simm20(monitor_offset + BytesPerWord) && number_of_locks > 0; + + if (large_offset) { + // z_lg can only handle displacement upto 20bit signed binary integer + __ z_algfi(OSR_buf, locals_space); + monitor_offset -= locals_space; + } + // SharedRuntime::OSR_migration_begin() packs BasicObjectLocks in // the OSR buffer using 2 word entries: first the lock and then // the oop. @@ -149,6 +159,10 @@ __ z_lg(Z_R1_scratch, slot_offset + 1*BytesPerWord, OSR_buf); __ z_stg(Z_R1_scratch, frame_map()->address_for_monitor_object(i)); } + + if (large_offset) { + __ z_slgfi(OSR_buf, locals_space); + } } } diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/x86/assembler_x86.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/x86/assembler_x86.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/x86/assembler_x86.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/x86/assembler_x86.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -3325,7 +3325,7 @@ emit_operand(as_Register(3), dst); } -void Assembler::nop(int i) { +void Assembler::nop(uint i) { #ifdef ASSERT assert(i > 0, " "); // The fancy nops aren't currently recognized by debuggers making it a diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/x86/assembler_x86.hpp openjdk-17-17.0.14+7/src/hotspot/cpu/x86/assembler_x86.hpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/x86/assembler_x86.hpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/x86/assembler_x86.hpp 2025-01-04 20:25:18.000000000 +0000 @@ -1644,7 +1644,7 @@ void negq(Address dst); #endif - void nop(int i = 1); + void nop(uint i = 1); void notl(Register dst); diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/x86/macroAssembler_x86.cpp openjdk-17-17.0.14+7/src/hotspot/cpu/x86/macroAssembler_x86.cpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/x86/macroAssembler_x86.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/x86/macroAssembler_x86.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1175,20 +1175,20 @@ // Stub code is generated once and never copied. // NMethods can't use this because they get copied and we can't force alignment > 32 bytes. void MacroAssembler::align64() { - align(64, (unsigned long long) pc()); + align(64, (uint)(uintptr_t)pc()); } void MacroAssembler::align32() { - align(32, (unsigned long long) pc()); + align(32, (uint)(uintptr_t)pc()); } -void MacroAssembler::align(int modulus) { +void MacroAssembler::align(uint modulus) { // 8273459: Ensure alignment is possible with current segment alignment - assert(modulus <= CodeEntryAlignment, "Alignment must be <= CodeEntryAlignment"); + assert(modulus <= (uintx)CodeEntryAlignment, "Alignment must be <= CodeEntryAlignment"); align(modulus, offset()); } -void MacroAssembler::align(int modulus, int target) { +void MacroAssembler::align(uint modulus, uint target) { if (target % modulus != 0) { nop(modulus - (target % modulus)); } diff -Nru openjdk-17-17.0.13+11/src/hotspot/cpu/x86/macroAssembler_x86.hpp openjdk-17-17.0.14+7/src/hotspot/cpu/x86/macroAssembler_x86.hpp --- openjdk-17-17.0.13+11/src/hotspot/cpu/x86/macroAssembler_x86.hpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/cpu/x86/macroAssembler_x86.hpp 2025-01-04 20:25:18.000000000 +0000 @@ -196,8 +196,8 @@ // Alignment void align32(); void align64(); - void align(int modulus); - void align(int modulus, int target); + void align(uint modulus); + void align(uint modulus, uint target); // A 5 byte nop that is safe for patching (see patch_verified_entry) void fat_nop(); diff -Nru openjdk-17-17.0.13+11/src/hotspot/os/bsd/os_bsd.cpp openjdk-17-17.0.14+7/src/hotspot/os/bsd/os_bsd.cpp --- openjdk-17-17.0.13+11/src/hotspot/os/bsd/os_bsd.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/os/bsd/os_bsd.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -2091,13 +2091,12 @@ // On macOS according to setrlimit(2), OPEN_MAX must be used instead // of RLIM_INFINITY, but testing on macOS >= 10.6, reveals that - // we can, in fact, use even RLIM_INFINITY, so try the max value - // that the system claims can be used first, same as other BSD OSes. - // However, some terminals (ksh) will internally use "int" type - // to store this value and since RLIM_INFINITY overflows an "int" - // we might end up with a negative value, so cap the system limit max - // at INT_MAX instead, just in case, for everyone. - nbr_files.rlim_cur = MIN(INT_MAX, nbr_files.rlim_max); + // we can, in fact, use even RLIM_INFINITY. + // However, we need to limit the value to 0x100000 (which is the max value + // allowed on Linux) so that any existing code that iterates over all allowed + // file descriptors, finishes in a reasonable time, without appearing + // to hang. + nbr_files.rlim_cur = MIN(0x100000, nbr_files.rlim_max); status = setrlimit(RLIMIT_NOFILE, &nbr_files); if (status != 0) { diff -Nru openjdk-17-17.0.13+11/src/hotspot/os/windows/os_windows.cpp openjdk-17-17.0.14+7/src/hotspot/os/windows/os_windows.cpp --- openjdk-17-17.0.13+11/src/hotspot/os/windows/os_windows.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/os/windows/os_windows.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1897,7 +1897,10 @@ // - 2016 GA 10/2016 build: 14393 // - 2019 GA 11/2018 build: 17763 // - 2022 GA 08/2021 build: 20348 - if (build_number > 20347) { + // - 2025 Preview build : 26040 + if (build_number > 26039) { + st->print("Server 2025"); + } else if (build_number > 20347) { st->print("Server 2022"); } else if (build_number > 17762) { st->print("Server 2019"); @@ -3352,7 +3355,8 @@ os::attempt_reserve_memory_at(aligned_base, size); } - assert(aligned_base != NULL, "Did not manage to re-map after %d attempts?", max_attempts); + assert(aligned_base != nullptr, + "Did not manage to re-map after %d attempts (size %zu, alignment %zu, file descriptor %d)", max_attempts, size, alignment, file_desc); return aligned_base; } diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/classfile/classFileParser.cpp openjdk-17-17.0.14+7/src/hotspot/share/classfile/classFileParser.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/classfile/classFileParser.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/classfile/classFileParser.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -5803,8 +5803,8 @@ Exceptions::fthrow(THREAD_AND_LOCATION, vmSymbols::java_lang_NoClassDefFoundError(), "%s (wrong name: %s)", - class_name_in_cp->as_C_string(), - _class_name->as_C_string() + _class_name->as_C_string(), + class_name_in_cp->as_C_string() ); return; } else { diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/classfile/classLoaderData.cpp openjdk-17-17.0.14+7/src/hotspot/share/classfile/classLoaderData.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/classfile/classLoaderData.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/classfile/classLoaderData.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -552,6 +552,21 @@ // after erroneous classes are released. classes_do(InstanceKlass::unload_class); + // Method::clear_jmethod_ids only sets the jmethod_ids to NULL without + // releasing the memory for related JNIMethodBlocks and JNIMethodBlockNodes. + // This is done intentionally because native code (e.g. JVMTI agent) holding + // jmethod_ids may access them after the associated classes and class loader + // are unloaded. The Java Native Interface Specification says "method ID + // does not prevent the VM from unloading the class from which the ID has + // been derived. After the class is unloaded, the method or field ID becomes + // invalid". In real world usages, the native code may rely on jmethod_ids + // being NULL after class unloading. Hence, it is unsafe to free the memory + // from the VM side without knowing when native code is going to stop using + // them. + if (_jmethod_ids != NULL) { + Method::clear_jmethod_ids(this); + } + // Clean up global class iterator for compiler ClassLoaderDataGraph::adjust_saved_class(this); } @@ -696,20 +711,7 @@ _metaspace = NULL; delete m; } - // Method::clear_jmethod_ids only sets the jmethod_ids to NULL without - // releasing the memory for related JNIMethodBlocks and JNIMethodBlockNodes. - // This is done intentionally because native code (e.g. JVMTI agent) holding - // jmethod_ids may access them after the associated classes and class loader - // are unloaded. The Java Native Interface Specification says "method ID - // does not prevent the VM from unloading the class from which the ID has - // been derived. After the class is unloaded, the method or field ID becomes - // invalid". In real world usages, the native code may rely on jmethod_ids - // being NULL after class unloading. Hence, it is unsafe to free the memory - // from the VM side without knowing when native code is going to stop using - // them. - if (_jmethod_ids != NULL) { - Method::clear_jmethod_ids(this); - } + // Delete lock delete _metaspace_lock; diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/gc/shared/gcOverheadChecker.cpp openjdk-17-17.0.14+7/src/hotspot/share/gc/shared/gcOverheadChecker.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/gc/shared/gcOverheadChecker.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/gc/shared/gcOverheadChecker.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -41,7 +41,11 @@ bool is_full_gc, GCCause::Cause gc_cause, SoftRefPolicy* soft_ref_policy) { - + if (is_full_gc) { + // Explicit Full GC would do the clearing of soft-refs as well + // So reset in the beginning + soft_ref_policy->set_should_clear_all_soft_refs(false); + } // Ignore explicit GC's. Exiting here does not set the flag and // does not reset the count. if (GCCause::is_user_requested_gc(gc_cause) || diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1048,6 +1048,7 @@ Node* u = ctrl->fast_out(i); if (u->_idx < last && u != barrier && + !u->depends_only_on_test() && // preserve dependency on test !uses_to_ignore.member(u) && (u->in(0) != ctrl || (!u->is_Region() && !u->is_Phi())) && (ctrl->Opcode() != Op_CatchProj || u->Opcode() != Op_CreateEx)) { diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -894,7 +894,11 @@ } HeapWord* ShenandoahHeap::allocate_memory_under_lock(ShenandoahAllocRequest& req, bool& in_new_region) { - ShenandoahHeapLocker locker(lock()); + // If we are dealing with mutator allocation, then we may need to block for safepoint. + // We cannot block for safepoint for GC allocations, because there is a high chance + // we are already running at safepoint or from stack watermark machinery, and we cannot + // block again. + ShenandoahHeapLocker locker(lock(), req.is_mutator_alloc()); return _free_set->allocate(req, in_new_region); } diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/gc/shenandoah/shenandoahLock.cpp openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/shenandoahLock.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/gc/shenandoah/shenandoahLock.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/shenandoahLock.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -28,9 +28,57 @@ #include "gc/shenandoah/shenandoahLock.hpp" #include "runtime/atomic.hpp" +#include "runtime/interfaceSupport.inline.hpp" #include "runtime/os.inline.hpp" #include "runtime/thread.hpp" +void ShenandoahLock::contended_lock(bool allow_block_for_safepoint) { + Thread* thread = Thread::current(); + if (allow_block_for_safepoint && thread->is_Java_thread()) { + contended_lock_internal(thread->as_Java_thread()); + } else { + contended_lock_internal(nullptr); + } +} + +template +void ShenandoahLock::contended_lock_internal(JavaThread* java_thread) { + assert(!ALLOW_BLOCK || java_thread != nullptr, "Must have a Java thread when allowing block."); + // Spin this much, but only on multi-processor systems. + int ctr = os::is_MP() ? 0xFF : 0; + // Apply TTAS to avoid more expensive CAS calls if the lock is still held by other thread. + while (Atomic::load(&_state) == locked || + Atomic::cmpxchg(&_state, unlocked, locked) != unlocked) { + if (ctr > 0 && !SafepointSynchronize::is_synchronizing()) { + // Lightly contended, spin a little if no safepoint is pending. + SpinPause(); + ctr--; + } else if (ALLOW_BLOCK) { + ThreadBlockInVM block(java_thread); + if (SafepointSynchronize::is_synchronizing()) { + // If safepoint is pending, we want to block and allow safepoint to proceed. + // Normally, TBIVM above would block us in its destructor. + // + // But that blocking only happens when TBIVM knows the thread poll is armed. + // There is a window between announcing a safepoint and arming the thread poll + // during which trying to continuously enter TBIVM is counter-productive. + // Under high contention, we may end up going in circles thousands of times. + // To avoid it, we wait here until local poll is armed and then proceed + // to TBVIM exit for blocking. We do not SpinPause, but yield to let + // VM thread to arm the poll sooner. + while (SafepointSynchronize::is_synchronizing() && + !SafepointMechanism::local_poll_armed(java_thread)) { + os::naked_yield(); + } + } else { + os::naked_yield(); + } + } else { + os::naked_yield(); + } + } +} + ShenandoahSimpleLock::ShenandoahSimpleLock() { assert(os::mutex_init_done(), "Too early!"); } diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/gc/shenandoah/shenandoahLock.hpp openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/shenandoahLock.hpp --- openjdk-17-17.0.13+11/src/hotspot/share/gc/shenandoah/shenandoahLock.hpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/gc/shenandoah/shenandoahLock.hpp 2025-01-04 20:25:18.000000000 +0000 @@ -35,34 +35,41 @@ enum LockState { unlocked = 0, locked = 1 }; shenandoah_padding(0); - volatile int _state; + volatile LockState _state; shenandoah_padding(1); - volatile Thread* _owner; + Thread* volatile _owner; shenandoah_padding(2); + template + void contended_lock_internal(JavaThread* java_thread); public: ShenandoahLock() : _state(unlocked), _owner(NULL) {}; - void lock() { -#ifdef ASSERT - assert(_owner != Thread::current(), "reentrant locking attempt, would deadlock"); -#endif - Thread::SpinAcquire(&_state, "Shenandoah Heap Lock"); -#ifdef ASSERT - assert(_state == locked, "must be locked"); - assert(_owner == NULL, "must not be owned"); - _owner = Thread::current(); -#endif + void lock(bool allow_block_for_safepoint) { + assert(Atomic::load(&_owner) != Thread::current(), "reentrant locking attempt, would deadlock"); + + if ((allow_block_for_safepoint && SafepointSynchronize::is_synchronizing()) || + (Atomic::cmpxchg(&_state, unlocked, locked) != unlocked)) { + // 1. Java thread, and there is a pending safepoint. Dive into contended locking + // immediately without trying anything else, and block. + // 2. Fast lock fails, dive into contended lock handling. + contended_lock(allow_block_for_safepoint); + } + + assert(Atomic::load(&_state) == locked, "must be locked"); + assert(Atomic::load(&_owner) == NULL, "must not be owned"); + DEBUG_ONLY(Atomic::store(&_owner, Thread::current());) } void unlock() { -#ifdef ASSERT - assert (_owner == Thread::current(), "sanity"); - _owner = NULL; -#endif - Thread::SpinRelease(&_state); + assert(Atomic::load(&_owner) == Thread::current(), "sanity"); + DEBUG_ONLY(Atomic::store(&_owner, (Thread*)NULL);) + OrderAccess::fence(); + Atomic::store(&_state, unlocked); } + void contended_lock(bool allow_block_for_safepoint); + bool owned_by_self() { #ifdef ASSERT return _state == locked && _owner == Thread::current(); @@ -77,9 +84,9 @@ private: ShenandoahLock* const _lock; public: - ShenandoahLocker(ShenandoahLock* lock) : _lock(lock) { + ShenandoahLocker(ShenandoahLock* lock, bool allow_block_for_safepoint = false) : _lock(lock) { if (_lock != NULL) { - _lock->lock(); + _lock->lock(allow_block_for_safepoint); } } diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/jfr/dcmd/jfrDcmds.cpp openjdk-17-17.0.14+7/src/hotspot/share/jfr/dcmd/jfrDcmds.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/jfr/dcmd/jfrDcmds.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/jfr/dcmd/jfrDcmds.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -103,10 +103,6 @@ } }; -static bool is_module_available(outputStream* output, TRAPS) { - return JfrJavaSupport::is_jdk_jfr_module_available(output, THREAD); -} - static bool is_disabled(outputStream* output) { if (Jfr::is_disabled()) { if (output != NULL) { @@ -119,7 +115,28 @@ static bool invalid_state(outputStream* out, TRAPS) { DEBUG_ONLY(JfrJavaSupport::check_java_thread_in_vm(THREAD)); - return is_disabled(out) || !is_module_available(out, THREAD); + if (is_disabled(out)) { + return true; + } + if (!JfrJavaSupport::is_jdk_jfr_module_available()) { + JfrJavaSupport::load_jdk_jfr_module(THREAD); + if (HAS_PENDING_EXCEPTION) { + // Log exception here, but let is_jdk_jfr_module_available(out, THREAD) + // handle output to the user. + ResourceMark rm(THREAD); + oop throwable = PENDING_EXCEPTION; + assert(throwable != nullptr, "invariant"); + oop msg = java_lang_Throwable::message(throwable); + if (msg != nullptr) { + char* text = java_lang_String::as_utf8_string(msg); + if (text != nullptr) { + log_debug(jfr, startup)("Flight Recorder can not be enabled. %s", text); + } + } + CLEAR_PENDING_EXCEPTION; + } + } + return !JfrJavaSupport::is_jdk_jfr_module_available(out, THREAD); } static void handle_pending_exception(outputStream* output, bool startup, oop throwable) { diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp openjdk-17-17.0.14+7/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -41,6 +41,7 @@ #include "runtime/handles.inline.hpp" #include "runtime/fieldDescriptor.inline.hpp" #include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" #include "runtime/jniHandles.inline.hpp" #include "runtime/semaphore.inline.hpp" #include "runtime/synchronizer.hpp" @@ -607,6 +608,23 @@ const char* const JDK_JFR_MODULE_NAME = "jdk.jfr"; const char* const JDK_JFR_PACKAGE_NAME = "jdk/jfr"; + + +void JfrJavaSupport::load_jdk_jfr_module(TRAPS) { + DEBUG_ONLY(JfrJavaSupport::check_java_thread_in_vm(THREAD)); + ResourceMark rm(THREAD); + HandleMark hm(THREAD); + Handle h_module_name = java_lang_String::create_from_str(JDK_JFR_MODULE_NAME, CHECK); + JavaValue result(T_OBJECT); + JavaCalls::call_static(&result, + vmClasses::module_Modules_klass(), + vmSymbols::loadModule_name(), + vmSymbols::loadModule_signature(), + h_module_name, + CHECK + ); +} + static bool is_jdk_jfr_module_in_readability_graph() { // take one of the packages in the module to be located and query for its definition. TempNewSymbol pkg_sym = SymbolTable::new_symbol(JDK_JFR_PACKAGE_NAME); diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp openjdk-17-17.0.14+7/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp --- openjdk-17-17.0.13+11/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp 2025-01-04 20:25:18.000000000 +0000 @@ -86,6 +86,7 @@ static void throw_class_format_error(const char* message, TRAPS); static void throw_runtime_exception(const char* message, TRAPS); + static void load_jdk_jfr_module(TRAPS); static bool is_jdk_jfr_module_available(); static bool is_jdk_jfr_module_available(outputStream* stream, TRAPS); diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/jfr/metadata/metadata.xml openjdk-17-17.0.14+7/src/hotspot/share/jfr/metadata/metadata.xml --- openjdk-17-17.0.13+11/src/hotspot/share/jfr/metadata/metadata.xml 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/jfr/metadata/metadata.xml 2025-01-04 20:25:18.000000000 +0000 @@ -1051,7 +1051,7 @@ - + diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/memory/guardedMemory.cpp openjdk-17-17.0.14+7/src/hotspot/share/memory/guardedMemory.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/memory/guardedMemory.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/memory/guardedMemory.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -33,7 +33,9 @@ if (outerp != NULL) { GuardedMemory guarded(outerp, len, tag); void* innerp = guarded.get_user_ptr(); - memcpy(innerp, ptr, len); + if (ptr != nullptr) { + memcpy(innerp, ptr, len); + } return innerp; } return NULL; // OOM diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/oops/instanceKlass.cpp openjdk-17-17.0.14+7/src/hotspot/share/oops/instanceKlass.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/oops/instanceKlass.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/oops/instanceKlass.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -3427,11 +3427,13 @@ } } st->print(BULLET"method ordering: "); method_ordering()->print_value_on(st); st->cr(); - st->print(BULLET"default_methods: "); default_methods()->print_value_on(st); st->cr(); - if (Verbose && default_methods() != NULL) { - Array* method_array = default_methods(); - for (int i = 0; i < method_array->length(); i++) { - st->print("%d : ", i); method_array->at(i)->print_value(); st->cr(); + if (default_methods() != nullptr) { + st->print(BULLET"default_methods: "); default_methods()->print_value_on(st); st->cr(); + if (Verbose) { + Array* method_array = default_methods(); + for (int i = 0; i < method_array->length(); i++) { + st->print("%d : ", i); method_array->at(i)->print_value(); st->cr(); + } } } if (default_vtable_indices() != NULL) { diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/oops/method.cpp openjdk-17-17.0.14+7/src/hotspot/share/oops/method.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/oops/method.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/oops/method.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -2242,10 +2242,15 @@ Method* Method::checked_resolve_jmethod_id(jmethodID mid) { if (mid == NULL) return NULL; Method* o = resolve_jmethod_id(mid); - if (o == NULL || o == JNIMethodBlock::_free_method || !((Metadata*)o)->is_method()) { + if (o == NULL || o == JNIMethodBlock::_free_method) { return NULL; } - return o; + // Method should otherwise be valid. Assert for testing. + assert(is_valid_method(o), "should be valid jmethodid"); + // If the method's class holder object is unreferenced, but not yet marked as + // unloaded, we need to return NULL here too because after a safepoint, its memory + // will be reclaimed. + return o->method_holder()->is_loader_alive() ? o : NULL; }; void Method::set_on_stack(const bool value) { diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/oops/symbol.cpp openjdk-17-17.0.14+7/src/hotspot/share/oops/symbol.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/oops/symbol.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/oops/symbol.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -22,7 +22,6 @@ * */ - #include "precompiled.hpp" #include "cds/metaspaceShared.hpp" #include "classfile/altHashing.hpp" @@ -388,11 +387,9 @@ // The print_value functions are present in all builds, to support the // disassembler and error reporting. void Symbol::print_value_on(outputStream* st) const { - st->print("'"); - for (int i = 0; i < utf8_length(); i++) { - st->print("%c", char_at(i)); - } - st->print("'"); + st->print_raw("'", 1); + st->print_raw((const char*)base(), utf8_length()); + st->print_raw("'", 1); } void Symbol::print_value() const { print_value_on(tty); } diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/opto/compile.cpp openjdk-17-17.0.14+7/src/hotspot/share/opto/compile.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/opto/compile.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/opto/compile.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -3113,8 +3113,8 @@ bool is_oop = t->isa_oopptr() != nullptr; bool is_klass = t->isa_klassptr() != nullptr; - if ((is_oop && Matcher::const_oop_prefer_decode() ) || - (is_klass && Matcher::const_klass_prefer_decode())) { + if ((is_oop && UseCompressedOops && Matcher::const_oop_prefer_decode() ) || + (is_klass && UseCompressedClassPointers && Matcher::const_klass_prefer_decode())) { Node* nn = nullptr; int op = is_oop ? Op_ConN : Op_ConNKlass; diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/opto/gcm.cpp openjdk-17-17.0.14+7/src/hotspot/share/opto/gcm.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/opto/gcm.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/opto/gcm.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -648,6 +648,20 @@ // The anti-dependence constraints apply only to the fringe of this tree. Node* initial_mem = load->in(MemNode::Memory); + // We don't optimize the memory graph for pinned loads, so we may need to raise the + // root of our search tree through the corresponding slices of MergeMem nodes to + // get to the node that really creates the memory state for this slice. + if (load_alias_idx >= Compile::AliasIdxRaw) { + while (initial_mem->is_MergeMem()) { + MergeMemNode* mm = initial_mem->as_MergeMem(); + Node* p = mm->memory_at(load_alias_idx); + if (p != mm->base_memory()) { + initial_mem = p; + } else { + break; + } + } + } worklist_store.push(initial_mem); worklist_visited.push(initial_mem); worklist_mem.push(nullptr); diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/opto/loopnode.cpp openjdk-17-17.0.14+7/src/hotspot/share/opto/loopnode.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/opto/loopnode.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/opto/loopnode.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1478,12 +1478,28 @@ // Since stride > 0 and limit_correction <= stride + 1, we can restate this with no over- or underflow into: // max_int - canonicalized_correction - limit_correction >= limit // Since canonicalized_correction and limit_correction are both constants, we can replace them with a new constant: - // final_correction = canonicalized_correction + limit_correction + // (v) final_correction = canonicalized_correction + limit_correction + // // which gives us: // // Final predicate condition: // max_int - final_correction >= limit // + // However, we need to be careful that (v) does not over- or underflow. + // We know that: + // canonicalized_correction = stride - 1 + // and + // limit_correction <= stride + 1 + // and thus + // canonicalized_correction + limit_correction <= 2 * stride + // To prevent an over- or underflow of (v), we must ensure that + // 2 * stride <= max_int + // which can safely be checked without over- or underflow with + // (vi) stride != min_int AND abs(stride) <= max_int / 2 + // + // We could try to further optimize the cases where (vi) does not hold but given that such large strides are + // very uncommon and the loop would only run for a very few iterations anyway, we simply bail out if (vi) fails. + // // (2) Loop Limit Check Predicate for (ii): // Using (ii): init < limit // @@ -1514,6 +1530,10 @@ // there is no overflow of the iv phi after the first iteration. In this case, we don't need to check (ii) // again and can skip the predicate. + // Check (vi) and bail out if the stride is too big. + if (stride_con == min_signed_integer(iv_bt) || (ABS(stride_con) > max_signed_integer(iv_bt) / 2)) { + return false; + } // Accounting for (LE3) and (LE4) where we use pre-incremented phis in the loop exit check. const jlong limit_correction_for_pre_iv_exit_check = (phi_incr != nullptr) ? stride_con : 0; @@ -4787,7 +4807,8 @@ } else { // Else not a nested loop if( !_nodes[m->_idx] ) continue; // Dead code has no loop - l = get_loop(m); // Get previously determined loop + IdealLoopTree* m_loop = get_loop(m); + l = m_loop; // Get previously determined loop // If successor is header of a loop (nest), move up-loop till it // is a member of some outer enclosing loop. Since there are no // shared headers (I've split them already) I only need to go up @@ -4813,10 +4834,10 @@ // Insert the NeverBranch between 'm' and it's control user. NeverBranchNode *iff = new NeverBranchNode( m ); _igvn.register_new_node_with_optimizer(iff); - set_loop(iff, l); + set_loop(iff, m_loop); Node *if_t = new CProjNode( iff, 0 ); _igvn.register_new_node_with_optimizer(if_t); - set_loop(if_t, l); + set_loop(if_t, m_loop); Node* cfg = nullptr; // Find the One True Control User of m for (DUIterator_Fast jmax, j = m->fast_outs(jmax); j < jmax; j++) { diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/opto/node.hpp openjdk-17-17.0.14+7/src/hotspot/share/opto/node.hpp --- openjdk-17-17.0.13+11/src/hotspot/share/opto/node.hpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/opto/node.hpp 2025-01-04 20:25:18.000000000 +0000 @@ -1515,8 +1515,8 @@ class SimpleDUIterator : public StackObj { private: Node* node; - DUIterator_Fast i; DUIterator_Fast imax; + DUIterator_Fast i; public: SimpleDUIterator(Node* n): node(n), i(n->fast_outs(imax)) {} bool has_next() { return i < imax; } diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/opto/subnode.cpp openjdk-17-17.0.14+7/src/hotspot/share/opto/subnode.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/opto/subnode.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/opto/subnode.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1483,44 +1483,86 @@ return new BoolNode( ncmp, _test.negate() ); } - // Change ((x & m) u<= m) or ((m & x) u<= m) to always true - // Same with ((x & m) u< m+1) and ((m & x) u< m+1) + // We use the following Lemmas/insights for the following two transformations (1) and (2): + // x & y <=u y, for any x and y (Lemma 1, masking always results in a smaller unsigned number) + // y Opcode() == Op_AddI && cmp2->in(2)->find_int_con(0) == 1) { - bound = cmp2->in(1); + // (1b) "(x & m) in(1); + const TypeInt* rhs_m_type = phase->type(rhs_m)->isa_int(); + if (rhs_m_type->_lo > -1 || rhs_m_type->_hi < -1) { + // Exclude any case where m == -1 is possible. + m = rhs_m; + } } - if (cmp1->in(2) == bound || cmp1->in(1) == bound) { + if (cmp1->in(2) == m || cmp1->in(1) == m) { return ConINode::make(1); } } - // Change ((x & (m - 1)) u< m) into (m > 0) - // This is the off-by-one variant of the above + // (2) Change ((x & (m - 1)) u 0) + // This is the off-by-one variant of the above. + // + // We now prove that this replacement is correct. This is the same as proving + // "m >u 0" if and only if "x & (m - 1) u 0 <=> x & (m - 1) m >u 0": + // We prove this by contradiction: + // Assume m <=u 0 which is equivalent to m == 0: + // and thus + // x & (m - 1) u 0 => x & (m - 1) u 0, no underflow of "m - 1" + // + // + // Note that the signed version of "m > 0": + // m > 0 <=> x & (m - 1) 0 + // is false which is a contradiction. if (cop == Op_CmpU && _test._test == BoolTest::lt && cmp1_op == Op_AndI) { - Node* l = cmp1->in(1); - Node* r = cmp1->in(2); - for (int repeat = 0; repeat < 2; repeat++) { - bool match = r->Opcode() == Op_AddI && r->in(2)->find_int_con(0) == -1 && - r->in(1) == cmp2; - if (match) { - // arraylength known to be non-negative, so a (arraylength != 0) is sufficient, - // but to be compatible with the array range check pattern, use (arraylength u> 0) - Node* ncmp = cmp2->Opcode() == Op_LoadRange - ? phase->transform(new CmpUNode(cmp2, phase->intcon(0))) - : phase->transform(new CmpINode(cmp2, phase->intcon(0))); - return new BoolNode(ncmp, BoolTest::gt); - } else { - // commute and try again - l = cmp1->in(2); - r = cmp1->in(1); + Node* m = cmp2; // RHS: m + for (int add_idx = 1; add_idx <= 2; add_idx++) { // LHS: "(m + (-1)) & x" or "x & (m + (-1))"? + Node* maybe_m_minus_1 = cmp1->in(add_idx); + if (maybe_m_minus_1->Opcode() == Op_AddI && + maybe_m_minus_1->in(2)->find_int_con(0) == -1 && + maybe_m_minus_1->in(1) == m) { + Node* m_cmpu_0 = phase->transform(new CmpUNode(m, phase->intcon(0))); + return new BoolNode(m_cmpu_0, BoolTest::gt); } } } diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/prims/jniCheck.cpp openjdk-17-17.0.14+7/src/hotspot/share/prims/jniCheck.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/prims/jniCheck.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/prims/jniCheck.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2316,7 +2316,7 @@ // make sure the last pointer in the checked table is not null, indicating // an addition to the JNINativeInterface_ structure without initializing // it in the checked table. - debug_only(int *lastPtr = (int *)((char *)&checked_jni_NativeInterface + \ + debug_only(intptr_t *lastPtr = (intptr_t *)((char *)&checked_jni_NativeInterface + \ sizeof(*unchecked_jni_NativeInterface) - sizeof(char *));) assert(*lastPtr != 0, "Mismatched JNINativeInterface tables, check for new entries"); diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/prims/unsafe.cpp openjdk-17-17.0.14+7/src/hotspot/share/prims/unsafe.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/prims/unsafe.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/prims/unsafe.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -130,13 +130,9 @@ static inline void* index_oop_from_field_offset_long(oop p, jlong field_offset) { assert_field_offset_sane(p, field_offset); - jlong byte_offset = field_offset_to_byte_offset(field_offset); - - if (sizeof(char*) == sizeof(jint)) { // (this constant folds!) - return cast_from_oop
    (p) + (jint) byte_offset; - } else { - return cast_from_oop
    (p) + byte_offset; - } + uintptr_t base_address = cast_from_oop(p); + uintptr_t byte_offset = (uintptr_t)field_offset_to_byte_offset(field_offset); + return (void*)(base_address + byte_offset); } // Externally callable versions: diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/prims/whitebox.cpp openjdk-17-17.0.14+7/src/hotspot/share/prims/whitebox.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/prims/whitebox.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/prims/whitebox.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1782,6 +1782,12 @@ return cp->cache()->length(); WB_END +WB_ENTRY(jobjectArray, WB_GetResolvedReferences(JNIEnv* env, jobject wb, jclass klass)) + InstanceKlass* ik = InstanceKlass::cast(java_lang_Class::as_Klass(JNIHandles::resolve(klass))); + objArrayOop resolved_refs= ik->constants()->resolved_references(); + return (jobjectArray)JNIHandles::make_local(THREAD, resolved_refs); +WB_END + WB_ENTRY(jint, WB_ConstantPoolRemapInstructionOperandFromCache(JNIEnv* env, jobject wb, jclass klass, jint index)) InstanceKlass* ik = InstanceKlass::cast(java_lang_Class::as_Klass(JNIHandles::resolve(klass))); ConstantPool* cp = ik->constants(); @@ -1913,18 +1919,6 @@ return !HeapShared::closed_archive_heap_region_mapped(); WB_END -WB_ENTRY(jobject, WB_GetResolvedReferences(JNIEnv* env, jobject wb, jclass clazz)) - Klass *k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)); - if (k->is_instance_klass()) { - InstanceKlass *ik = InstanceKlass::cast(k); - ConstantPool *cp = ik->constants(); - objArrayOop refs = cp->resolved_references(); - return (jobject)JNIHandles::make_local(THREAD, refs); - } else { - return NULL; - } -WB_END - WB_ENTRY(void, WB_LinkClass(JNIEnv* env, jobject wb, jclass clazz)) Klass *k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)); if (!k->is_instance_klass()) { @@ -2553,6 +2547,7 @@ {CC"getConstantPool0", CC"(Ljava/lang/Class;)J", (void*)&WB_GetConstantPool }, {CC"getConstantPoolCacheIndexTag0", CC"()I", (void*)&WB_GetConstantPoolCacheIndexTag}, {CC"getConstantPoolCacheLength0", CC"(Ljava/lang/Class;)I", (void*)&WB_GetConstantPoolCacheLength}, + {CC"getResolvedReferences0", CC"(Ljava/lang/Class;)[Ljava/lang/Object;", (void*)&WB_GetResolvedReferences}, {CC"remapInstructionOperandFromCPCache0", CC"(Ljava/lang/Class;I)I", (void*)&WB_ConstantPoolRemapInstructionOperandFromCache}, {CC"encodeConstantPoolIndyIndex0", @@ -2578,7 +2573,6 @@ {CC"isShared", CC"(Ljava/lang/Object;)Z", (void*)&WB_IsShared }, {CC"isSharedClass", CC"(Ljava/lang/Class;)Z", (void*)&WB_IsSharedClass }, {CC"areSharedStringsIgnored", CC"()Z", (void*)&WB_AreSharedStringsIgnored }, - {CC"getResolvedReferences", CC"(Ljava/lang/Class;)Ljava/lang/Object;", (void*)&WB_GetResolvedReferences}, {CC"linkClass", CC"(Ljava/lang/Class;)V", (void*)&WB_LinkClass}, {CC"areOpenArchiveHeapObjectsMapped", CC"()Z", (void*)&WB_AreOpenArchiveHeapObjectsMapped}, {CC"isCDSIncluded", CC"()Z", (void*)&WB_IsCDSIncluded }, diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/runtime/arguments.cpp openjdk-17-17.0.14+7/src/hotspot/share/runtime/arguments.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/runtime/arguments.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/runtime/arguments.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -1996,6 +1996,14 @@ } #endif +#if INCLUDE_JFR + if (status && (FlightRecorderOptions || StartFlightRecording)) { + if (!create_numbered_module_property("jdk.module.addmods", "jdk.jfr", addmods_count++)) { + return false; + } + } +#endif + #ifndef SUPPORT_RESERVED_STACK_AREA if (StackReservedPages != 0) { FLAG_SET_CMDLINE(StackReservedPages, 0); diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/runtime/deoptimization.cpp openjdk-17-17.0.14+7/src/hotspot/share/runtime/deoptimization.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/runtime/deoptimization.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/runtime/deoptimization.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -429,7 +429,7 @@ #if COMPILER2_OR_JVMCI if ((jvmci_enabled COMPILER2_PRESENT( || ((DoEscapeAnalysis || EliminateNestedLocks) && EliminateLocks) )) && !EscapeBarrier::objs_are_deoptimized(current, deoptee.id())) { - bool unused; + bool unused = false; restore_eliminated_locks(current, chunk, realloc_failures, deoptee, exec_mode, unused); } #endif // COMPILER2_OR_JVMCI diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/runtime/java.cpp openjdk-17-17.0.14+7/src/hotspot/share/runtime/java.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/runtime/java.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/runtime/java.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -77,6 +77,7 @@ #include "runtime/vm_version.hpp" #include "services/memTracker.hpp" #include "utilities/dtrace.hpp" +#include "utilities/events.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/macros.hpp" #include "utilities/vmError.hpp" @@ -410,6 +411,8 @@ #define BEFORE_EXIT_DONE 2 static jint volatile _before_exit_status = BEFORE_EXIT_NOT_RUN; + Events::log(thread, "Before exit entered"); + // Note: don't use a Mutex to guard the entire before_exit(), as // JVMTI post_thread_end_event and post_vm_death_event will run native code. // A CAS or OSMutex would work just fine but then we need to manipulate diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/runtime/os.cpp openjdk-17-17.0.14+7/src/hotspot/share/runtime/os.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/runtime/os.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/runtime/os.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -985,7 +985,9 @@ if (envvar != NULL) { st->print("%s", env_list[i]); st->print("="); - st->print_cr("%s", envvar); + st->print("%s", envvar); + // Use separate cr() printing to avoid unnecessary buffer operations that might cause truncation. + st->cr(); } } } diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/runtime/thread.cpp openjdk-17-17.0.14+7/src/hotspot/share/runtime/thread.cpp --- openjdk-17-17.0.13+11/src/hotspot/share/runtime/thread.cpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/runtime/thread.cpp 2025-01-04 20:25:18.000000000 +0000 @@ -3399,10 +3399,10 @@ // Threads::destroy_vm() is normally called from jni_DestroyJavaVM() when // the program falls off the end of main(). Another VM exit path is through -// vm_exit() when the program calls System.exit() to return a value or when -// there is a serious error in VM. The two shutdown paths are not exactly -// the same, but they share Shutdown.shutdown() at Java level and before_exit() -// and VM_Exit op at VM level. +// vm_exit(), when the program calls System.exit() to return a value, or when +// there is a serious error in VM. +// These two separate shutdown paths are not exactly the same, but they share +// Shutdown.shutdown() at Java level and before_exit() and VM_Exit op at VM level. // // Shutdown sequence: // + Shutdown native memory tracking if it is on diff -Nru openjdk-17-17.0.13+11/src/hotspot/share/utilities/growableArray.hpp openjdk-17-17.0.14+7/src/hotspot/share/utilities/growableArray.hpp --- openjdk-17-17.0.13+11/src/hotspot/share/utilities/growableArray.hpp 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/hotspot/share/utilities/growableArray.hpp 2025-01-04 20:25:18.000000000 +0000 @@ -270,10 +270,12 @@ } void sort(int f(E*, E*)) { + if (_data == nullptr) return; qsort(_data, length(), sizeof(E), (_sort_Fn)f); } // sort by fixed-stride sub arrays: void sort(int f(E*, E*), int stride) { + if (_data == nullptr) return; qsort(_data, length() / stride, sizeof(E) * stride, (_sort_Fn)f); } diff -Nru openjdk-17-17.0.13+11/src/java.base/macosx/native/libjava/ProcessHandleImpl_macosx.c openjdk-17-17.0.14+7/src/java.base/macosx/native/libjava/ProcessHandleImpl_macosx.c --- openjdk-17-17.0.13+11/src/java.base/macosx/native/libjava/ProcessHandleImpl_macosx.c 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/macosx/native/libjava/ProcessHandleImpl_macosx.c 2025-01-04 20:25:18.000000000 +0000 @@ -89,25 +89,35 @@ } } - // Get buffer size needed to read all processes - int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0}; - if (sysctl(mib, 4, NULL, &bufSize, NULL, 0) < 0) { - JNU_ThrowByNameWithLastError(env, - "java/lang/RuntimeException", "sysctl failed"); - return -1; - } + int errsysctl; + int maxRetries = 100; + void *buffer = NULL; + do { + int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0}; + if (buffer != NULL) free(buffer); + // Get buffer size needed to read all processes + if (sysctl(mib, 4, NULL, &bufSize, NULL, 0) < 0) { + JNU_ThrowByNameWithMessageAndLastError(env, + "java/lang/RuntimeException", "sysctl failed"); + return -1; + } - // Allocate buffer big enough for all processes - void *buffer = malloc(bufSize); - if (buffer == NULL) { - JNU_ThrowOutOfMemoryError(env, "malloc failed"); - return -1; - } + // Allocate buffer big enough for all processes; add a little + // bit of space to be able to hold a few more proc infos + // for processes started right after the first sysctl call + buffer = malloc(bufSize + 4 * sizeof(struct kinfo_proc)); + if (buffer == NULL) { + JNU_ThrowOutOfMemoryError(env, "malloc failed"); + return -1; + } + + // Read process info for all processes + errsysctl = sysctl(mib, 4, buffer, &bufSize, NULL, 0); + } while (errsysctl < 0 && errno == ENOMEM && maxRetries-- > 0); - // Read process info for all processes - if (sysctl(mib, 4, buffer, &bufSize, NULL, 0) < 0) { - JNU_ThrowByNameWithLastError(env, - "java/lang/RuntimeException", "sysctl failed"); + if (errsysctl < 0) { + JNU_ThrowByNameWithMessageAndLastError(env, + "java/lang/RuntimeException", "sysctl failed to get info about all processes"); free(buffer); return -1; } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java openjdk-17-17.0.14+7/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -123,6 +123,25 @@ } } + // validate the key algorithm/encoding and then returns the key bytes + // which callers should erase after use + private static byte[] checkKey(Key key, int fixedKeySize) + throws InvalidKeyException { + + byte[] keyBytes = key.getEncoded(); + if (keyBytes == null) { + throw new InvalidKeyException("Null key"); + } + int keyLen = keyBytes.length; + if (!key.getAlgorithm().equalsIgnoreCase("AES") || + !AESCrypt.isKeySizeValid(keyLen) || + (fixedKeySize != -1 && fixedKeySize != keyLen)) { + throw new InvalidKeyException("Invalid key length: " + + keyLen + " bytes"); + } + return keyBytes; + } + // store the specified bytes, e.g. in[inOfs...(inOfs+inLen-1)] into // 'dataBuf' starting at 'dataIdx'. // NOTE: if 'in' is null, this method will ensure that 'dataBuf' has enough @@ -294,10 +313,8 @@ // actual impl for various engineInit(...) methods private void implInit(int opmode, Key key, byte[] iv, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException { - byte[] keyBytes = key.getEncoded(); - if (keyBytes == null) { - throw new InvalidKeyException("Null key"); - } + byte[] keyBytes = checkKey(key, fixedKeySize); + this.opmode = opmode; boolean decrypting = (opmode == Cipher.DECRYPT_MODE || opmode == Cipher.UNWRAP_MODE); @@ -658,21 +675,11 @@ * @exception InvalidKeyException if key is invalid. */ protected int engineGetKeySize(Key key) throws InvalidKeyException { - byte[] encoded = key.getEncoded(); - if (encoded == null) { - throw new InvalidKeyException("Cannot decide key length"); - } + byte[] keyBytes = checkKey(key, fixedKeySize); + // only need length; erase immediately + Arrays.fill(keyBytes, (byte) 0); + return Math.multiplyExact(keyBytes.length, 8); - // only need length - Arrays.fill(encoded, (byte) 0); - int keyLen = encoded.length; - if (!key.getAlgorithm().equalsIgnoreCase("AES") || - !AESCrypt.isKeySizeValid(keyLen) || - (fixedKeySize != -1 && fixedKeySize != keyLen)) { - throw new InvalidKeyException("Invalid key length: " + - keyLen + " bytes"); - } - return Math.multiplyExact(keyLen, 8); } /** diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/lang/ThreadLocal.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/lang/ThreadLocal.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/lang/ThreadLocal.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/lang/ThreadLocal.java 2025-01-04 20:25:18.000000000 +0000 @@ -90,7 +90,7 @@ * The next hash code to be given out. Updated atomically. Starts at * zero. */ - private static AtomicInteger nextHashCode = + private static final AtomicInteger nextHashCode = new AtomicInteger(); /** diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/lang/invoke/MethodHandle.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/lang/invoke/MethodHandle.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/lang/invoke/MethodHandle.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/lang/invoke/MethodHandle.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1764,8 +1764,7 @@ if (oldForm != newForm) { assert (newForm.customized == null || newForm.customized == this); newForm.prepare(); // as in MethodHandle. - UNSAFE.putReference(this, FORM_OFFSET, newForm); - UNSAFE.fullFence(); + UNSAFE.putReferenceRelease(this, FORM_OFFSET, newForm); // properly publish newForm } } finally { updateInProgress = false; diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/lang/invoke/VarHandles.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/lang/invoke/VarHandles.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/lang/invoke/VarHandles.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/lang/invoke/VarHandles.java 2025-01-04 20:25:18.000000000 +0000 @@ -38,8 +38,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; import java.util.stream.Stream; import static java.lang.invoke.MethodHandleStatics.UNSAFE; @@ -50,13 +48,6 @@ final class VarHandles { - static ClassValue> ADDRESS_FACTORIES = new ClassValue<>() { - @Override - protected ConcurrentMap computeValue(Class type) { - return new ConcurrentHashMap<>(); - } - }; - static VarHandle makeFieldHandle(MemberName f, Class refc, Class type, boolean isWriteAllowedOnFinalFields) { if (!f.isStatic()) { long foffset = MethodHandleNatives.objectFieldOffset(f); diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/nio/charset/Charset.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/nio/charset/Charset.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/nio/charset/Charset.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/nio/charset/Charset.java 2025-01-04 20:25:18.000000000 +0000 @@ -41,7 +41,6 @@ import java.util.Locale; import java.util.Map; import java.util.NoSuchElementException; -import java.util.Objects; import java.util.ServiceConfigurationError; import java.util.ServiceLoader; import java.util.Set; @@ -636,7 +635,12 @@ * If the canonical name or any of the aliases are illegal */ protected Charset(String canonicalName, String[] aliases) { - String[] as = Objects.requireNonNullElse(aliases, zeroAliases); + String[] as = + aliases == null ? + zeroAliases : + VM.isSystemDomainLoader(getClass().getClassLoader()) ? + aliases : + Arrays.copyOf(aliases, aliases.length); // Skip checks for the standard, built-in Charsets we always load // during initialization. diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/nio/file/Files.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/nio/file/Files.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/nio/file/Files.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/nio/file/Files.java 2025-01-04 20:25:18.000000000 +0000 @@ -806,7 +806,7 @@ try { createDirectory(dir, attrs); } catch (FileAlreadyExistsException x) { - if (!isDirectory(dir, LinkOption.NOFOLLOW_LINKS)) + if (!isDirectory(dir)) throw x; } } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/security/MessageDigestSpi.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/security/MessageDigestSpi.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/security/MessageDigestSpi.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/security/MessageDigestSpi.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -204,7 +204,15 @@ */ public Object clone() throws CloneNotSupportedException { if (this instanceof Cloneable) { - return super.clone(); + MessageDigestSpi o = (MessageDigestSpi)super.clone(); + if (o.tempArray != null) { + // New byte arrays are allocated when the ByteBuffer argument + // to engineUpdate is not backed by a byte array. + // Here, the newly allocated byte array must also be cloned + // to prevent threads from sharing the same memory. + o.tempArray = tempArray.clone(); + } + return o; } else { throw new CloneNotSupportedException(); } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/security/cert/X509CertSelector.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/security/cert/X509CertSelector.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/security/cert/X509CertSelector.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/security/cert/X509CertSelector.java 2025-01-04 20:25:18.000000000 +0000 @@ -1970,10 +1970,10 @@ } if (debug != null) { - debug.println("X509CertSelector.match(SN: " - + (xcert.getSerialNumber()).toString(16) + "\n Issuer: " - + xcert.getIssuerX500Principal() + "\n Subject: " + xcert.getSubjectX500Principal() - + ")"); + debug.println("X509CertSelector.match(Serial number: " + + Debug.toString(xcert.getSerialNumber()) + + "\n Issuer: " + xcert.getIssuerX500Principal() + "\n Subject: " + + xcert.getSubjectX500Principal() + ")"); } /* match on X509Certificate */ diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/time/format/DateTimeFormatter.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/time/format/DateTimeFormatter.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/time/format/DateTimeFormatter.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/time/format/DateTimeFormatter.java 2025-01-04 20:25:18.000000000 +0000 @@ -2240,29 +2240,23 @@ DateTimeParseContext context; try { context = formatter.parseUnresolved0(text, pos); - } catch (IndexOutOfBoundsException ex) { - if (pos.getErrorIndex() < 0) { - pos.setErrorIndex(0); - } - return null; - } - if (context == null) { - if (pos.getErrorIndex() < 0) { - pos.setErrorIndex(0); + if (context == null) { + if (pos.getErrorIndex() < 0) { + pos.setErrorIndex(0); + } + return null; } - return null; - } - try { TemporalAccessor resolved = context.toResolved(formatter.resolverStyle, formatter.resolverFields); if (parseType == null) { return resolved; } return resolved.query(parseType); } catch (RuntimeException ex) { - pos.setErrorIndex(0); + if (pos.getErrorIndex() < 0) { + pos.setErrorIndex(0); + } return null; } } } - } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java 2025-01-04 20:25:18.000000000 +0000 @@ -2891,7 +2891,7 @@ final Future f; Canceller(Future f) { this.f = f; } public void accept(Object ignore, Throwable ex) { - if (ex == null && f != null && !f.isDone()) + if (f != null && !f.isDone()) f.cancel(false); } } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/java/util/zip/ZipFile.java openjdk-17-17.0.14+7/src/java.base/share/classes/java/util/zip/ZipFile.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/java/util/zip/ZipFile.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/java/util/zip/ZipFile.java 2025-01-04 20:25:18.000000000 +0000 @@ -1660,6 +1660,9 @@ zerror("invalid END header (bad central directory offset)"); } // read in the CEN and END + if (end.cenlen + ENDHDR >= Integer.MAX_VALUE) { + zerror("invalid END header (central directory size too large)"); + } cen = this.cen = new byte[(int)(end.cenlen + ENDHDR)]; if (readFullyAt(cen, 0, cen.length, cenpos) != end.cenlen + ENDHDR) { zerror("read CEN tables failed"); diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -303,7 +303,8 @@ } static final String httpVersion = "HTTP/1.1"; - static final String acceptString = "*/*"; + static final String acceptString = + "text/html, image/gif, image/jpeg, */*; q=0.2"; // the following http request headers should NOT have their values // returned for security reasons. diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/nio/cs/StreamDecoder.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/nio/cs/StreamDecoder.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/nio/cs/StreamDecoder.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/nio/cs/StreamDecoder.java 2025-01-04 20:25:18.000000000 +0000 @@ -186,7 +186,13 @@ return n + 1; } - return n + implRead(cbuf, off, off + len); + // Read remaining characters + int nr = implRead(cbuf, off, off + len); + + // At this point, n is either 1 if a leftover character was read, + // or 0 if no leftover character was read. If n is 1 and nr is -1, + // indicating EOF, then we don't return their sum as this loses data. + return (nr < 0) ? (n == 1 ? 1 : nr) : (n + nr); } } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/jca/JCAUtil.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/jca/JCAUtil.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/jca/JCAUtil.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/jca/JCAUtil.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,6 +34,7 @@ import jdk.internal.event.EventHelper; import jdk.internal.event.X509CertificateEvent; import sun.security.util.KeyUtil; +import sun.security.util.Debug; /** * Collection of static utility methods used by the security framework. @@ -105,7 +106,7 @@ (cert instanceof X509Certificate x509)) { PublicKey pKey = x509.getPublicKey(); String algId = x509.getSigAlgName(); - String serNum = x509.getSerialNumber().toString(16); + String serNum = Debug.toString(x509.getSerialNumber()); String subject = x509.getSubjectX500Principal().toString(); String issuer = x509.getIssuerX500Principal().toString(); String keyType = pKey.getAlgorithm(); diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/pkcs/SignerInfo.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/pkcs/SignerInfo.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/pkcs/SignerInfo.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/pkcs/SignerInfo.java 2025-01-04 20:25:18.000000000 +0000 @@ -698,14 +698,15 @@ md.digest(encryptedDigest))) { throw new SignatureException("Signature timestamp (#" + - token.getSerialNumber() + ") generated on " + token.getDate() + - " is inapplicable"); + Debug.toString(token.getSerialNumber()) + + ") generated on " + token.getDate() + " is inapplicable"); } if (debug != null) { debug.println(); debug.println("Detected signature timestamp (#" + - token.getSerialNumber() + ") generated on " + token.getDate()); + Debug.toString(token.getSerialNumber()) + + ") generated on " + token.getDate()); debug.println(); } } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/BasicChecker.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/BasicChecker.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/BasicChecker.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/BasicChecker.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -244,7 +244,7 @@ debug.println("BasicChecker.updateState issuer: " + currCert.getIssuerX500Principal().toString() + "; subject: " + currCert.getSubjectX500Principal() + "; serial#: " + - currCert.getSerialNumber().toString()); + Debug.toString(currCert.getSerialNumber())); } if (PKIX.isDSAPublicKeyWithoutParams(cKey)) { // cKey needs to inherit DSA parameters from prev key diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/Builder.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/Builder.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/Builder.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/Builder.java 2025-01-04 20:25:18.000000000 +0000 @@ -435,8 +435,7 @@ if (debug != null) { debug.println("Builder.addMatchingCerts: " + "adding target cert" + - "\n SN: " + Debug.toHexString( - targetCert.getSerialNumber()) + + "\n SN: " + Debug.toString(targetCert.getSerialNumber()) + "\n Subject: " + targetCert.getSubjectX500Principal() + "\n Issuer: " + targetCert.getIssuerX500Principal()); } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/CertId.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/CertId.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/CertId.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/CertId.java 2025-01-04 20:25:18.000000000 +0000 @@ -108,7 +108,7 @@ encoder.encodeBuffer(issuerNameHash)); System.out.println("issuerKeyHash is " + encoder.encodeBuffer(issuerKeyHash)); - System.out.println("SerialNumber is " + serialNumber.getNumber()); + System.out.println("SerialNumber is " + Debug.toString(serialNumber.getNumber())); } } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -349,7 +349,7 @@ if (debug != null) { debug.println("DistributionPointFetcher.verifyCRL: " + "checking revocation status for" + - "\n SN: " + Debug.toHexString(certImpl.getSerialNumber()) + + "\n SN: " + Debug.toString(certImpl.getSerialNumber()) + "\n Subject: " + certImpl.getSubjectX500Principal() + "\n Issuer: " + certImpl.getIssuerX500Principal()); } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/ForwardBuilder.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/ForwardBuilder.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/ForwardBuilder.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/ForwardBuilder.java 2025-01-04 20:25:18.000000000 +0000 @@ -280,7 +280,7 @@ debug.println("ForwardBuilder.getMatchingCACerts: " + "found matching trust anchor." + "\n SN: " + - Debug.toHexString(trustedCert.getSerialNumber()) + + Debug.toString(trustedCert.getSerialNumber()) + "\n Subject: " + trustedCert.getSubjectX500Principal() + "\n Issuer: " + @@ -703,7 +703,7 @@ { if (debug != null) { debug.println("ForwardBuilder.verifyCert(SN: " - + Debug.toHexString(cert.getSerialNumber()) + + Debug.toString(cert.getSerialNumber()) + "\n Issuer: " + cert.getIssuerX500Principal() + ")" + "\n Subject: " + cert.getSubjectX500Principal() + ")"); } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -404,7 +404,8 @@ } if (debug != null) { debug.println("Status of certificate (with serial number " + - certId.getSerialNumber() + ") is: " + sr.getCertStatus()); + Debug.toString(certId.getSerialNumber()) + + ") is: " + sr.getCertStatus()); } } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -351,7 +351,7 @@ { if (debug != null) { debug.println("RevocationChecker.check: checking cert" + - "\n SN: " + Debug.toHexString(xcert.getSerialNumber()) + + "\n SN: " + Debug.toString(xcert.getSerialNumber()) + "\n Subject: " + xcert.getSubjectX500Principal() + "\n Issuer: " + xcert.getIssuerX500Principal()); } @@ -647,7 +647,7 @@ debug.println("RevocationChecker.checkApprovedCRLs() " + "starting the final sweep..."); debug.println("RevocationChecker.checkApprovedCRLs()" + - " cert SN: " + sn.toString()); + " cert SN: " + Debug.toString(sn)); } CRLReason reasonCode = CRLReason.UNSPECIFIED; diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/Vertex.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/Vertex.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/provider/certpath/Vertex.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/provider/certpath/Vertex.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -150,7 +150,7 @@ sb.append("Subject: ").append (x509Cert.getSubjectX500Principal()).append("\n"); sb.append("SerialNum: ").append - (x509Cert.getSerialNumber().toString(16)).append("\n"); + (Debug.toString(x509Cert.getSerialNumber())).append("\n"); sb.append("Expires: ").append (x509Cert.getNotAfter().toString()).append("\n"); boolean[] iUID = x509Cert.getIssuerUniqueID(); diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/ssl/SSLLogger.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/ssl/SSLLogger.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/ssl/SSLLogger.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/ssl/SSLLogger.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,6 +46,7 @@ import sun.security.action.GetPropertyAction; import sun.security.util.HexDumpEncoder; +import sun.security.util.Debug; import sun.security.x509.*; import static java.nio.charset.StandardCharsets.UTF_8; @@ -471,8 +472,7 @@ if (certExts == null) { Object[] certFields = { x509.getVersion(), - Utilities.toHexString( - x509.getSerialNumber().toByteArray()), + Debug.toString(x509.getSerialNumber()), x509.getSigAlgName(), x509.getIssuerX500Principal().toString(), dateTimeFormat.format(x509.getNotBefore().toInstant()), @@ -496,8 +496,7 @@ } Object[] certFields = { x509.getVersion(), - Utilities.toHexString( - x509.getSerialNumber().toByteArray()), + Debug.toString(x509.getSerialNumber()), x509.getSigAlgName(), x509.getIssuerX500Principal().toString(), dateTimeFormat.format(x509.getNotBefore().toInstant()), diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,6 +53,7 @@ import sun.security.provider.certpath.OCSPResponse; import sun.security.provider.certpath.ResponderId; import sun.security.util.Cache; +import sun.security.util.Debug; import sun.security.x509.PKIXExtensions; import sun.security.x509.SerialNumber; import sun.security.ssl.X509Authentication.X509Possession; @@ -419,8 +420,8 @@ if (SSLLogger.isOn && SSLLogger.isOn("respmgr")) { SSLLogger.fine( - "Check cache for SN" + cid.getSerialNumber() + ": " + - (respEntry != null ? "HIT" : "MISS")); + "Check cache for SN" + Debug.toString(cid.getSerialNumber()) + + ": " + (respEntry != null ? "HIT" : "MISS")); } return respEntry; } @@ -516,7 +517,7 @@ StringBuilder sb = new StringBuilder("StatusInfo:"); sb.append("\n\tCert: ").append( this.cert.getSubjectX500Principal()); - sb.append("\n\tSerial: ").append(this.cert.getSerialNumber()); + sb.append("\n\tSerial: ").append(Debug.toString(this.cert.getSerialNumber())); sb.append("\n\tResponder: ").append(this.responder); sb.append("\n\tResponse data: ").append( this.responseData != null ? @@ -563,7 +564,7 @@ } else { throw new IOException( "Unable to find SingleResponse for SN " + - cid.getSerialNumber()); + Debug.toString(cid.getSerialNumber())); } } else { nextUpdate = null; @@ -614,7 +615,7 @@ if (SSLLogger.isOn && SSLLogger.isOn("respmgr")) { SSLLogger.fine( "Starting fetch for SN " + - statInfo.cid.getSerialNumber()); + Debug.toString(statInfo.cid.getSerialNumber())); } try { ResponseCacheEntry cacheEntry; @@ -706,7 +707,7 @@ if (SSLLogger.isOn && SSLLogger.isOn("respmgr")) { SSLLogger.fine( "Added response for SN " + - certId.getSerialNumber() + + Debug.toString(certId.getSerialNumber()) + " to cache"); } } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/ssl/X509TrustManagerImpl.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/ssl/X509TrustManagerImpl.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/ssl/X509TrustManagerImpl.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/ssl/X509TrustManagerImpl.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -429,8 +429,17 @@ } if (!identifiable) { - checkIdentity(peerHost, - trustedChain[0], algorithm, chainsToPublicCA); + try { + checkIdentity(peerHost, + trustedChain[0], algorithm, chainsToPublicCA); + } catch(CertificateException ce) { + if (checkClientTrusted && "HTTPS".equalsIgnoreCase(algorithm)) { + throw new CertificateException("Endpoint Identification Algorithm " + + "HTTPS is not supported on the server side"); + } else { + throw ce; + } + } } } diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/tools/keytool/Main.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/tools/keytool/Main.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/tools/keytool/Main.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/tools/keytool/Main.java 2025-01-04 20:25:18.000000000 +0000 @@ -1125,7 +1125,6 @@ } } - KeyStore cakstore = buildTrustedCerts(); // -trustcacerts can be specified on -importcert, -printcert or -printcrl. // Reset it so that warnings on CA cert will remain for other command. if (command != IMPORTCERT && command != PRINTCERT @@ -1134,6 +1133,7 @@ } if (trustcacerts) { + KeyStore cakstore = buildTrustedCerts(); if (cakstore != null) { caks = cakstore; } else { diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/util/Debug.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/util/Debug.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/util/Debug.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/util/Debug.java 2025-01-04 20:25:18.000000000 +0000 @@ -398,6 +398,10 @@ return HexFormat.ofDelimiter(":").formatHex(b); } + public static String toString(BigInteger b) { + return toString(b.toByteArray()); + } + // Holder class to break cyclic dependency seen during build private static class FormatHolder { private static final String PATTERN = "yyyy-MM-dd kk:mm:ss.SSS"; diff -Nru openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/x509/SerialNumber.java openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/x509/SerialNumber.java --- openjdk-17-17.0.13+11/src/java.base/share/classes/sun/security/x509/SerialNumber.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/classes/sun/security/x509/SerialNumber.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,6 +27,7 @@ import java.io.IOException; import java.io.InputStream; import java.math.BigInteger; +import java.util.HexFormat; import sun.security.util.*; @@ -101,7 +102,7 @@ * Return the SerialNumber as user readable string. */ public String toString() { - return "SerialNumber: [" + Debug.toHexString(serialNum) + ']'; + return "SerialNumber: " + Debug.toString(serialNum); } /** diff -Nru openjdk-17-17.0.13+11/src/java.base/share/legal/public_suffix.md openjdk-17-17.0.14+7/src/java.base/share/legal/public_suffix.md --- openjdk-17-17.0.13+11/src/java.base/share/legal/public_suffix.md 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/share/legal/public_suffix.md 2025-01-04 20:25:18.000000000 +0000 @@ -11,7 +11,7 @@ The Source Code of this file is available under the Mozilla Public License, v. 2.0 and is located at -https://raw.githubusercontent.com/publicsuffix/list/b5bf572c52988dbe9d865b8f090ea819024a9936/public_suffix_list.dat. +https://raw.githubusercontent.com/publicsuffix/list/1cbd6e71a9b83620b1d0b11e49d3d9ff48c27e22/public_suffix_list.dat. If a copy of the MPL was not distributed with this file, you can obtain one at https://mozilla.org/MPL/2.0/. diff -Nru openjdk-17-17.0.13+11/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c openjdk-17-17.0.14+7/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c --- openjdk-17-17.0.13+11/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c 2025-01-04 20:25:18.000000000 +0000 @@ -537,7 +537,7 @@ * position integer as a filename. */ if ((dir = opendir("/proc")) == NULL) { - JNU_ThrowByNameWithLastError(env, + JNU_ThrowByNameWithMessageAndLastError(env, "java/lang/RuntimeException", "Unable to open /proc"); return -1; } diff -Nru openjdk-17-17.0.13+11/src/java.base/unix/native/libjava/ProcessImpl_md.c openjdk-17-17.0.14+7/src/java.base/unix/native/libjava/ProcessImpl_md.c --- openjdk-17-17.0.13+11/src/java.base/unix/native/libjava/ProcessImpl_md.c 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/unix/native/libjava/ProcessImpl_md.c 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -562,8 +562,17 @@ } offset = copystrings(buf, 0, &c->argv[0]); offset = copystrings(buf, offset, &c->envv[0]); - memcpy(buf+offset, c->pdir, sp.dirlen); - offset += sp.dirlen; + if (c->pdir != NULL) { + if (sp.dirlen > 0) { + memcpy(buf+offset, c->pdir, sp.dirlen); + offset += sp.dirlen; + } + } else { + if (sp.dirlen > 0) { + free(buf); + return -1; + } + } offset = copystrings(buf, offset, parentPathv); assert(offset == bufsize); diff -Nru openjdk-17-17.0.13+11/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c openjdk-17-17.0.14+7/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c --- openjdk-17-17.0.13+11/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c 2025-01-04 20:25:18.000000000 +0000 @@ -703,14 +703,16 @@ if (my_statx_func != NULL) { // Prefer statx over stat64 on Linux if it's available + // statx is not allowed on the old Docker versions and returns EPERM, + // fallback to stat64 in this case RESTARTABLE(statx_wrapper(AT_FDCWD, path, flags, mask, &statx_buf), err); if (err == 0) { copy_statx_attributes(env, &statx_buf, attrs); - } else { + return; + } else if (errno != EPERM) { throwUnixException(env, errno); + return; } - // statx was available, so return now - return; } #endif RESTARTABLE(stat64(path, &buf), err); @@ -734,10 +736,12 @@ if (my_statx_func != NULL) { // Prefer statx over stat64 on Linux if it's available + // statx is not allowed on the old Docker versions and returns EPERM, + // fallback to stat64 in this case RESTARTABLE(statx_wrapper(AT_FDCWD, path, flags, mask, &statx_buf), err); if (err == 0) { return (jint)statx_buf.stx_mode; - } else { + } else if (errno != EPERM) { return 0; } } @@ -764,14 +768,16 @@ if (my_statx_func != NULL) { // Prefer statx over stat64 on Linux if it's available + // statx is not allowed on the old Docker versions and returns EPERM, + // fallback to lstat64 in this case RESTARTABLE(statx_wrapper(AT_FDCWD, path, flags, mask, &statx_buf), err); if (err == 0) { copy_statx_attributes(env, &statx_buf, attrs); - } else { + return; + } else if (errno != EPERM) { throwUnixException(env, errno); + return; } - // statx was available, so return now - return; } #endif RESTARTABLE(lstat64(path, &buf), err); @@ -796,14 +802,16 @@ if (my_statx_func != NULL) { // statx supports FD use via dirfd iff pathname is an empty string and the // AT_EMPTY_PATH flag is specified in flags + // statx is not allowed on the old Docker versions and returns EPERM, + // fallback to fstat64 in this case RESTARTABLE(statx_wrapper((int)fd, "", flags, mask, &statx_buf), err); if (err == 0) { copy_statx_attributes(env, &statx_buf, attrs); - } else { + return; + } else if (errno != EPERM) { throwUnixException(env, errno); + return; } - // statx was available, so return now - return; } #endif RESTARTABLE(fstat64((int)fd, &buf), err); @@ -831,14 +839,16 @@ if (((int)flag & AT_SYMLINK_NOFOLLOW) > 0) { // flag set in java code flags |= AT_SYMLINK_NOFOLLOW; } + // statx is not allowed on the old Docker versions and returns EPERM, + // fallback to fstatat64 in this case RESTARTABLE(statx_wrapper((int)dfd, path, flags, mask, &statx_buf), err); if (err == 0) { copy_statx_attributes(env, &statx_buf, attrs); - } else { + return; + } else if (errno != EPERM) { throwUnixException(env, errno); + return; } - // statx was available, so return now - return; } #endif diff -Nru openjdk-17-17.0.13+11/src/java.base/windows/classes/java/lang/ProcessImpl.java openjdk-17-17.0.14+7/src/java.base/windows/classes/java/lang/ProcessImpl.java --- openjdk-17-17.0.13+11/src/java.base/windows/classes/java/lang/ProcessImpl.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/windows/classes/java/lang/ProcessImpl.java 2025-01-04 20:25:18.000000000 +0000 @@ -216,13 +216,14 @@ private static final int VERIFICATION_LEGACY = 3; // See Command shell overview for documentation of special characters. // https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490954(v=technet.10) - private static final char ESCAPE_VERIFICATION[][] = { + private static final String ESCAPE_VERIFICATION[] = { // We guarantee the only command file execution for implicit [cmd.exe] run. // http://technet.microsoft.com/en-us/library/bb490954.aspx - {' ', '\t', '\"', '<', '>', '&', '|', '^'}, - {' ', '\t', '\"', '<', '>'}, - {' ', '\t', '\"', '<', '>'}, - {' ', '\t'} + // All space characters require quoting are checked in needsEscaping(). + "\"<>&|^", + "\"<>", + "\"<>", + "" }; private static String createCommandLine(int verificationType, @@ -337,9 +338,14 @@ } if (!argIsQuoted) { - char testEscape[] = ESCAPE_VERIFICATION[verificationType]; - for (int i = 0; i < testEscape.length; ++i) { - if (arg.indexOf(testEscape[i]) >= 0) { + for (int i = 0; i < arg.length(); i++) { + char ch = arg.charAt(i); + if (Character.isLetterOrDigit(ch)) + continue; // skip over common characters + // All space chars require quotes and other mode specific characters + if (Character.isSpaceChar(ch) || + Character.isWhitespace(ch) || + ESCAPE_VERIFICATION[verificationType].indexOf(ch) >= 0) { return true; } } diff -Nru openjdk-17-17.0.13+11/src/java.base/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java openjdk-17-17.0.14+7/src/java.base/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java --- openjdk-17-17.0.13+11/src/java.base/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -374,8 +374,19 @@ } } + // check file exists only + if (!(r || w || x)) { + file.checkRead(); + try { + WindowsFileAttributes.get(file, true); + return; + } catch (WindowsException exc) { + exc.rethrowAsIOException(file); + } + } + // special-case read access to avoid needing to determine effective - // access to file; default if modes not specified + // access to file if (!w && !x) { checkReadAccess(file); return; diff -Nru openjdk-17-17.0.13+11/src/java.base/windows/native/libjava/java_props_md.c openjdk-17-17.0.14+7/src/java.base/windows/native/libjava/java_props_md.c --- openjdk-17-17.0.13+11/src/java.base/windows/native/libjava/java_props_md.c 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.base/windows/native/libjava/java_props_md.c 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -474,6 +474,8 @@ * where (buildNumber > 17762) * Windows Server 2022 10 0 (!VER_NT_WORKSTATION) * where (buildNumber > 20347) + * Windows Server 2025 10 0 (!VER_NT_WORKSTATION) + * where (buildNumber > 26039) * * This mapping will presumably be augmented as new Windows * versions are released. @@ -557,7 +559,10 @@ case 0: /* Windows server 2019 GA 10/2018 build number is 17763 */ /* Windows server 2022 build number is 20348 */ - if (buildNumber > 20347) { + /* Windows server 2025 Preview build is 26040 */ + if (buildNumber > 26039) { + sprops.os_name = "Windows Server 2025"; + } else if (buildNumber > 20347) { sprops.os_name = "Windows Server 2022"; } else if (buildNumber > 17762) { sprops.os_name = "Windows Server 2019"; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxButton.java openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxButton.java --- openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxButton.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxButton.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,13 +25,32 @@ package com.apple.laf; -import java.awt.*; - -import javax.swing.*; +import java.awt.Color; +import java.awt.Component; +import java.awt.Graphics; +import java.awt.Insets; + +import javax.accessibility.AccessibleContext; +import javax.swing.ButtonModel; +import javax.swing.CellRendererPane; +import javax.swing.DefaultButtonModel; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.ListCellRenderer; +import javax.swing.UIManager; import javax.swing.plaf.UIResource; +import apple.laf.JRSUIConstants.AlignmentHorizontal; +import apple.laf.JRSUIConstants.AlignmentVertical; +import apple.laf.JRSUIConstants.ArrowsOnly; +import apple.laf.JRSUIConstants.Focused; +import apple.laf.JRSUIConstants.IndicatorOnly; +import apple.laf.JRSUIConstants.Size; +import apple.laf.JRSUIConstants.State; +import apple.laf.JRSUIConstants.Widget; import apple.laf.JRSUIState; -import apple.laf.JRSUIConstants.*; @SuppressWarnings("serial") // Superclass is not serializable across versions class AquaComboBoxButton extends JButton { @@ -169,12 +188,15 @@ } } - protected void doRendererPaint(final Graphics g, final ButtonModel buttonModel, final boolean editable, final Insets insets, int left, int top, int width, int height) { + private Component getRendererComponent() { final ListCellRenderer renderer = comboBox.getRenderer(); + return renderer.getListCellRendererComponent(list, comboBox.getSelectedItem(), -1, false, false); + } + + protected void doRendererPaint(final Graphics g, final ButtonModel buttonModel, final boolean editable, final Insets insets, int left, int top, int width, int height) { // fake it out! not renderPressed - final Component c = renderer.getListCellRendererComponent(list, comboBox.getSelectedItem(), -1, false, false); - // System.err.println("Renderer: " + renderer); + final Component c = getRendererComponent(); if (!editable && !AquaComboBoxUI.isTableCellEditor(comboBox)) { final int indentLeft = 10; @@ -233,4 +255,25 @@ // Remove component from renderer pane, allowing it to be gc'ed. rendererPane.remove(c); } + + @Override + public AccessibleContext getAccessibleContext() { + if (accessibleContext == null) { + accessibleContext = new AccessibleAquaComboBoxButton(); + } + return accessibleContext; + } + + private final class AccessibleAquaComboBoxButton extends AccessibleJButton { + @Override + public String getAccessibleName() { + String name = super.getAccessibleName(); + if ((name == null || name.isEmpty()) + && (!comboBox.isEditable() && comboBox.getSelectedItem() != null)) { + Component c = getRendererComponent(); + name = c.getAccessibleContext().getAccessibleName(); + } + return name; + } + } } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxUI.java openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxUI.java --- openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxUI.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxUI.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -729,4 +729,35 @@ static ClientPropertyApplicator, AquaComboBoxUI> getApplicator() { return APPLICATOR.get(); } + + @Override + public int getAccessibleChildrenCount(JComponent c) { + return 2; + } + + @Override + public Accessible getAccessibleChild(JComponent c, int i) { + // 0 = the popup + // 1 = the editor for editable combobox and the arrow button for non-editable combobox + switch ( i ) { + case 0: + if (popup instanceof Accessible accessiblePopup) { + AccessibleContext ac = accessiblePopup.getAccessibleContext(); + ac.setAccessibleParent(comboBox); + return accessiblePopup; + } + break; + case 1: + if (comboBox.isEditable() + && (editor instanceof Accessible accessibleEditor)) { + AccessibleContext ac = accessibleEditor.getAccessibleContext(); + ac.setAccessibleParent(comboBox); + return accessibleEditor; + } else if (!comboBox.isEditable()) { + return arrowButton; + } + break; + } + return null; + } } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/com/apple/laf/AquaFileView.java openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/com/apple/laf/AquaFileView.java --- openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/com/apple/laf/AquaFileView.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/com/apple/laf/AquaFileView.java 2025-01-04 20:25:18.000000000 +0000 @@ -25,8 +25,11 @@ package com.apple.laf; -import java.io.*; -import java.util.*; +import java.io.File; +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.Map; import java.util.Map.Entry; import javax.swing.Icon; @@ -34,6 +37,8 @@ import com.apple.laf.AquaUtils.RecyclableSingleton; +import static java.nio.charset.StandardCharsets.UTF_8; + @SuppressWarnings("serial") // JDK implementation class class AquaFileView extends FileView { private static final boolean DEBUG = false; @@ -111,11 +116,7 @@ FileInfo(final File file){ isDirectory = file.isDirectory(); absolutePath = file.getAbsolutePath(); - try { - pathBytes = absolutePath.getBytes("UTF-8"); - } catch (final UnsupportedEncodingException e) { - pathBytes = new byte[0]; - } + pathBytes = absolutePath.getBytes(UTF_8); } } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/sun/lwawt/macosx/CDataTransferer.java openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/sun/lwawt/macosx/CDataTransferer.java --- openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/sun/lwawt/macosx/CDataTransferer.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/sun/lwawt/macosx/CDataTransferer.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,6 +1,5 @@ - /* - * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,20 +25,27 @@ package sun.lwawt.macosx; -import java.awt.*; - -import java.io.*; -import java.net.URI; -import java.net.URISyntaxException; +import java.awt.Image; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.net.URL; import java.nio.charset.Charset; import java.text.Normalizer; import java.text.Normalizer.Form; -import java.util.*; -import java.util.regex.*; -import java.awt.datatransfer.*; -import java.nio.charset.StandardCharsets; -import sun.awt.datatransfer.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import sun.awt.datatransfer.DataTransferer; +import sun.awt.datatransfer.ToolkitThreadBlockedHandler; + +import static java.nio.charset.StandardCharsets.UTF_8; public class CDataTransferer extends DataTransferer { private static final Map predefinedClipboardNameMap; @@ -133,7 +139,7 @@ String charset = Charset.defaultCharset().name(); if (transferable != null && transferable.isDataFlavorSupported(javaTextEncodingFlavor)) { try { - charset = new String((byte[]) transferable.getTransferData(javaTextEncodingFlavor), StandardCharsets.UTF_8); + charset = new String((byte[]) transferable.getTransferData(javaTextEncodingFlavor), UTF_8); } catch (UnsupportedFlavorException cannotHappen) { } } @@ -160,7 +166,8 @@ // class by base method format = CF_STRING; } else if (format == CF_STRING) { - bytes = Normalizer.normalize(new String(bytes, "UTF8"), Form.NFC).getBytes("UTF8"); + String src = new String(bytes, UTF_8); + bytes = Normalizer.normalize(src, Form.NFC).getBytes(UTF_8); } return super.translateBytes(bytes, flavor, format, transferable); diff -Nru openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java --- openjdk-17-17.0.13+11/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2025-01-04 20:25:18.000000000 +0000 @@ -42,6 +42,7 @@ import java.awt.Window; import java.awt.event.FocusEvent; import java.awt.event.WindowEvent; +import java.awt.event.WindowStateListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.lang.reflect.InvocationTargetException; @@ -964,6 +965,33 @@ return isFullScreenMode; } + private void waitForWindowState(int state) { + if (peer.getState() == state) { + return; + } + + Object lock = new Object(); + WindowStateListener wsl = new WindowStateListener() { + public void windowStateChanged(WindowEvent e) { + synchronized (lock) { + if (e.getNewState() == state) { + lock.notifyAll(); + } + } + } + }; + + target.addWindowStateListener(wsl); + if (peer.getState() != state) { + synchronized (lock) { + try { + lock.wait(); + } catch (InterruptedException ie) {} + } + } + target.removeWindowStateListener(wsl); + } + @Override public void setWindowState(int windowState) { if (peer == null || !peer.isVisible()) { @@ -985,6 +1013,7 @@ // let's return into the normal states first // the zoom call toggles between the normal and the max states unmaximize(); + waitForWindowState(Frame.NORMAL); } execute(CWrapper.NSWindow::miniaturize); break; @@ -992,6 +1021,8 @@ if (prevWindowState == Frame.ICONIFIED) { // let's return into the normal states first execute(CWrapper.NSWindow::deminiaturize); + waitForWindowState(Frame.NORMAL); + } maximize(); break; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m openjdk-17-17.0.14+7/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m --- openjdk-17-17.0.13+11/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m 2025-01-04 20:25:18.000000000 +0000 @@ -38,6 +38,9 @@ // keyboard layout static NSString *kbdLayout; +// Constant for keyman layouts +#define KEYMAN_LAYOUT "keyman" + @interface AWTView() @property (retain) CDropTarget *_dropTarget; @property (retain) CDragSource *_dragSource; @@ -259,7 +262,7 @@ - (void) keyDown: (NSEvent *)event { fProcessingKeystroke = YES; - fKeyEventsNeeded = YES; + fKeyEventsNeeded = ![(NSString *)kbdLayout containsString:@KEYMAN_LAYOUT]; // Allow TSM to look at the event and potentially send back NSTextInputClient messages. [self interpretKeyEvents:[NSArray arrayWithObject:event]]; @@ -961,7 +964,7 @@ if ((utf16Length > 2) || ((utf8Length > 1) && [self isCodePointInUnicodeBlockNeedingIMEvent:codePoint]) || - ((codePoint == 0x5c) && ([(NSString *)kbdLayout containsString:@"Kotoeri"]))) { + [(NSString *)kbdLayout containsString:@KEYMAN_LAYOUT]) { aStringIsComplex = YES; } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/beans/introspect/MethodInfo.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/beans/introspect/MethodInfo.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/beans/introspect/MethodInfo.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/beans/introspect/MethodInfo.java 2025-01-04 20:25:18.000000000 +0000 @@ -25,18 +25,35 @@ package com.sun.beans.introspect; +import java.io.Closeable; +import java.io.Externalizable; +import java.io.Serializable; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.Set; import com.sun.beans.TypeResolver; import com.sun.beans.finder.MethodFinder; final class MethodInfo { + + // These are some common interfaces that we know a priori + // will not contain any bean property getters or setters. + static final Set> IGNORABLE_INTERFACES = Set.of( + AutoCloseable.class, + Cloneable.class, + Closeable.class, + Comparable.class, + Externalizable.class, + Serializable.class + ); + final Method method; final Class type; @@ -66,6 +83,8 @@ static List get(Class type) { List list = null; if (type != null) { + + // Add declared methods boolean inaccessible = !Modifier.isPublic(type.getModifiers()); for (Method method : type.getMethods()) { if (method.getDeclaringClass().equals(type)) { @@ -81,10 +100,19 @@ } } if (method != null) { - if (list == null) { - list = new ArrayList<>(); - } - list.add(method); + (list = createIfNeeded(list)).add(method); + } + } + } + + // Add default methods inherited from interfaces + for (Class iface : type.getInterfaces()) { + if (IGNORABLE_INTERFACES.contains(iface)) { + continue; + } + for (Method method : iface.getMethods()) { + if (!Modifier.isAbstract(method.getModifiers())) { + (list = createIfNeeded(list)).add(method); } } } @@ -96,6 +124,10 @@ return Collections.emptyList(); } + private static List createIfNeeded(List list) { + return list != null ? list : new ArrayList<>(); + } + /** * A comparator that defines a total order so that methods have the same * name and identical signatures appear next to each others. diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,19 +25,15 @@ package com.sun.imageio.plugins.bmp; -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import javax.imageio.ImageTypeSpecifier; import javax.imageio.metadata.IIOMetadata; -import javax.imageio.metadata.IIOMetadataNode; -import javax.imageio.metadata.IIOMetadataFormat; import javax.imageio.metadata.IIOMetadataFormatImpl; -import org.w3c.dom.Node; -import com.sun.imageio.plugins.common.I18N; +import javax.imageio.metadata.IIOMetadataNode; +import com.sun.imageio.plugins.common.I18N; import com.sun.imageio.plugins.common.ImageUtil; +import org.w3c.dom.Node; + +import static java.nio.charset.StandardCharsets.ISO_8859_1; public class BMPMetadata extends IIOMetadata implements BMPConstants { public static final String nativeMetadataFormatName = @@ -114,11 +110,7 @@ } private String toISO8859(byte[] data) { - try { - return new String(data, "ISO-8859-1"); - } catch (UnsupportedEncodingException e) { - return ""; - } + return new String(data, ISO_8859_1); } private Node getNativeTree() { diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,18 +25,17 @@ package com.sun.imageio.plugins.gif; -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import javax.imageio.ImageTypeSpecifier; + import javax.imageio.metadata.IIOInvalidTreeException; -import javax.imageio.metadata.IIOMetadata; -import javax.imageio.metadata.IIOMetadataNode; -import javax.imageio.metadata.IIOMetadataFormat; import javax.imageio.metadata.IIOMetadataFormatImpl; +import javax.imageio.metadata.IIOMetadataNode; + import org.w3c.dom.Node; +import static java.nio.charset.StandardCharsets.ISO_8859_1; + public class GIFImageMetadata extends GIFMetadata { // package scope @@ -132,11 +131,7 @@ } private String toISO8859(byte[] data) { - try { - return new String(data, "ISO-8859-1"); - } catch (UnsupportedEncodingException e) { - return ""; - } + return new String(data, ISO_8859_1); } private Node getNativeTree() { @@ -384,12 +379,7 @@ while (commentIter.hasNext()) { byte[] comment = commentIter.next(); - String s = null; - try { - s = new String(comment, "ISO-8859-1"); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException("Encoding ISO-8859-1 unknown!"); - } + String s = new String(comment, ISO_8859_1); node = new IIOMetadataNode("TextEntry"); node.setAttribute("value", s); diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,19 +25,17 @@ package com.sun.imageio.plugins.gif; -import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import javax.imageio.ImageTypeSpecifier; + import javax.imageio.metadata.IIOInvalidTreeException; -import javax.imageio.metadata.IIOMetadata; -import javax.imageio.metadata.IIOMetadataNode; -import javax.imageio.metadata.IIOMetadataFormat; import javax.imageio.metadata.IIOMetadataFormatImpl; +import javax.imageio.metadata.IIOMetadataNode; + import org.w3c.dom.Node; +import static java.nio.charset.StandardCharsets.ISO_8859_1; + class GIFWritableImageMetadata extends GIFImageMetadata { // package scope @@ -95,11 +93,7 @@ } private byte[] fromISO8859(String data) { - try { - return data.getBytes("ISO-8859-1"); - } catch (UnsupportedEncodingException e) { - return "".getBytes(); - } + return data.getBytes(ISO_8859_1); } protected void mergeNativeTree(Node root) throws IIOInvalidTreeException { diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/COMMarkerSegment.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/COMMarkerSegment.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/COMMarkerSegment.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/COMMarkerSegment.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,15 +25,16 @@ package com.sun.imageio.plugins.jpeg; +import java.io.IOException; + +import javax.imageio.metadata.IIOInvalidTreeException; import javax.imageio.metadata.IIOMetadataNode; import javax.imageio.stream.ImageOutputStream; -import javax.imageio.metadata.IIOInvalidTreeException; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; import org.w3c.dom.Node; +import static java.nio.charset.StandardCharsets.ISO_8859_1; + /** * A Comment marker segment. Retains an array of bytes representing the * comment data as it is read from the stream. If the marker segment is @@ -45,7 +46,6 @@ * byte array, again assuming the default local encoding. */ class COMMarkerSegment extends MarkerSegment { - private static final String ENCODING = "ISO-8859-1"; /** * Constructs a marker segment from the given buffer, which contains @@ -96,10 +96,7 @@ * consulted directly. */ String getComment() { - try { - return new String (data, ENCODING); - } catch (UnsupportedEncodingException e) {} // Won't happen - return null; + return new String(data, ISO_8859_1); } /** diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java 2025-01-04 20:25:18.000000000 +0000 @@ -25,40 +25,41 @@ package com.sun.imageio.plugins.jpeg; -import javax.imageio.IIOException; -import javax.imageio.IIOImage; -import javax.imageio.ImageTypeSpecifier; -import javax.imageio.ImageReader; -import javax.imageio.metadata.IIOInvalidTreeException; -import javax.imageio.metadata.IIOMetadataNode; -import javax.imageio.metadata.IIOMetadata; -import javax.imageio.stream.ImageInputStream; -import javax.imageio.stream.ImageOutputStream; -import javax.imageio.stream.MemoryCacheImageOutputStream; -import javax.imageio.event.IIOReadProgressListener; - import java.awt.Graphics; -import java.awt.color.ICC_Profile; -import java.awt.color.ICC_ColorSpace; import java.awt.color.ColorSpace; +import java.awt.color.ICC_ColorSpace; +import java.awt.color.ICC_Profile; +import java.awt.image.BufferedImage; import java.awt.image.ColorModel; -import java.awt.image.SampleModel; -import java.awt.image.IndexColorModel; import java.awt.image.ComponentColorModel; -import java.awt.image.BufferedImage; import java.awt.image.DataBuffer; import java.awt.image.DataBufferByte; +import java.awt.image.IndexColorModel; import java.awt.image.Raster; +import java.awt.image.SampleModel; import java.awt.image.WritableRaster; -import java.io.IOException; import java.io.ByteArrayOutputStream; -import java.util.List; +import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; +import java.util.List; +import javax.imageio.IIOException; +import javax.imageio.IIOImage; +import javax.imageio.ImageReader; +import javax.imageio.ImageTypeSpecifier; +import javax.imageio.event.IIOReadProgressListener; +import javax.imageio.metadata.IIOInvalidTreeException; +import javax.imageio.metadata.IIOMetadataNode; +import javax.imageio.stream.ImageInputStream; +import javax.imageio.stream.ImageOutputStream; +import javax.imageio.stream.MemoryCacheImageOutputStream; + +import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import org.w3c.dom.NamedNodeMap; + +import static java.nio.charset.StandardCharsets.US_ASCII; /** * A JFIF (JPEG File Interchange Format) APP0 (Application-Specific) @@ -1353,7 +1354,7 @@ ios.write(0xff); ios.write(JPEG.APP2); MarkerSegment.write2bytes(ios, segLength); - byte [] id = ID.getBytes("US-ASCII"); + byte[] id = ID.getBytes(US_ASCII); ios.write(id); ios.write(0); // Null-terminate the string ios.write(chunkNum++); diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,10 +36,11 @@ import java.awt.image.WritableRaster; import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.EOFException; -import java.io.InputStream; import java.io.IOException; +import java.io.InputStream; import java.io.SequenceInputStream; import java.util.ArrayList; import java.util.Arrays; @@ -47,19 +48,23 @@ import java.util.Iterator; import java.util.zip.Inflater; import java.util.zip.InflaterInputStream; + import javax.imageio.IIOException; -import javax.imageio.ImageReader; import javax.imageio.ImageReadParam; +import javax.imageio.ImageReader; import javax.imageio.ImageTypeSpecifier; import javax.imageio.metadata.IIOMetadata; import javax.imageio.spi.ImageReaderSpi; import javax.imageio.stream.ImageInputStream; + import com.sun.imageio.plugins.common.InputStreamAdapter; import com.sun.imageio.plugins.common.ReaderUtil; import com.sun.imageio.plugins.common.SubImageInputStream; -import java.io.ByteArrayOutputStream; import sun.awt.image.ByteInterleavedRaster; +import static java.nio.charset.StandardCharsets.ISO_8859_1; +import static java.nio.charset.StandardCharsets.UTF_8; + class PNGImageDataEnumeration implements Enumeration { boolean firstTime = true; @@ -486,9 +491,9 @@ stream.readFully(b); if (compressionFlag == 1) { // Decompress the text - text = new String(inflate(b), "UTF8"); + text = new String(inflate(b), UTF_8); } else { - text = new String(b, "UTF8"); + text = new String(b, UTF_8); } metadata.iTXt_text.add(text); @@ -589,7 +594,7 @@ byte[] b = new byte[textLength]; stream.readFully(b); - metadata.tEXt_text.add(new String(b, "ISO-8859-1")); + metadata.tEXt_text.add(new String(b, ISO_8859_1)); // Check if the text chunk contains image creation time if (keyword.equals(PNGMetadata.tEXt_creationTimeKey)) { @@ -690,7 +695,7 @@ byte[] b = new byte[textLength]; stream.readFully(b); - metadata.zTXt_text.add(new String(inflate(b), "ISO-8859-1")); + metadata.zTXt_text.add(new String(inflate(b), ISO_8859_1)); // Check if the text chunk contains image creation time if (keyword.equals(PNGMetadata.tEXt_creationTimeKey)) { diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,15 +28,16 @@ import java.awt.Rectangle; import java.awt.image.IndexColorModel; import java.awt.image.Raster; -import java.awt.image.WritableRaster; import java.awt.image.RenderedImage; import java.awt.image.SampleModel; +import java.awt.image.WritableRaster; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Iterator; import java.util.Locale; import java.util.zip.Deflater; import java.util.zip.DeflaterOutputStream; + import javax.imageio.IIOException; import javax.imageio.IIOImage; import javax.imageio.ImageTypeSpecifier; @@ -47,6 +48,9 @@ import javax.imageio.stream.ImageOutputStream; import javax.imageio.stream.ImageOutputStreamImpl; +import static java.nio.charset.StandardCharsets.ISO_8859_1; +import static java.nio.charset.StandardCharsets.UTF_8; + final class CRC { private static final int[] crcTable = new int[256]; @@ -801,15 +805,14 @@ cs.writeBytes(languageIter.next()); cs.writeByte(0); - - cs.write(translatedKeywordIter.next().getBytes("UTF8")); + cs.write(translatedKeywordIter.next().getBytes(UTF_8)); cs.writeByte(0); String text = textIter.next(); if (compressed) { - cs.write(deflate(text.getBytes("UTF8"))); + cs.write(deflate(text.getBytes(UTF_8))); } else { - cs.write(text.getBytes("UTF8")); + cs.write(text.getBytes(UTF_8)); } cs.finish(); } @@ -833,7 +836,7 @@ cs.writeByte(compressionMethod); String text = textIter.next(); - cs.write(deflate(text.getBytes("ISO-8859-1"))); + cs.write(deflate(text.getBytes(ISO_8859_1))); cs.finish(); } } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFIFD.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFIFD.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFIFD.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFIFD.java 2025-01-04 20:25:18.000000000 +0000 @@ -22,24 +22,27 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ + package com.sun.imageio.plugins.tiff; import java.io.EOFException; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Set; + import javax.imageio.IIOException; -import javax.imageio.stream.ImageInputStream; -import javax.imageio.stream.ImageOutputStream; import javax.imageio.plugins.tiff.BaselineTIFFTagSet; import javax.imageio.plugins.tiff.TIFFDirectory; import javax.imageio.plugins.tiff.TIFFField; import javax.imageio.plugins.tiff.TIFFTag; import javax.imageio.plugins.tiff.TIFFTagSet; +import javax.imageio.stream.ImageInputStream; +import javax.imageio.stream.ImageOutputStream; + +import static java.nio.charset.StandardCharsets.US_ASCII; public class TIFFIFD extends TIFFDirectory { private static final long MAX_SAMPLES_PER_PIXEL = 0xffff; @@ -283,8 +286,7 @@ if (inString) { // end of string String s = new String(bvalues, prevIndex, - index - prevIndex, - StandardCharsets.US_ASCII); + index - prevIndex, US_ASCII); v.add(s); inString = false; } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFImageWriter.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFImageWriter.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFImageWriter.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFImageWriter.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,7 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ + package com.sun.imageio.plugins.tiff; import java.awt.Point; @@ -34,8 +35,8 @@ import java.awt.image.DataBuffer; import java.awt.image.DataBufferByte; import java.awt.image.IndexColorModel; -import java.awt.image.RenderedImage; import java.awt.image.Raster; +import java.awt.image.RenderedImage; import java.awt.image.SampleModel; import java.awt.image.WritableRaster; import java.io.EOFException; @@ -44,27 +45,30 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; + import javax.imageio.IIOException; import javax.imageio.IIOImage; +import javax.imageio.ImageTypeSpecifier; import javax.imageio.ImageWriteParam; import javax.imageio.ImageWriter; -import javax.imageio.ImageTypeSpecifier; import javax.imageio.metadata.IIOInvalidTreeException; import javax.imageio.metadata.IIOMetadata; import javax.imageio.metadata.IIOMetadataFormatImpl; -import javax.imageio.spi.ImageWriterSpi; -import javax.imageio.stream.ImageOutputStream; -import org.w3c.dom.Node; -import com.sun.imageio.plugins.common.ImageUtil; import javax.imageio.plugins.tiff.BaselineTIFFTagSet; import javax.imageio.plugins.tiff.ExifParentTIFFTagSet; import javax.imageio.plugins.tiff.ExifTIFFTagSet; import javax.imageio.plugins.tiff.TIFFField; import javax.imageio.plugins.tiff.TIFFTag; import javax.imageio.plugins.tiff.TIFFTagSet; +import javax.imageio.spi.ImageWriterSpi; +import javax.imageio.stream.ImageOutputStream; + +import com.sun.imageio.plugins.common.ImageUtil; import com.sun.imageio.plugins.common.SimpleRenderedImage; import com.sun.imageio.plugins.common.SingleTileRenderedImage; -import java.nio.charset.StandardCharsets; +import org.w3c.dom.Node; + +import static java.nio.charset.StandardCharsets.US_ASCII; public class TIFFImageWriter extends ImageWriter { @@ -1512,7 +1516,7 @@ (exifTags.getTag(ExifTIFFTagSet.TAG_EXIF_VERSION), TIFFTag.TIFF_UNDEFINED, 4, - ExifTIFFTagSet.EXIF_VERSION_2_2.getBytes(StandardCharsets.US_ASCII)); + ExifTIFFTagSet.EXIF_VERSION_2_2.getBytes(US_ASCII)); exifIFD.addTIFFField(f); } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java 2025-01-04 20:25:18.000000000 +0000 @@ -25,19 +25,13 @@ package com.sun.imageio.plugins.wbmp; -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import javax.imageio.ImageTypeSpecifier; import javax.imageio.metadata.IIOMetadata; -import javax.imageio.metadata.IIOMetadataNode; -import javax.imageio.metadata.IIOMetadataFormat; import javax.imageio.metadata.IIOMetadataFormatImpl; -import org.w3c.dom.Node; -import com.sun.imageio.plugins.common.I18N; +import javax.imageio.metadata.IIOMetadataNode; +import com.sun.imageio.plugins.common.I18N; import com.sun.imageio.plugins.common.ImageUtil; +import org.w3c.dom.Node; public class WBMPMetadata extends IIOMetadata { diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java 2025-01-04 20:25:18.000000000 +0000 @@ -337,7 +337,8 @@ return widgets[0]; } } else if (id == Region.ARROW_BUTTON) { - if (c.getParent() instanceof JScrollBar) { + if (c.getParent() instanceof JScrollBar + || c.getParent() instanceof JTabbedPane) { Integer prop = (Integer) c.getClientProperty("__arrow_direction__"); int dir = (prop != null) ? diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java 2025-01-04 20:25:18.000000000 +0000 @@ -22,29 +22,76 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -package com.sun.java.swing.plaf.gtk; -import sun.swing.SwingUtilities2; -import com.sun.java.swing.plaf.gtk.GTKConstants.ArrowType; -import com.sun.java.swing.plaf.gtk.GTKConstants.ShadowType; +package com.sun.java.swing.plaf.gtk; +import java.awt.AlphaComposite; +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Component; +import java.awt.Composite; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.GradientPaint; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.Insets; +import java.awt.LayoutManager; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Shape; +import java.awt.Stroke; +import java.awt.geom.AffineTransform; +import java.awt.geom.PathIterator; +import java.awt.geom.Rectangle2D; +import java.awt.geom.RectangularShape; +import java.awt.image.FilteredImageSource; +import java.awt.image.ImageProducer; +import java.awt.image.RGBImageFilter; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.net.MalformedURLException; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.StringTokenizer; + +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JInternalFrame; import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.basic.BasicInternalFrameTitlePane; -import javax.swing.plaf.synth.*; - -import java.awt.*; -import java.awt.geom.*; -import java.awt.image.*; -import java.io.*; -import java.net.*; -import java.security.*; -import java.util.*; +import javax.swing.plaf.synth.ColorType; +import javax.swing.plaf.synth.SynthConstants; +import javax.swing.plaf.synth.SynthContext; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; -import javax.swing.*; - -import javax.xml.parsers.*; +import com.sun.java.swing.plaf.gtk.GTKConstants.ArrowType; +import com.sun.java.swing.plaf.gtk.GTKConstants.ShadowType; +import org.w3c.dom.Document; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import org.xml.sax.SAXException; -import org.w3c.dom.*; +import sun.swing.SwingUtilities2; + +import static java.nio.charset.StandardCharsets.ISO_8859_1; /** */ @@ -536,7 +583,8 @@ URL url = new URL(new File(userHome).toURI().toURL(), ".gconf/apps/metacity/general/%25gconf.xml"); // Pending: verify character encoding spec for gconf - Reader reader = new InputStreamReader(url.openStream(), "ISO-8859-1"); + Reader reader = new InputStreamReader(url.openStream(), + ISO_8859_1); char[] buf = new char[1024]; StringBuilder sb = new StringBuilder(); int n; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java 2025-01-04 20:25:18.000000000 +0000 @@ -47,6 +47,8 @@ import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; +import static java.nio.charset.StandardCharsets.US_ASCII; + /** * A DLS Level 1 and Level 2 soundbank reader (from files/url/streams). * @@ -1147,7 +1149,7 @@ return; RIFFWriter chunk = writer.writeChunk(name); chunk.writeString(value); - int len = value.getBytes("ascii").length; + int len = value.getBytes(US_ASCII).length; chunk.write(0); len++; if (len % 2 != 0) diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/RIFFReader.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/RIFFReader.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/RIFFReader.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/RIFFReader.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,6 +29,8 @@ import java.io.IOException; import java.io.InputStream; +import static java.nio.charset.StandardCharsets.US_ASCII; + /** * Resource Interchange File Format (RIFF) stream decoder. * @@ -76,14 +78,14 @@ byte[] fourcc = new byte[4]; fourcc[0] = (byte) b; readFully(fourcc, 1, 3); - this.fourcc = new String(fourcc, "ascii"); + this.fourcc = new String(fourcc, US_ASCII); ckSize = readUnsignedInt(); avail = ckSize; if (getFormat().equals("RIFF") || getFormat().equals("LIST")) { byte[] format = new byte[4]; readFully(format); - this.riff_type = new String(format, "ascii"); + this.riff_type = new String(format, US_ASCII); } } @@ -227,10 +229,10 @@ readFully(buff); for (int i = 0; i < buff.length; i++) { if (buff[i] == 0) { - return new String(buff, 0, i, "ascii"); + return new String(buff, 0, i, US_ASCII); } } - return new String(buff, "ascii"); + return new String(buff, US_ASCII); } // Read 8 bit signed integer from stream diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/RIFFWriter.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/RIFFWriter.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/RIFFWriter.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/RIFFWriter.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,8 @@ import java.io.OutputStream; import java.io.RandomAccessFile; +import static java.nio.charset.StandardCharsets.US_ASCII; + /** * Resource Interchange File Format (RIFF) stream encoder. * @@ -208,11 +210,11 @@ raf.write(0); if (chunktype == 0) - raf.write("RIFF".getBytes("ascii")); + raf.write("RIFF".getBytes(US_ASCII)); else if (chunktype == 1) - raf.write("LIST".getBytes("ascii")); + raf.write("LIST".getBytes(US_ASCII)); else - raf.write((format + " ").substring(0, 4).getBytes("ascii")); + raf.write((format + " ").substring(0, 4).getBytes(US_ASCII)); chunksizepointer = raf.getPointer(); this.chunktype = 2; @@ -220,8 +222,7 @@ this.chunktype = chunktype; startpointer = raf.getPointer(); if (chunktype != 2) - raf.write((format + " ").substring(0, 4).getBytes("ascii")); - + raf.write((format + " ").substring(0, 4).getBytes(US_ASCII)); } public void seek(long pos) throws IOException { diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/SF2Soundbank.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SF2Soundbank.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/SF2Soundbank.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SF2Soundbank.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,8 @@ import javax.sound.midi.Soundbank; import javax.sound.midi.SoundbankResource; +import static java.nio.charset.StandardCharsets.US_ASCII; + /** * A SoundFont 2.04 soundbank reader. * @@ -539,7 +541,7 @@ return; RIFFWriter chunk = writer.writeChunk(name); chunk.writeString(value); - int len = value.getBytes("ascii").length; + int len = value.getBytes(US_ASCII).length; chunk.write(0); len++; if (len % 2 != 0) diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/SoftMainMixer.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SoftMainMixer.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/SoftMainMixer.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SoftMainMixer.java 2025-01-04 20:25:18.000000000 +0000 @@ -124,102 +124,126 @@ private void processSystemExclusiveMessage(byte[] data) { synchronized (synth.control_mutex) { activity(); - + if (data.length < 3 || (data[1] & 0xFF) != 0x7E && (data[1] & 0xFF) != 0x7F ) { + // Not enough data to determine SysEx type or SysEx type is not supported + return; + } // Universal Non-Real-Time SysEx if ((data[1] & 0xFF) == 0x7E) { int deviceID = data[2] & 0xFF; if (deviceID == 0x7F || deviceID == synth.getDeviceID()) { + if (data.length < 4) { + return; + } int subid1 = data[3] & 0xFF; int subid2; switch (subid1) { - case 0x08: // MIDI Tuning Standard - subid2 = data[4] & 0xFF; - switch (subid2) { - case 0x01: // BULK TUNING DUMP - { - // http://www.midi.org/about-midi/tuning.shtml - SoftTuning tuning = synth.getTuning(new Patch(0, - data[5] & 0xFF)); - tuning.load(data); - break; - } - case 0x04: // KEY-BASED TUNING DUMP - case 0x05: // SCALE/OCTAVE TUNING DUMP, 1 byte format - case 0x06: // SCALE/OCTAVE TUNING DUMP, 2 byte format - case 0x07: // SINGLE NOTE TUNING CHANGE (NON REAL-TIME) + case 0x08: // MIDI Tuning Standard + if (data.length < 5) { + break; + } + subid2 = data[4] & 0xFF; + switch (subid2) { + case 0x01: // BULK TUNING DUMP + { + if (data.length < 6) { + break; + } + // http://www.midi.org/about-midi/tuning.shtml + SoftTuning tuning = synth.getTuning(new Patch(0, + data[5] & 0xFF)); + tuning.load(data); + break; + } + case 0x04: // KEY-BASED TUNING DUMP + case 0x05: // SCALE/OCTAVE TUNING DUMP, 1 byte format + case 0x06: // SCALE/OCTAVE TUNING DUMP, 2 byte format + case 0x07: // SINGLE NOTE TUNING CHANGE (NON REAL-TIME) // (BANK) - { - // http://www.midi.org/about-midi/tuning_extens.shtml - SoftTuning tuning = synth.getTuning(new Patch( - data[5] & 0xFF, data[6] & 0xFF)); - tuning.load(data); - break; - } - case 0x08: // scale/octave tuning 1-byte form (Non + { + if (data.length < 7) { + break; + } + // http://www.midi.org/about-midi/tuning_extens.shtml + SoftTuning tuning = synth.getTuning(new Patch( + data[5] & 0xFF, data[6] & 0xFF)); + tuning.load(data); // Check inside! + break; + } + case 0x08: // scale/octave tuning 1-byte form (Non // Real-Time) - case 0x09: // scale/octave tuning 2-byte form (Non + case 0x09: // scale/octave tuning 2-byte form (Non // Real-Time) - { - // http://www.midi.org/about-midi/tuning-scale.shtml - SoftTuning tuning = new SoftTuning(data); - int channelmask = (data[5] & 0xFF) * 16384 - + (data[6] & 0xFF) * 128 + (data[7] & 0xFF); - SoftChannel[] channels = synth.channels; - for (int i = 0; i < channels.length; i++) - if ((channelmask & (1 << i)) != 0) - channels[i].tuning = tuning; - break; - } - default: - break; - } - break; - case 0x09: // General Midi Message - subid2 = data[4] & 0xFF; - switch (subid2) { - case 0x01: // General Midi 1 On - synth.setGeneralMidiMode(1); - reset(); - break; - case 0x02: // General Midi Off - synth.setGeneralMidiMode(0); - reset(); - break; - case 0x03: // General MidI Level 2 On - synth.setGeneralMidiMode(2); - reset(); - break; - default: - break; - } - break; - case 0x0A: // DLS Message - subid2 = data[4] & 0xFF; - switch (subid2) { - case 0x01: // DLS On - if (synth.getGeneralMidiMode() == 0) - synth.setGeneralMidiMode(1); - synth.voice_allocation_mode = 1; - reset(); - break; - case 0x02: // DLS Off - synth.setGeneralMidiMode(0); - synth.voice_allocation_mode = 0; - reset(); + { + if (data.length < 8) { + break; + } + // http://www.midi.org/about-midi/tuning-scale.shtml + SoftTuning tuning = new SoftTuning(data); + int channelmask = (data[5] & 0xFF) * 16384 + + (data[6] & 0xFF) * 128 + (data[7] & 0xFF); + SoftChannel[] channels = synth.channels; + for (int i = 0; i < channels.length; i++) + if ((channelmask & (1 << i)) != 0) + channels[i].tuning = tuning; + break; + } + default: + break; + } break; - case 0x03: // DLS Static Voice Allocation Off - synth.voice_allocation_mode = 0; + case 0x09: // General Midi Message + if (data.length < 5) { + break; + } + subid2 = data[4] & 0xFF; + switch (subid2) { + case 0x01: // General Midi 1 On + synth.setGeneralMidiMode(1); + reset(); + break; + case 0x02: // General Midi Off + synth.setGeneralMidiMode(0); + reset(); + break; + case 0x03: // General MidI Level 2 On + synth.setGeneralMidiMode(2); + reset(); + break; + default: + break; + } break; - case 0x04: // DLS Static Voice Allocation On - synth.voice_allocation_mode = 1; + case 0x0A: // DLS Message + if (data.length < 5) { + break; + } + subid2 = data[4] & 0xFF; + switch (subid2) { + case 0x01: // DLS On + if (synth.getGeneralMidiMode() == 0) + synth.setGeneralMidiMode(1); + synth.voice_allocation_mode = 1; + reset(); + break; + case 0x02: // DLS Off + synth.setGeneralMidiMode(0); + synth.voice_allocation_mode = 0; + reset(); + break; + case 0x03: // DLS Static Voice Allocation Off + synth.voice_allocation_mode = 0; + break; + case 0x04: // DLS Static Voice Allocation On + synth.voice_allocation_mode = 1; + break; + default: + break; + } break; + default: break; - } - break; - - default: - break; } } } @@ -228,197 +252,240 @@ if ((data[1] & 0xFF) == 0x7F) { int deviceID = data[2] & 0xFF; if (deviceID == 0x7F || deviceID == synth.getDeviceID()) { + if (data.length < 4) { + return; + } int subid1 = data[3] & 0xFF; int subid2; switch (subid1) { - case 0x04: // Device Control - - subid2 = data[4] & 0xFF; - switch (subid2) { - case 0x01: // Master Volume - case 0x02: // Master Balane - case 0x03: // Master fine tuning - case 0x04: // Master coarse tuning - int val = (data[5] & 0x7F) - + ((data[6] & 0x7F) * 128); - if (subid2 == 0x01) - setVolume(val); - else if (subid2 == 0x02) - setBalance(val); - else if (subid2 == 0x03) - setFineTuning(val); - else if (subid2 == 0x04) - setCoarseTuning(val); - break; - case 0x05: // Global Parameter Control - int ix = 5; - int slotPathLen = (data[ix++] & 0xFF); - int paramWidth = (data[ix++] & 0xFF); - int valueWidth = (data[ix++] & 0xFF); - int[] slotPath = new int[slotPathLen]; - for (int i = 0; i < slotPathLen; i++) { - int msb = (data[ix++] & 0xFF); - int lsb = (data[ix++] & 0xFF); - slotPath[i] = msb * 128 + lsb; - } - int paramCount = (data.length - 1 - ix) - / (paramWidth + valueWidth); - long[] params = new long[paramCount]; - long[] values = new long[paramCount]; - for (int i = 0; i < paramCount; i++) { - values[i] = 0; - for (int j = 0; j < paramWidth; j++) - params[i] = params[i] * 128 - + (data[ix++] & 0xFF); - for (int j = 0; j < valueWidth; j++) - values[i] = values[i] * 128 - + (data[ix++] & 0xFF); + case 0x04: // Device Control + if (data.length < 5) { + break; + } + subid2 = data[4] & 0xFF; + switch (subid2) { + case 0x01: // Master Volume + case 0x02: // Master Balane + case 0x03: // Master fine tuning + case 0x04: // Master coarse tuning + if (data.length < 7) { + break; + } + int val = (data[5] & 0x7F) + + ((data[6] & 0x7F) * 128); + if (subid2 == 0x01) + setVolume(val); + else if (subid2 == 0x02) + setBalance(val); + else if (subid2 == 0x03) + setFineTuning(val); + else if (subid2 == 0x04) + setCoarseTuning(val); + break; + case 0x05: // Global Parameter Control + if (data.length < 6) { + break; + } + int ix = 5; + int slotPathLen = (data[ix++] & 0xFF); + if (data.length < slotPathLen * 2 + 8) { + break; + } + int paramWidth = (data[ix++] & 0xFF); + int valueWidth = (data[ix++] & 0xFF); + int[] slotPath = new int[slotPathLen]; + for (int i = 0; i < slotPathLen; i++) { + int msb = (data[ix++] & 0xFF); + int lsb = (data[ix++] & 0xFF); + slotPath[i] = msb * 128 + lsb; + } + int paramCount = (data.length - 1 - ix) + / (paramWidth + valueWidth); + if (paramCount < 1) { + break; + } + long[] params = new long[paramCount]; + long[] values = new long[paramCount]; + for (int i = 0; i < paramCount; i++) { + values[i] = 0; + for (int j = 0; j < paramWidth; j++) + params[i] = params[i] * 128 + + (data[ix++] & 0xFF); + for (int j = 0; j < valueWidth; j++) + values[i] = values[i] * 128 + + (data[ix++] & 0xFF); + } + globalParameterControlChange(slotPath, params, values); + break; + default: + break; } - globalParameterControlChange(slotPath, params, values); break; - default: - break; - } - break; - case 0x08: // MIDI Tuning Standard - subid2 = data[4] & 0xFF; - switch (subid2) { - case 0x02: // SINGLE NOTE TUNING CHANGE (REAL-TIME) - { - // http://www.midi.org/about-midi/tuning.shtml - SoftTuning tuning = synth.getTuning(new Patch(0, - data[5] & 0xFF)); - tuning.load(data); - SoftVoice[] voices = synth.getVoices(); - for (int i = 0; i < voices.length; i++) - if (voices[i].active) - if (voices[i].tuning == tuning) - voices[i].updateTuning(tuning); - break; - } - case 0x07: // SINGLE NOTE TUNING CHANGE (REAL-TIME) + case 0x08: // MIDI Tuning Standard + if (data.length < 5) { + break; + } + subid2 = data[4] & 0xFF; + switch (subid2) { + case 0x02: // SINGLE NOTE TUNING CHANGE (REAL-TIME) + { + // http://www.midi.org/about-midi/tuning.shtml + if (data.length < 6) { + break; + } + SoftTuning tuning = synth.getTuning(new Patch(0, + data[5] & 0xFF)); + tuning.load(data); + SoftVoice[] voices = synth.getVoices(); + for (int i = 0; i < voices.length; i++) + if (voices[i].active) + if (voices[i].tuning == tuning) + voices[i].updateTuning(tuning); + break; + } + case 0x07: // SINGLE NOTE TUNING CHANGE (REAL-TIME) // (BANK) - { - // http://www.midi.org/about-midi/tuning_extens.shtml - SoftTuning tuning = synth.getTuning(new Patch( - data[5] & 0xFF, data[6] & 0xFF)); - tuning.load(data); - SoftVoice[] voices = synth.getVoices(); - for (int i = 0; i < voices.length; i++) - if (voices[i].active) - if (voices[i].tuning == tuning) - voices[i].updateTuning(tuning); - break; - } - case 0x08: // scale/octave tuning 1-byte form + { + // http://www.midi.org/about-midi/tuning_extens.shtml + if (data.length < 7) { + break; + } + SoftTuning tuning = synth.getTuning(new Patch( + data[5] & 0xFF, data[6] & 0xFF)); + tuning.load(data); + SoftVoice[] voices = synth.getVoices(); + for (int i = 0; i < voices.length; i++) + if (voices[i].active) + if (voices[i].tuning == tuning) + voices[i].updateTuning(tuning); + break; + } + case 0x08: // scale/octave tuning 1-byte form //(Real-Time) - case 0x09: // scale/octave tuning 2-byte form + case 0x09: // scale/octave tuning 2-byte form // (Real-Time) - { - // http://www.midi.org/about-midi/tuning-scale.shtml - SoftTuning tuning = new SoftTuning(data); - int channelmask = (data[5] & 0xFF) * 16384 - + (data[6] & 0xFF) * 128 + (data[7] & 0xFF); - SoftChannel[] channels = synth.channels; - for (int i = 0; i < channels.length; i++) - if ((channelmask & (1 << i)) != 0) - channels[i].tuning = tuning; - SoftVoice[] voices = synth.getVoices(); - for (int i = 0; i < voices.length; i++) - if (voices[i].active) - if ((channelmask & (1 << (voices[i].channel))) != 0) - voices[i].updateTuning(tuning); - break; - } - default: - break; - } - break; - case 0x09: // Control Destination Settings - subid2 = data[4] & 0xFF; - switch (subid2) { - case 0x01: // Channel Pressure - { - int[] destinations = new int[(data.length - 7) / 2]; - int[] ranges = new int[(data.length - 7) / 2]; - int ix = 0; - for (int j = 6; j < data.length - 1; j += 2) { - destinations[ix] = data[j] & 0xFF; - ranges[ix] = data[j + 1] & 0xFF; - ix++; - } - int channel = data[5] & 0xFF; - SoftChannel softchannel = synth.channels[channel]; - softchannel.mapChannelPressureToDestination( - destinations, ranges); - break; - } - case 0x02: // Poly Pressure - { - int[] destinations = new int[(data.length - 7) / 2]; - int[] ranges = new int[(data.length - 7) / 2]; - int ix = 0; - for (int j = 6; j < data.length - 1; j += 2) { - destinations[ix] = data[j] & 0xFF; - ranges[ix] = data[j + 1] & 0xFF; - ix++; - } - int channel = data[5] & 0xFF; - SoftChannel softchannel = synth.channels[channel]; - softchannel.mapPolyPressureToDestination( - destinations, ranges); - break; - } - case 0x03: // Control Change - { - int[] destinations = new int[(data.length - 7) / 2]; - int[] ranges = new int[(data.length - 7) / 2]; - int ix = 0; - for (int j = 7; j < data.length - 1; j += 2) { - destinations[ix] = data[j] & 0xFF; - ranges[ix] = data[j + 1] & 0xFF; - ix++; - } - int channel = data[5] & 0xFF; - SoftChannel softchannel = synth.channels[channel]; - int control = data[6] & 0xFF; - softchannel.mapControlToDestination(control, - destinations, ranges); + { + // http://www.midi.org/about-midi/tuning-scale.shtml + if (data.length < 8) { + break; + } + SoftTuning tuning = new SoftTuning(data); + int channelmask = (data[5] & 0xFF) * 16384 + + (data[6] & 0xFF) * 128 + (data[7] & 0xFF); + SoftChannel[] channels = synth.channels; + for (int i = 0; i < channels.length; i++) + if ((channelmask & (1 << i)) != 0) + channels[i].tuning = tuning; + SoftVoice[] voices = synth.getVoices(); + for (int i = 0; i < voices.length; i++) + if (voices[i].active) + if ((channelmask & (1 << (voices[i].channel))) != 0) + voices[i].updateTuning(tuning); + break; + } + default: + break; + } break; - } - default: + case 0x09: // Control Destination Settings + if (data.length < 5) { + break; + } + subid2 = data[4] & 0xFF; + switch (subid2) { + case 0x01: // Channel Pressure + { + if (data.length < 8) { + break; + } + int[] destinations = new int[(data.length - 6) / 2]; + int[] ranges = new int[(data.length - 6) / 2]; + int ix = 0; + for (int j = 6; j < data.length - 1; j += 2) { + destinations[ix] = data[j] & 0xFF; + ranges[ix] = data[j + 1] & 0xFF; + ix++; + } + int channel = data[5] & 0xFF; + SoftChannel softchannel = synth.channels[channel]; + softchannel.mapChannelPressureToDestination( + destinations, ranges); + break; + } + case 0x02: // Poly Pressure + { + if (data.length < 8) { + break; + } + int[] destinations = new int[(data.length - 6) / 2]; + int[] ranges = new int[(data.length - 6) / 2]; + int ix = 0; + for (int j = 6; j < data.length - 1; j += 2) { + destinations[ix] = data[j] & 0xFF; + ranges[ix] = data[j + 1] & 0xFF; + ix++; + } + int channel = data[5] & 0xFF; + SoftChannel softchannel = synth.channels[channel]; + softchannel.mapPolyPressureToDestination( + destinations, ranges); + break; + } + case 0x03: // Control Change + { + if (data.length < 8) { + break; + } + int[] destinations = new int[(data.length - 7) / 2]; + int[] ranges = new int[(data.length - 7) / 2]; + int ix = 0; + for (int j = 7; j < data.length - 1; j += 2) { + destinations[ix] = data[j] & 0xFF; + ranges[ix] = data[j + 1] & 0xFF; + ix++; + } + int channel = data[5] & 0xFF; + SoftChannel softchannel = synth.channels[channel]; + int control = data[6] & 0xFF; + softchannel.mapControlToDestination(control, + destinations, ranges); + break; + } + default: + break; + } break; - } - break; - case 0x0A: // Key Based Instrument Control - { - subid2 = data[4] & 0xFF; - switch (subid2) { - case 0x01: // Basic Message - int channel = data[5] & 0xFF; - int keynumber = data[6] & 0xFF; - SoftChannel softchannel = synth.channels[channel]; - for (int j = 7; j < data.length - 1; j += 2) { - int controlnumber = data[j] & 0xFF; - int controlvalue = data[j + 1] & 0xFF; - softchannel.controlChangePerNote(keynumber, - controlnumber, controlvalue); + case 0x0A: // Key Based Instrument Control + { + if (data.length < 8 || (data[4] & 0xFF) != 0x01) { + break; + } + subid2 = data[4] & 0xFF; + switch (subid2) { + case 0x01: // Basic Message + int channel = data[5] & 0xFF; + int keynumber = data[6] & 0xFF; + SoftChannel softchannel = synth.channels[channel]; + for (int j = 7; j < data.length - 1; j += 2) { + int controlnumber = data[j] & 0xFF; + int controlvalue = data[j + 1] & 0xFF; + softchannel.controlChangePerNote(keynumber, + controlnumber, controlvalue); + } + break; + default: + break; } break; + } default: break; - } - break; - } - default: - break; } } } - } } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java 2025-01-04 20:25:18.000000000 +0000 @@ -289,12 +289,11 @@ c.current_instrument = null; c.current_director = null; } - for (Instrument instrument : instruments) { + for (ModelInstrument instrument : instruments) { String pat = patchToString(instrument.getPatch()); - SoftInstrument softins - = new SoftInstrument((ModelInstrument) instrument); + SoftInstrument softins = new SoftInstrument(instrument); inslist.put(pat, softins); - loadedlist.put(pat, (ModelInstrument) instrument); + loadedlist.put(pat, instrument); } } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/SoftTuning.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SoftTuning.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/com/sun/media/sound/SoftTuning.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/com/sun/media/sound/SoftTuning.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,11 +25,12 @@ package com.sun.media.sound; -import java.io.UnsupportedEncodingException; import java.util.Arrays; import javax.sound.midi.Patch; +import static java.nio.charset.StandardCharsets.US_ASCII; + /** * A tuning program container, for use with MIDI Tuning. * See: http://www.midi.org @@ -88,10 +89,21 @@ */ public void load(byte[] data) { // Universal Non-Real-Time / Real-Time SysEx + if (data.length < 2) { + return; + } + if ((data[1] & 0xFF) == 0x7E || (data[1] & 0xFF) == 0x7F) { + if (data.length < 4) { + return; + } + int subid1 = data[3] & 0xFF; switch (subid1) { case 0x08: // MIDI Tuning Standard + if (data.length < 5) { + break; + } int subid2 = data[4] & 0xFF; switch (subid2) { case 0x01: // BULK TUNING DUMP (NON-REAL-TIME) @@ -99,12 +111,11 @@ // http://www.midi.org/about-midi/tuning.shtml //if (!checksumOK2(data)) // break; - try { - name = new String(data, 6, 16, "ascii"); - } catch (UnsupportedEncodingException e) { - name = null; - } int r = 22; + if (data.length < 128 * 3 + r) { + break; + } + name = new String(data, 6, 16, US_ASCII); for (int i = 0; i < 128; i++) { int xx = data[r++] & 0xFF; int yy = data[r++] & 0xFF; @@ -118,8 +129,14 @@ case 0x02: // SINGLE NOTE TUNING CHANGE (REAL-TIME) { // http://www.midi.org/about-midi/tuning.shtml + if (data.length < 7) { + break; + } int ll = data[6] & 0xFF; int r = 7; + if (data.length < ll * 4 + r) { + break; + } for (int i = 0; i < ll; i++) { int kk = data[r++] & 0xFF; int xx = data[r++] & 0xFF; @@ -135,11 +152,10 @@ // http://www.midi.org/about-midi/tuning_extens.shtml if (!checksumOK(data)) break; - try { - name = new String(data, 7, 16, "ascii"); - } catch (UnsupportedEncodingException e) { - name = null; + if (data.length < 407) { + break; } + name = new String(data, 7, 16, US_ASCII); int r = 23; for (int i = 0; i < 128; i++) { int xx = data[r++] & 0xFF; @@ -156,11 +172,10 @@ // http://www.midi.org/about-midi/tuning_extens.shtml if (!checksumOK(data)) break; - try { - name = new String(data, 7, 16, "ascii"); - } catch (UnsupportedEncodingException e) { - name = null; + if (data.length < 35) { + break; } + name = new String(data, 7, 16, US_ASCII); int[] octave_tuning = new int[12]; for (int i = 0; i < 12; i++) octave_tuning[i] = (data[i + 23] & 0xFF) - 64; @@ -174,11 +189,10 @@ // http://www.midi.org/about-midi/tuning_extens.shtml if (!checksumOK(data)) break; - try { - name = new String(data, 7, 16, "ascii"); - } catch (UnsupportedEncodingException e) { - name = null; + if (data.length < 47) { + break; } + name = new String(data, 7, 16, US_ASCII); double[] octave_tuning = new double[12]; for (int i = 0; i < 12; i++) { int v = (data[i * 2 + 23] & 0xFF) * 128 @@ -192,7 +206,13 @@ case 0x07: // SINGLE NOTE TUNING CHANGE (NON // REAL-TIME/REAL-TIME) (BANK) // http://www.midi.org/about-midi/tuning_extens.shtml + if (data.length < 8) { + break; + } int ll = data[7] & 0xFF; + if (data.length < ll * 4 + 8) { + break; + } int r = 8; for (int i = 0; i < ll; i++) { int kk = data[r++] & 0xFF; @@ -208,6 +228,9 @@ // Real-Time/REAL-TIME) { // http://www.midi.org/about-midi/tuning-scale.shtml + if (data.length < 20) { + break; + } int[] octave_tuning = new int[12]; for (int i = 0; i < 12; i++) octave_tuning[i] = (data[i + 8] & 0xFF) - 64; @@ -219,6 +242,9 @@ // Real-Time/REAL-TIME) { // http://www.midi.org/about-midi/tuning-scale.shtml + if (data.length < 32) { + break; + } double[] octave_tuning = new double[12]; for (int i = 0; i < 12; i++) { int v = (data[i * 2 + 8] & 0xFF) * 128 diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/DefaultListCellRenderer.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/DefaultListCellRenderer.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/DefaultListCellRenderer.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/DefaultListCellRenderer.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,15 +25,15 @@ package javax.swing; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.border.*; - -import java.awt.Component; import java.awt.Color; +import java.awt.Component; import java.awt.Rectangle; - import java.io.Serializable; + +import javax.swing.border.Border; +import javax.swing.border.EmptyBorder; +import javax.swing.plaf.synth.SynthListUI; + import sun.swing.DefaultLookup; import sun.swing.SwingUtilities2; @@ -157,7 +157,11 @@ setText((value == null) ? "" : value.toString()); } - setEnabled(list.isEnabled()); + if (list.getName() == null || !list.getName().equals("ComboBox.list") + || !(list.getUI() instanceof SynthListUI)) { + setEnabled(list.isEnabled()); + } + setFont(list.getFont()); Border border = null; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/JFormattedTextField.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/JFormattedTextField.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/JFormattedTextField.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/JFormattedTextField.java 2025-01-04 20:25:18.000000000 +0000 @@ -868,11 +868,11 @@ return new DefaultFormatterFactory(new DateFormatter()); } if (type instanceof Number) { - AbstractFormatter displayFormatter = new NumberFormatter(); - ((NumberFormatter)displayFormatter).setValueClass(type.getClass()); - AbstractFormatter editFormatter = new NumberFormatter( + NumberFormatter displayFormatter = new NumberFormatter(); + displayFormatter.setValueClass(type.getClass()); + NumberFormatter editFormatter = new NumberFormatter( new DecimalFormat("#.#")); - ((NumberFormatter)editFormatter).setValueClass(type.getClass()); + editFormatter.setValueClass(type.getClass()); return new DefaultFormatterFactory(displayFormatter, displayFormatter,editFormatter); diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/JRootPane.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/JRootPane.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/JRootPane.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/JRootPane.java 2025-01-04 20:25:18.000000000 +0000 @@ -24,18 +24,13 @@ */ package javax.swing; -import java.applet.Applet; import java.awt.*; -import java.awt.event.*; import java.beans.*; import java.security.AccessController; import javax.accessibility.*; import javax.swing.plaf.RootPaneUI; -import java.util.Vector; import java.io.Serializable; -import javax.swing.border.*; -import sun.awt.AWTAccessor; import sun.security.action.GetBooleanAction; @@ -511,10 +506,10 @@ * @return the default glassPane */ protected Component createGlassPane() { - JComponent c = new JPanel(); + JPanel c = new JPanel(); c.setName(this.getName()+".glassPane"); c.setVisible(false); - ((JPanel)c).setOpaque(false); + c.setOpaque(false); return c; } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/JTree.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/JTree.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/JTree.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/JTree.java 2025-01-04 20:25:18.000000000 +0000 @@ -2033,7 +2033,7 @@ Enumeration toggledPaths = expandedState.keys(); Vector elements = null; TreePath path; - Object value; + Boolean value; if(toggledPaths != null) { while(toggledPaths.hasMoreElements()) { @@ -2042,8 +2042,7 @@ // Add the path if it is expanded, a descendant of parent, // and it is visible (all parents expanded). This is rather // expensive! - if(path != parent && value != null && - ((Boolean)value).booleanValue() && + if (path != parent && value != null && value && parent.isDescendant(path) && isVisible(path)) { if (elements == null) { elements = new Vector(); @@ -2081,11 +2080,11 @@ if(path == null) return false; - Object value; + Boolean value; do{ value = expandedState.get(path); - if(value == null || !((Boolean)value).booleanValue()) + if (value == null || !value) return false; } while( (path=path.getParentPath())!=null ); @@ -2109,7 +2108,7 @@ if(path != null) { Boolean value = expandedState.get(path); - return (value != null && value.booleanValue()); + return (value != null && value); } } return false; @@ -3729,9 +3728,9 @@ } if(!state) { // collapse last path. - Object cValue = expandedState.get(path); + Boolean cValue = expandedState.get(path); - if(cValue != null && ((Boolean)cValue).booleanValue()) { + if (cValue != null && cValue) { try { fireTreeWillCollapse(path); } @@ -3753,9 +3752,9 @@ } else { // Expand last path. - Object cValue = expandedState.get(path); + Boolean cValue = expandedState.get(path); - if(cValue == null || !((Boolean)cValue).booleanValue()) { + if (cValue == null || !cValue) { try { fireTreeWillExpand(path); } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboPopup.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboPopup.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboPopup.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboPopup.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -921,7 +921,7 @@ if (e.getSource() == list) { return; } - if (!SwingUtilities.isLeftMouseButton(e) || !comboBox.isEnabled()) + if (!SwingUtilities.isLeftMouseButton(e) || !comboBox.isEnabled() || !comboBox.isShowing()) return; if ( comboBox.isEditable() ) { diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,6 +39,7 @@ import javax.swing.ComboBoxEditor; import javax.swing.DefaultButtonModel; +import javax.swing.DefaultListCellRenderer; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JComboBox; @@ -108,6 +109,8 @@ */ private EditorFocusHandler editorFocusHandler; + private DlcrEnabledHandler dlcrEnabledHandler; + /** * If true, then the cell renderer will be forced to be non-opaque when * used for rendering the selected item in the combo box (not in the list), @@ -187,6 +190,7 @@ comboBox.addPropertyChangeListener(this); comboBox.addMouseListener(buttonHandler); editorFocusHandler = new EditorFocusHandler(comboBox); + dlcrEnabledHandler = new DlcrEnabledHandler(comboBox); super.installListeners(); } @@ -219,6 +223,7 @@ @Override protected void uninstallListeners() { editorFocusHandler.unregister(); + dlcrEnabledHandler.unregister(); comboBox.removePropertyChangeListener(this); comboBox.removeMouseListener(buttonHandler); buttonHandler.pressed = false; @@ -793,5 +798,37 @@ } } } + } + + /** + * Handler for updating combobox enabled status when renderer enabled + * status changes + */ + private static class DlcrEnabledHandler implements PropertyChangeListener { + private JComboBox comboBox; + + private DlcrEnabledHandler(JComboBox comboBox) { + this.comboBox = comboBox; + comboBox.addPropertyChangeListener("enabled",this); + } + + public void unregister() { + comboBox.removePropertyChangeListener("enabled", this); + } + + /** + * Called when the combos enabled status changes + * + * @param evt A PropertyChangeEvent object describing the event source + * and the property that has changed. + */ + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getPropertyName().equals("enabled")) { + if (comboBox.getRenderer() instanceof DefaultListCellRenderer) { + ((DefaultListCellRenderer) comboBox.getRenderer()) + .setEnabled((boolean) evt.getNewValue()); + } + } + } } } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthParser.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthParser.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthParser.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/plaf/synth/SynthParser.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1024,10 +1024,7 @@ painter, direction); - for (Object infoObject: painters) { - ParsedSynthStyle.PainterInfo info; - info = (ParsedSynthStyle.PainterInfo) infoObject; - + for (ParsedSynthStyle.PainterInfo info: painters) { if (painterInfo.equalsPainter(info)) { info.addPainter(painter); return; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/html/AccessibleHTML.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/AccessibleHTML.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/html/AccessibleHTML.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/AccessibleHTML.java 2025-01-04 20:25:18.000000000 +0000 @@ -317,14 +317,12 @@ */ public AccessibleStateSet getAccessibleStateSet() { AccessibleStateSet states = new AccessibleStateSet(); - Component comp = getTextComponent(); + JTextComponent comp = getTextComponent(); if (comp.isEnabled()) { states.add(AccessibleState.ENABLED); } - if (comp instanceof JTextComponent && - ((JTextComponent)comp).isEditable()) { - + if (comp.isEditable()) { states.add(AccessibleState.EDITABLE); states.add(AccessibleState.FOCUSABLE); } @@ -742,11 +740,9 @@ * @see AccessibleStateSet */ public boolean isFocusTraversable() { - Component comp = getTextComponent(); - if (comp instanceof JTextComponent) { - if (((JTextComponent)comp).isEditable()) { - return true; - } + JTextComponent comp = getTextComponent(); + if (comp != null && comp.isEditable()) { + return true; } return false; } @@ -763,8 +759,8 @@ return; } - Component comp = getTextComponent(); - if (comp instanceof JTextComponent) { + JTextComponent comp = getTextComponent(); + if (comp != null) { comp.requestFocusInWindow(); @@ -772,7 +768,7 @@ if (elementInfo.validateIfNecessary()) { // set the caret position to the start of this component Element elem = elementInfo.getElement(); - ((JTextComponent)comp).setCaretPosition(elem.getStartOffset()); + comp.setCaretPosition(elem.getStartOffset()); // fire a AccessibleState.FOCUSED property change event AccessibleContext ac = editor.getAccessibleContext(); diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java 2025-01-04 20:25:18.000000000 +0000 @@ -4225,7 +4225,7 @@ try { if (offset == 0 || !getText(offset - 1, 1).equals("\n")) { // Need to insert a newline. - AttributeSet newAttrs = null; + SimpleAttributeSet newAttrs = null; boolean joinP = true; if (offset != 0) { @@ -4259,9 +4259,8 @@ // sure and set the name (otherwise it will be // inherited). newAttrs = new SimpleAttributeSet(); - ((SimpleAttributeSet)newAttrs).addAttribute - (StyleConstants.NameAttribute, - HTML.Tag.CONTENT); + newAttrs.addAttribute(StyleConstants.NameAttribute, + HTML.Tag.CONTENT); } ElementSpec es = new ElementSpec(newAttrs, ElementSpec.ContentType, NEWLINE, 0, diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java 2025-01-04 20:25:18.000000000 +0000 @@ -22,27 +22,82 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -package javax.swing.text.html; -import sun.awt.AppContext; +package javax.swing.text.html; -import java.awt.*; -import java.awt.event.*; -import java.io.*; +import java.awt.Color; +import java.awt.Component; +import java.awt.Container; +import java.awt.Cursor; +import java.awt.Graphics; +import java.awt.Insets; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Shape; +import java.awt.event.ActionEvent; +import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.MouseMotionListener; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.Serializable; +import java.io.StringReader; +import java.io.Writer; +import java.lang.ref.Reference; +import java.lang.ref.WeakReference; import java.net.MalformedURLException; import java.net.URL; -import javax.swing.text.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.plaf.TextUI; -import java.util.*; -import javax.accessibility.*; -import java.lang.ref.*; import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.Enumeration; + +import javax.accessibility.Accessible; +import javax.accessibility.AccessibleAction; +import javax.accessibility.AccessibleContext; +import javax.swing.Action; +import javax.swing.JEditorPane; +import javax.swing.JViewport; +import javax.swing.SizeRequirements; +import javax.swing.SwingUtilities; +import javax.swing.event.CaretEvent; +import javax.swing.event.CaretListener; +import javax.swing.event.HyperlinkEvent; +import javax.swing.plaf.TextUI; +import javax.swing.text.AbstractDocument; +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.BoxView; +import javax.swing.text.ComponentView; +import javax.swing.text.DefaultHighlighter; +import javax.swing.text.Document; +import javax.swing.text.EditorKit; +import javax.swing.text.Element; +import javax.swing.text.ElementIterator; +import javax.swing.text.Highlighter; +import javax.swing.text.IconView; +import javax.swing.text.JTextComponent; +import javax.swing.text.LabelView; +import javax.swing.text.MutableAttributeSet; +import javax.swing.text.Position; +import javax.swing.text.StyleConstants; +import javax.swing.text.StyledDocument; +import javax.swing.text.StyledEditorKit; +import javax.swing.text.TextAction; +import javax.swing.text.View; +import javax.swing.text.ViewFactory; import javax.swing.text.html.parser.ParserDelegator; + +import sun.awt.AppContext; import sun.swing.SwingAccessor; +import static java.nio.charset.StandardCharsets.ISO_8859_1; + /** * The Swing JEditorPane text component supports different kinds * of content via a plug-in mechanism called an EditorKit. Because @@ -404,7 +459,7 @@ try { InputStream is = HTMLEditorKit.getResourceAsStream(DEFAULT_CSS); Reader r = new BufferedReader( - new InputStreamReader(is, "ISO-8859-1")); + new InputStreamReader(is, ISO_8859_1)); defaultStyles.loadRules(r, null); r.close(); } catch (Throwable e) { @@ -793,13 +848,12 @@ Rectangle bounds; TextUI ui = html.getUI(); try { - Shape lBounds = ui.modelToView(html, offset, + Rectangle lBounds = ui.modelToView(html, offset, Position.Bias.Forward); - Shape rBounds = ui.modelToView(html, offset + 1, + Rectangle rBounds = ui.modelToView(html, offset + 1, Position.Bias.Backward); - bounds = lBounds.getBounds(); - bounds.add((rBounds instanceof Rectangle) ? - (Rectangle)rBounds : rBounds.getBounds()); + bounds = lBounds; + bounds.add(rBounds); } catch (BadLocationException ble) { bounds = null; } @@ -830,18 +884,14 @@ if (e != null && offset > 0 && e.getStartOffset() == offset) { try { TextUI ui = editor.getUI(); - Shape s1 = ui.modelToView(editor, offset, - Position.Bias.Forward); - if (s1 == null) { + Rectangle r1 = ui.modelToView(editor, offset, + Position.Bias.Forward); + if (r1 == null) { return false; } - Rectangle r1 = (s1 instanceof Rectangle) ? (Rectangle)s1 : - s1.getBounds(); - Shape s2 = ui.modelToView(editor, e.getEndOffset(), - Position.Bias.Backward); - if (s2 != null) { - Rectangle r2 = (s2 instanceof Rectangle) ? (Rectangle)s2 : - s2.getBounds(); + Rectangle r2 = ui.modelToView(editor, e.getEndOffset(), + Position.Bias.Backward); + if (r2 != null) { r1.add(r2); } return r1.contains(x, y); @@ -1466,9 +1516,9 @@ //if parent == null unregister component listener if (parent == null) { if (cachedViewPort != null) { - Object cachedObject; + JViewport cachedObject; if ((cachedObject = cachedViewPort.get()) != null) { - ((JComponent)cachedObject).removeComponentListener(this); + cachedObject.removeComponentListener(this); } cachedViewPort = null; } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/html/default.css openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/default.css --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/html/default.css 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/html/default.css 2025-01-04 20:25:18.000000000 +0000 @@ -102,7 +102,7 @@ margin-bottom: 0} dd p {margin-left: 0; - margin-rigth: 0; + margin-right: 0; margin-top: 0; margin-bottom: 0} diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/rtf/RTFGenerator.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/rtf/RTFGenerator.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/rtf/RTFGenerator.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/rtf/RTFGenerator.java 2025-01-04 20:25:18.000000000 +0000 @@ -27,7 +27,6 @@ import java.lang.*; import java.util.*; import java.awt.Color; -import java.awt.Font; import java.io.OutputStream; import java.io.IOException; @@ -516,13 +515,13 @@ { if (emitStyleChanges) { Object oldStyle = current.getAttribute("sectionStyle"); - Object newStyle = findStyleNumber(newAttributes, Constants.STSection); + Integer newStyle = findStyleNumber(newAttributes, Constants.STSection); if (oldStyle != newStyle) { if (oldStyle != null) { resetSectionAttributes(current); } if (newStyle != null) { - writeControlWord("ds", ((Integer)newStyle).intValue()); + writeControlWord("ds", newStyle); current.addAttribute("sectionStyle", newStyle); } else { current.removeAttribute("sectionStyle"); @@ -555,8 +554,8 @@ boolean emitStyleChanges) throws IOException { - Object parm; - Object oldStyle, newStyle; + Object oldStyle; + Integer newStyle; /* The only way to get rid of tabs or styles is with the \pard keyword, emitted by resetParagraphAttributes(). Ideally we should avoid @@ -588,7 +587,7 @@ } if (oldStyle != newStyle && newStyle != null) { - writeControlWord("s", ((Integer)newStyle).intValue()); + writeControlWord("s", newStyle); current.addAttribute("paragraphStyle", newStyle); } @@ -707,14 +706,14 @@ if (updateStyleChanges) { Object oldStyle = current.getAttribute("characterStyle"); - Object newStyle = findStyleNumber(newAttributes, + Integer newStyle = findStyleNumber(newAttributes, Constants.STCharacter); if (oldStyle != newStyle) { if (oldStyle != null) { resetCharacterAttributes(current); } if (newStyle != null) { - writeControlWord("cs", ((Integer)newStyle).intValue()); + writeControlWord("cs", newStyle.intValue()); current.addAttribute("characterStyle", newStyle); } else { current.removeAttribute("characterStyle"); diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/rtf/RTFReader.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/rtf/RTFReader.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/javax/swing/text/rtf/RTFReader.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/javax/swing/text/rtf/RTFReader.java 2025-01-04 20:25:18.000000000 +0000 @@ -22,12 +22,16 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ + package javax.swing.text.rtf; -import java.lang.*; -import java.util.*; -import java.io.*; import java.awt.Color; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.StreamTokenizer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; @@ -35,7 +39,24 @@ import java.nio.charset.CodingErrorAction; import java.security.AccessController; import java.security.PrivilegedAction; -import javax.swing.text.*; +import java.util.Dictionary; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Hashtable; +import java.util.Map; +import java.util.Set; +import java.util.Vector; + +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.MutableAttributeSet; +import javax.swing.text.SimpleAttributeSet; +import javax.swing.text.Style; +import javax.swing.text.StyleConstants; +import javax.swing.text.StyleContext; +import javax.swing.text.StyledDocument; +import javax.swing.text.TabStop; import static java.nio.charset.StandardCharsets.ISO_8859_1; @@ -648,7 +669,7 @@ char[] values = new char[256]; int i; StreamTokenizer in = new StreamTokenizer(new BufferedReader( - new InputStreamReader(strm, "ISO-8859-1"))); + new InputStreamReader(strm, ISO_8859_1))); in.eolIsSignificant(false); in.commentChar('#'); diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/awt/FontDescriptor.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/awt/FontDescriptor.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/awt/FontDescriptor.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/awt/FontDescriptor.java 2025-01-04 20:25:18.000000000 +0000 @@ -22,14 +22,17 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ + package sun.awt; import java.io.ByteArrayOutputStream; -import java.io.OutputStreamWriter; import java.io.IOException; +import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; -import java.nio.charset.StandardCharsets; + +import static java.nio.charset.StandardCharsets.UTF_16BE; +import static java.nio.charset.StandardCharsets.UTF_16LE; public class FontDescriptor implements Cloneable { @@ -109,9 +112,8 @@ public boolean useUnicode() { if (useUnicode && unicodeEncoder == null) { try { - this.unicodeEncoder = isLE? - StandardCharsets.UTF_16LE.newEncoder(): - StandardCharsets.UTF_16BE.newEncoder(); + this.unicodeEncoder = isLE ? UTF_16LE.newEncoder(): + UTF_16BE.newEncoder(); } catch (IllegalArgumentException x) {} } return useUnicode; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/awt/SunToolkit.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/awt/SunToolkit.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/awt/SunToolkit.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/awt/SunToolkit.java 2025-01-04 20:25:18.000000000 +0000 @@ -1805,8 +1805,8 @@ if (useSystemAAFontSettings()) { Toolkit tk = Toolkit.getDefaultToolkit(); if (tk instanceof SunToolkit) { - Object map = ((SunToolkit)tk).getDesktopAAHints(); - return (RenderingHints)map; + RenderingHints map = ((SunToolkit)tk).getDesktopAAHints(); + return map; } else { /* Headless Toolkit */ return null; } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/awt/datatransfer/DataTransferer.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/awt/datatransfer/DataTransferer.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/awt/datatransfer/DataTransferer.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/awt/datatransfer/DataTransferer.java 2025-01-04 20:25:18.000000000 +0000 @@ -29,77 +29,78 @@ import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; - import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.FlavorMap; import java.awt.datatransfer.FlavorTable; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; - +import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; +import java.awt.image.ImageObserver; +import java.awt.image.RenderedImage; +import java.awt.image.WritableRaster; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FilePermission; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Reader; import java.io.SequenceInputStream; import java.io.StringReader; - +import java.lang.reflect.Constructor; +import java.lang.reflect.Modifier; import java.net.URI; import java.net.URISyntaxException; - import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; import java.nio.charset.IllegalCharsetNameException; -import java.nio.charset.StandardCharsets; import java.nio.charset.UnsupportedCharsetException; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Modifier; - import java.security.AccessController; import java.security.PrivilegedAction; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.security.ProtectionDomain; - -import java.util.*; - -import sun.datatransfer.DataFlavorUtil; - -import sun.awt.AppContext; -import sun.awt.ComponentFactory; -import sun.awt.SunToolkit; - -import java.awt.image.BufferedImage; -import java.awt.image.ImageObserver; -import java.awt.image.RenderedImage; -import java.awt.image.WritableRaster; -import java.awt.image.ColorModel; +import java.util.AbstractMap; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedMap; +import java.util.Stack; +import java.util.TreeMap; +import java.util.stream.Stream; import javax.imageio.ImageIO; -import javax.imageio.ImageReader; import javax.imageio.ImageReadParam; -import javax.imageio.ImageWriter; +import javax.imageio.ImageReader; import javax.imageio.ImageTypeSpecifier; - +import javax.imageio.ImageWriter; import javax.imageio.spi.ImageWriterSpi; - import javax.imageio.stream.ImageInputStream; import javax.imageio.stream.ImageOutputStream; +import sun.awt.AppContext; +import sun.awt.ComponentFactory; +import sun.awt.SunToolkit; import sun.awt.image.ImageRepresentation; import sun.awt.image.ToolkitImage; +import sun.datatransfer.DataFlavorUtil; -import java.io.FilePermission; -import java.util.stream.Stream; - +import static java.nio.charset.StandardCharsets.UTF_8; /** * Provides a set of functions to be shared among the DataFlavor class and @@ -550,7 +551,7 @@ try { byte[] charsetNameBytes = (byte[])localeTransferable .getTransferData(javaTextEncodingFlavor); - charset = new String(charsetNameBytes, StandardCharsets.UTF_8); + charset = new String(charsetNameBytes, UTF_8); } catch (UnsupportedFlavorException cannotHappen) { } } else { diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/font/Type1Font.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/font/Type1Font.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/font/Type1Font.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/font/Type1Font.java 2025-01-04 20:25:18.000000000 +0000 @@ -25,23 +25,23 @@ package sun.font; -import java.lang.ref.WeakReference; import java.awt.FontFormatException; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; -import java.io.UnsupportedEncodingException; import java.lang.ref.WeakReference; +import java.nio.BufferUnderflowException; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import java.nio.BufferUnderflowException; import java.nio.channels.ClosedChannelException; import java.nio.channels.FileChannel; +import java.util.HashMap; +import java.util.HashSet; + import sun.java2d.Disposer; import sun.java2d.DisposerRecord; -import java.util.HashSet; -import java.util.HashMap; -import java.awt.Font; + +import static java.nio.charset.StandardCharsets.US_ASCII; /* * Adobe Technical Note 5040 details the format of PFB files. @@ -609,11 +609,7 @@ byte[] nameBytes = new byte[pos2-pos1-1]; bb.position(pos1); bb.get(nameBytes); - try { - return new String(nameBytes, "US-ASCII"); - } catch (UnsupportedEncodingException e) { - return new String(nameBytes); - } + return new String(nameBytes, US_ASCII); } private String getString(ByteBuffer bb) { @@ -623,11 +619,7 @@ byte[] nameBytes = new byte[pos2-pos1-1]; bb.position(pos1); bb.get(nameBytes); - try { - return new String(nameBytes, "US-ASCII"); - } catch (UnsupportedEncodingException e) { - return new String(nameBytes); - } + return new String(nameBytes, US_ASCII); } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/java2d/Disposer.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/java2d/Disposer.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/java2d/Disposer.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/java2d/Disposer.java 2025-01-04 20:25:18.000000000 +0000 @@ -142,8 +142,8 @@ public void run() { while (true) { try { - Object obj = queue.remove(); - ((Reference)obj).clear(); + Reference obj = queue.remove(); + obj.clear(); DisposerRecord rec = records.remove(obj); rec.dispose(); obj = null; @@ -200,7 +200,7 @@ if (pollingQueue) { return; } - Object obj; + Reference obj; pollingQueue = true; int freed = 0; int deferred = 0; @@ -208,7 +208,7 @@ while ( freed < 10000 && deferred < 100 && (obj = queue.poll()) != null ) { freed++; - ((Reference)obj).clear(); + obj.clear(); DisposerRecord rec = records.remove(obj); if (rec instanceof PollDisposable) { rec.dispose(); diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/print/PageableDoc.java openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/print/PageableDoc.java --- openjdk-17-17.0.13+11/src/java.desktop/share/classes/sun/print/PageableDoc.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/classes/sun/print/PageableDoc.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,12 +25,10 @@ package sun.print; +import java.awt.print.Pageable; import java.io.IOException; import java.io.InputStream; import java.io.Reader; -import java.io.UnsupportedEncodingException; - -import java.awt.print.Pageable; import javax.print.Doc; import javax.print.DocFlavor; @@ -57,9 +55,7 @@ return pageable; } - public Reader getReaderForText() - throws UnsupportedEncodingException, IOException { - + public Reader getReaderForText() throws IOException { return null; } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/native/libawt/java2d/SurfaceData.h openjdk-17-17.0.14+7/src/java.desktop/share/native/libawt/java2d/SurfaceData.h --- openjdk-17-17.0.13+11/src/java.desktop/share/native/libawt/java2d/SurfaceData.h 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/native/libawt/java2d/SurfaceData.h 2025-01-04 20:25:18.000000000 +0000 @@ -60,7 +60,7 @@ #define UNSAFE_TO_SUB(a, b) \ (((b >= 0) && (a < 0) && (a < (INT_MIN + b))) || \ - ((b < 0) && (a >= 0) && (-b > (INT_MAX - a)))) \ + ((b < 0) && (a >= 0) && (a > (INT_MAX + b)))) \ /* * The SurfaceDataRasInfo structure is used to pass in and return various diff -Nru openjdk-17-17.0.13+11/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c openjdk-17-17.0.14+7/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c --- openjdk-17-17.0.13+11/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -666,8 +666,6 @@ static void imageio_dispose(j_common_ptr info) { if (info != NULL) { - free(info->err); - info->err = NULL; if (info->is_decompressor) { j_decompress_ptr dinfo = (j_decompress_ptr) info; free(dinfo->src); @@ -678,6 +676,8 @@ cinfo->dest = NULL; } jpeg_destroy(info); + free(info->err); + info->err = NULL; free(info); } } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/X11/XAtom.java openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/X11/XAtom.java --- openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/X11/XAtom.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/X11/XAtom.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,9 +58,13 @@ * @since 1.5 */ -import jdk.internal.misc.Unsafe; import java.util.HashMap; +import jdk.internal.misc.Unsafe; + +import static java.nio.charset.StandardCharsets.ISO_8859_1; +import static java.nio.charset.StandardCharsets.UTF_8; + public final class XAtom { // Order of lock: XAWTLock -> XAtom.class @@ -308,12 +312,7 @@ throw new IllegalStateException("Atom should be initialized"); } checkWindow(window); - byte[] bdata = null; - try { - bdata = str.getBytes("UTF-8"); - } catch (java.io.UnsupportedEncodingException uee) { - uee.printStackTrace(); - } + byte[] bdata = str.getBytes(UTF_8); if (bdata != null) { setAtomData(window, XA_UTF8_STRING.atom, bdata); } @@ -327,12 +326,7 @@ throw new IllegalStateException("Atom should be initialized"); } checkWindow(window); - byte[] bdata = null; - try { - bdata = str.getBytes("ISO-8859-1"); - } catch (java.io.UnsupportedEncodingException uee) { - uee.printStackTrace(); - } + byte[] bdata = str.getBytes(ISO_8859_1); if (bdata != null) { setAtomData(window, XA_STRING, bdata); } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/X11/XNETProtocol.java openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/X11/XNETProtocol.java --- openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/X11/XNETProtocol.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/X11/XNETProtocol.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,14 +23,17 @@ * questions. */ - package sun.awt.X11; import java.awt.Frame; +import java.nio.charset.Charset; import sun.awt.IconInfo; import sun.util.logging.PlatformLogger; +import static java.nio.charset.StandardCharsets.US_ASCII; +import static java.nio.charset.StandardCharsets.UTF_8; + final class XNETProtocol extends XProtocol implements XStateProtocol, XLayerProtocol { private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XNETProtocol"); @@ -382,22 +385,18 @@ * mandates UTF8_STRING for _NET_WM_NAME but at least sawfish-1.0 * still uses STRING. (mmm, moving targets...). */ - String charSet = "UTF8"; + Charset charSet = UTF_8; byte[] net_wm_name = XA_NET_WM_NAME.getByteArrayProperty(NetWindow, XA_UTF8_STRING.getAtom()); if (net_wm_name == null) { net_wm_name = XA_NET_WM_NAME.getByteArrayProperty(NetWindow, XAtom.XA_STRING); - charSet = "ASCII"; + charSet = US_ASCII; } if (net_wm_name == null) { return null; } - try { - net_wm_name_cache = new String(net_wm_name, charSet); - return net_wm_name_cache; - } catch (java.io.UnsupportedEncodingException uex) { - return null; - } + net_wm_name_cache = new String(net_wm_name, charSet); + return net_wm_name_cache; } /** diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java --- openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java 2025-01-04 20:25:18.000000000 +0000 @@ -47,7 +47,6 @@ import java.awt.event.WindowEvent; import java.awt.peer.ComponentPeer; import java.awt.peer.WindowPeer; -import java.io.UnsupportedEncodingException; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; @@ -67,6 +66,8 @@ import sun.java2d.pipe.Region; import sun.util.logging.PlatformLogger; +import static java.nio.charset.StandardCharsets.UTF_8; + class XWindowPeer extends XPanelPeer implements WindowPeer, DisplayChangedListener { @@ -772,6 +773,7 @@ // TODO this should be the default for every case. switch (runningWM) { case XWM.CDE_WM: + case XWM.KDE2_WM: case XWM.MOTIF_WM: case XWM.METACITY_WM: case XWM.MUTTER_WM: @@ -1358,12 +1360,7 @@ } messageBuilder.append('"'); messageBuilder.append('\0'); - final byte[] message; - try { - message = messageBuilder.toString().getBytes("UTF-8"); - } catch (UnsupportedEncodingException cannotHappen) { - return; - } + final byte[] message = messageBuilder.toString().getBytes(UTF_8); XClientMessageEvent req = null; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/XSettings.java openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/XSettings.java --- openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/XSettings.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/XSettings.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,12 +26,10 @@ package sun.awt; import java.awt.Color; - -import java.io.UnsupportedEncodingException; - import java.util.HashMap; import java.util.Map; +import static java.nio.charset.StandardCharsets.UTF_8; /** * Per-screen XSETTINGS. @@ -198,12 +196,7 @@ { needBytes(len); - String str = null; - try { - str = new String(data, idx, len, "UTF-8"); - } catch (UnsupportedEncodingException e) { - // XXX: cannot happen, "UTF-8" is always supported - } + String str = new String(data, idx, len, UTF_8); idx = (idx + len + 3) & ~0x3; return str; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/screencast/TokenStorage.java openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/screencast/TokenStorage.java --- openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/awt/screencast/TokenStorage.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/awt/screencast/TokenStorage.java 2025-01-04 20:25:18.000000000 +0000 @@ -60,35 +60,33 @@ * The restore token allows the ScreenCast session to be restored * with previously granted screen access permissions. */ -@SuppressWarnings("removal") final class TokenStorage { private TokenStorage() {} private static final String REL_NAME = + ".java/robot/screencast-tokens.properties"; + private static final String REL_NAME_SECONDARY = ".awt/robot/screencast-tokens.properties"; private static final Properties PROPS = new Properties(); private static final Path PROPS_PATH; private static final Path PROP_FILENAME; + @SuppressWarnings("removal") private static void doPrivilegedRunnable(Runnable runnable) { - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Void run() { - runnable.run(); - return null; - } + AccessController.doPrivileged((PrivilegedAction) () -> { + runnable.run(); + return null; }); } static { - PROPS_PATH = AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Path run() { - return setupPath(); - } - }); + @SuppressWarnings("removal") + Path propsPath = AccessController + .doPrivileged((PrivilegedAction) () -> setupPath()); + + PROPS_PATH = propsPath; if (PROPS_PATH != null) { PROP_FILENAME = PROPS_PATH.getFileName(); @@ -110,25 +108,32 @@ } Path path = Path.of(userHome, REL_NAME); + Path secondaryPath = Path.of(userHome, REL_NAME_SECONDARY); + + boolean copyFromSecondary = !Files.isWritable(path) + && Files.isWritable(secondaryPath); + Path workdir = path.getParent(); - if (!Files.exists(workdir)) { - try { - Files.createDirectories(workdir); - } catch (Exception e) { - if (SCREENCAST_DEBUG) { - System.err.printf("Token storage: cannot create" + - " directory %s %s\n", workdir, e); + if (!Files.isWritable(path)) { + if (!Files.exists(workdir)) { + try { + Files.createDirectories(workdir); + } catch (Exception e) { + if (SCREENCAST_DEBUG) { + System.err.printf("Token storage: cannot create" + + " directory %s %s\n", workdir, e); + } + return null; } - return null; } - } - if (!Files.isWritable(workdir)) { - if (SCREENCAST_DEBUG) { - System.err.printf("Token storage: %s is not writable\n", workdir); + if (!Files.isWritable(workdir)) { + if (SCREENCAST_DEBUG) { + System.err.printf("Token storage: %s is not writable\n", workdir); + } + return null; } - return null; } try { @@ -145,7 +150,17 @@ } } - if (Files.exists(path)) { + if (copyFromSecondary) { + if (SCREENCAST_DEBUG) { + System.out.println("Token storage: copying from the secondary location " + + secondaryPath); + } + synchronized (PROPS) { + if (readTokens(secondaryPath)) { + store(path, "copy from the secondary location"); + } + } + } else if (Files.exists(path)) { if (!setFilePermission(path)) { return null; } @@ -302,7 +317,7 @@ } if (changed) { - doPrivilegedRunnable(() -> store("save tokens")); + doPrivilegedRunnable(() -> store(PROPS_PATH, "save tokens")); } } } @@ -315,7 +330,7 @@ PROPS.clear(); PROPS.load(reader); } - } catch (IOException e) { + } catch (IOException | IllegalArgumentException e) { if (SCREENCAST_DEBUG) { System.err.printf(""" Token storage: failed to load property file %s @@ -410,7 +425,7 @@ } private static void removeMalformedRecords(Set malformedRecords) { - if (!isWritable() + if (!isWritable(PROPS_PATH) || malformedRecords == null || malformedRecords.isEmpty()) { return; @@ -424,17 +439,17 @@ } } - store("remove malformed records"); + store(PROPS_PATH, "remove malformed records"); } } - private static void store(String failMsg) { - if (!isWritable()) { + private static void store(Path path, String failMsg) { + if (!isWritable(path)) { return; } synchronized (PROPS) { - try (BufferedWriter writer = Files.newBufferedWriter(PROPS_PATH)) { + try (BufferedWriter writer = Files.newBufferedWriter(path)) { PROPS.store(writer, null); } catch (IOException e) { if (SCREENCAST_DEBUG) { @@ -445,13 +460,13 @@ } } - private static boolean isWritable() { - if (PROPS_PATH == null - || (Files.exists(PROPS_PATH) && !Files.isWritable(PROPS_PATH))) { + private static boolean isWritable(Path path) { + if (path == null + || (Files.exists(path) && !Files.isWritable(path))) { if (SCREENCAST_DEBUG) { System.err.printf( - "Token storage: %s is not writable\n", PROPS_PATH); + "Token storage: %s is not writable\n", path); } return false; } else { diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java --- openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java 2025-01-04 20:25:18.000000000 +0000 @@ -32,23 +32,24 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.HashMap; import java.util.HashSet; import java.util.Locale; import java.util.Properties; import java.util.Scanner; + import sun.awt.FcFontManager; import sun.awt.FontConfiguration; import sun.awt.FontDescriptor; import sun.awt.SunToolkit; -import sun.font.CompositeFontDescriptor; -import sun.font.FontConfigManager.FontConfigInfo; import sun.font.FontConfigManager.FcCompFont; import sun.font.FontConfigManager.FontConfigFont; +import sun.font.FontConfigManager.FontConfigInfo; import sun.util.logging.PlatformLogger; +import static java.nio.charset.StandardCharsets.ISO_8859_1; + public class FcFontConfiguration extends FontConfiguration { /** Version of the cache file format understood by this code. @@ -178,7 +179,7 @@ String[] componentFaceNames = cfi[idx].getComponentFaceNames(); FontDescriptor[] ret = new FontDescriptor[componentFaceNames.length]; for (int i = 0; i < componentFaceNames.length; i++) { - ret[i] = new FontDescriptor(componentFaceNames[i], StandardCharsets.ISO_8859_1.newEncoder(), new int[0]); + ret[i] = new FontDescriptor(componentFaceNames[i], ISO_8859_1.newEncoder(), new int[0]); } return ret; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/font/NativeFont.java openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/font/NativeFont.java --- openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/font/NativeFont.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/font/NativeFont.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,10 +32,10 @@ import java.awt.geom.GeneralPath; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; -import java.io.UnsupportedEncodingException; -import java.lang.ref.WeakReference; import java.util.Locale; +import static java.nio.charset.StandardCharsets.UTF_8; + /* * Ideally there would be no native fonts used, and this class would be * unneeded and removed. Presently it is still needed until such time @@ -213,23 +213,11 @@ pos = sb.indexOf("-0-", pos); }; String xlfd = sb.toString(); - byte[] bytes = null; - try { - bytes = xlfd.getBytes("UTF-8"); - } catch (UnsupportedEncodingException e) { - bytes = xlfd.getBytes(); - } - return haveBitmapFonts(bytes); + return haveBitmapFonts(xlfd.getBytes(UTF_8)); } public static boolean fontExists(String xlfd) { - byte[] bytes = null; - try { - bytes = xlfd.getBytes("UTF-8"); - } catch (UnsupportedEncodingException e) { - bytes = xlfd.getBytes(); - } - return fontExists(bytes); + return fontExists(xlfd.getBytes(UTF_8)); } private static native boolean haveBitmapFonts(byte[] xlfd); @@ -380,13 +368,7 @@ } String xlfd = sb.toString(); - byte[] bytes = null; - try { - bytes = xlfd.getBytes("UTF-8"); - } catch (UnsupportedEncodingException e) { - bytes = xlfd.getBytes(); - } - return bytes; + return xlfd.getBytes(UTF_8); } public String toString() { diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/print/AttributeClass.java openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/print/AttributeClass.java --- openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/print/AttributeClass.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/print/AttributeClass.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,10 +22,13 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ + package sun.print; -import java.util.Objects; import java.io.ByteArrayInputStream; +import java.util.Objects; + +import static java.nio.charset.StandardCharsets.UTF_8; public class AttributeClass { private String myName; @@ -187,10 +190,7 @@ byte[] strBytes = new byte[valLength]; bufStream.read(strBytes, 0, valLength); - try { - strVal = new String(strBytes, "UTF-8"); - } catch (java.io.UnsupportedEncodingException uee) { - } + strVal = new String(strBytes, UTF_8); } return strVal; } @@ -219,10 +219,7 @@ int valLength = bufStream.read(); byte[] bufBytes = new byte[valLength]; bufStream.read(bufBytes, 0, valLength); - try { - valueArray[i] = new String(bufBytes, "UTF-8"); - } catch (java.io.UnsupportedEncodingException uee) { - } + valueArray[i] = new String(bufBytes, UTF_8); } return valueArray; } diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/print/IPPPrintService.java openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/print/IPPPrintService.java --- openjdk-17-17.0.13+11/src/java.desktop/unix/classes/sun/print/IPPPrintService.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/classes/sun/print/IPPPrintService.java 2025-01-04 20:25:18.000000000 +0000 @@ -27,42 +27,82 @@ import java.awt.GraphicsEnvironment; import java.awt.Toolkit; -import javax.print.attribute.*; -import javax.print.attribute.standard.*; -import javax.print.DocFlavor; -import javax.print.DocPrintJob; -import javax.print.PrintService; -import javax.print.ServiceUIFactory; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Locale; -import java.util.Date; -import java.util.Arrays; -import java.security.AccessController; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; -import javax.print.event.PrintServiceAttributeListener; - -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLConnection; -import java.net.HttpURLConnection; +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; import java.io.File; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.io.DataInputStream; -import java.io.ByteArrayOutputStream; -import java.io.ByteArrayInputStream; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.nio.charset.Charset; - -import java.util.Iterator; +import java.net.HttpURLConnection; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.HashSet; +import java.util.Locale; import java.util.Map; +import javax.print.DocFlavor; +import javax.print.DocPrintJob; +import javax.print.PrintService; +import javax.print.ServiceUIFactory; +import javax.print.attribute.Attribute; +import javax.print.attribute.AttributeSet; +import javax.print.attribute.AttributeSetUtilities; +import javax.print.attribute.EnumSyntax; +import javax.print.attribute.HashAttributeSet; +import javax.print.attribute.HashPrintServiceAttributeSet; +import javax.print.attribute.PrintRequestAttribute; +import javax.print.attribute.PrintServiceAttribute; +import javax.print.attribute.PrintServiceAttributeSet; +import javax.print.attribute.Size2DSyntax; +import javax.print.attribute.standard.Chromaticity; +import javax.print.attribute.standard.ColorSupported; +import javax.print.attribute.standard.Copies; +import javax.print.attribute.standard.CopiesSupported; +import javax.print.attribute.standard.Destination; +import javax.print.attribute.standard.DialogOwner; +import javax.print.attribute.standard.DialogTypeSelection; +import javax.print.attribute.standard.Fidelity; +import javax.print.attribute.standard.Finishings; +import javax.print.attribute.standard.JobName; +import javax.print.attribute.standard.JobSheets; +import javax.print.attribute.standard.Media; +import javax.print.attribute.standard.MediaPrintableArea; +import javax.print.attribute.standard.MediaSize; +import javax.print.attribute.standard.MediaSizeName; +import javax.print.attribute.standard.MediaTray; +import javax.print.attribute.standard.NumberUp; +import javax.print.attribute.standard.OrientationRequested; +import javax.print.attribute.standard.PDLOverrideSupported; +import javax.print.attribute.standard.PageRanges; +import javax.print.attribute.standard.PagesPerMinute; +import javax.print.attribute.standard.PagesPerMinuteColor; +import javax.print.attribute.standard.PrinterInfo; +import javax.print.attribute.standard.PrinterIsAcceptingJobs; +import javax.print.attribute.standard.PrinterLocation; +import javax.print.attribute.standard.PrinterMakeAndModel; +import javax.print.attribute.standard.PrinterMessageFromOperator; +import javax.print.attribute.standard.PrinterMoreInfo; +import javax.print.attribute.standard.PrinterMoreInfoManufacturer; +import javax.print.attribute.standard.PrinterName; +import javax.print.attribute.standard.PrinterResolution; +import javax.print.attribute.standard.PrinterState; +import javax.print.attribute.standard.PrinterStateReasons; +import javax.print.attribute.standard.PrinterURI; +import javax.print.attribute.standard.QueuedJobCount; +import javax.print.attribute.standard.RequestingUserName; +import javax.print.attribute.standard.SheetCollate; +import javax.print.attribute.standard.Sides; +import javax.print.event.PrintServiceAttributeListener; + +import static java.nio.charset.StandardCharsets.ISO_8859_1; +import static java.nio.charset.StandardCharsets.UTF_8; public class IPPPrintService implements PrintService, SunPrinterJobService { @@ -325,11 +365,7 @@ if ((name == null) || (url == null)){ throw new IllegalArgumentException("null uri or printer name"); } - try { - printer = java.net.URLDecoder.decode(name, "UTF-8"); - } catch (java.io.UnsupportedEncodingException e) { - printer = name; - } + printer = java.net.URLDecoder.decode(name, UTF_8); supportedDocFlavors = null; supportedCats = null; mediaSizeNames = null; @@ -359,11 +395,7 @@ if ((name == null) || (uriStr == null)){ throw new IllegalArgumentException("null uri or printer name"); } - try { - printer = java.net.URLDecoder.decode(name, "UTF-8"); - } catch (java.io.UnsupportedEncodingException e) { - printer = name; - } + printer = java.net.URLDecoder.decode(name, UTF_8); supportedDocFlavors = null; supportedCats = null; mediaSizeNames = null; @@ -1735,9 +1767,8 @@ InputStream is = urlConnection.getInputStream(); if (is != null) { - BufferedReader d = - new BufferedReader(new InputStreamReader(is, - Charset.forName("ISO-8859-1"))); + BufferedReader d = new BufferedReader( + new InputStreamReader(is, ISO_8859_1)); String lineStr; while ((lineStr = d.readLine()) != null) { if (lineStr.startsWith("*cupsFilter:")) { @@ -1829,13 +1860,7 @@ public static boolean writeIPPRequest(OutputStream os, String operCode, AttributeClass[] attCl) { - OutputStreamWriter osw; - try { - osw = new OutputStreamWriter(os, "UTF-8"); - } catch (java.io.UnsupportedEncodingException exc) { - debug_println(debugPrefix+"writeIPPRequest, UTF-8 not supported? Exception: "+exc); - return false; - } + OutputStreamWriter osw = new OutputStreamWriter(os, UTF_8); debug_println(debugPrefix+"writeIPPRequest, op code= "+operCode); char[] opCode = new char[2]; opCode[0] = (char)Byte.parseByte(operCode.substring(0,2), 16); diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h openjdk-17-17.0.14+7/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h --- openjdk-17-17.0.13+11/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,13 +55,11 @@ } GParamFlags; /* We define all structure pointers to be void* */ -typedef void GMainContext; typedef void GVfs; typedef void GdkColormap; typedef void GdkDrawable; typedef void GdkGC; -typedef void GdkPixbuf; typedef void GdkPixmap; typedef void GtkFixed; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h openjdk-17-17.0.14+7/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h --- openjdk-17-17.0.13+11/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -180,8 +180,6 @@ } cairo_status_t; /* We define all structure pointers to be void* */ -typedef void GdkPixbuf; -typedef void GMainContext; typedef void GVfs; typedef void GdkColormap; diff -Nru openjdk-17-17.0.13+11/src/java.desktop/windows/classes/sun/awt/windows/WDataTransferer.java openjdk-17-17.0.14+7/src/java.desktop/windows/classes/sun/awt/windows/WDataTransferer.java --- openjdk-17-17.0.13+11/src/java.desktop/windows/classes/sun/awt/windows/WDataTransferer.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.desktop/windows/classes/sun/awt/windows/WDataTransferer.java 2025-01-04 20:25:18.000000000 +0000 @@ -25,19 +25,15 @@ package sun.awt.windows; -import java.awt.Image; import java.awt.Graphics2D; +import java.awt.Image; import java.awt.Transparency; - import java.awt.color.ColorSpace; - import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.FlavorTable; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; - import java.awt.geom.AffineTransform; - import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.ComponentColorModel; @@ -48,18 +44,16 @@ import java.awt.image.ImageObserver; import java.awt.image.Raster; import java.awt.image.WritableRaster; - import java.io.BufferedInputStream; import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.io.File; - import java.net.URL; - import java.nio.charset.Charset; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; @@ -69,13 +63,11 @@ import sun.awt.Mutex; import sun.awt.datatransfer.DataTransferer; import sun.awt.datatransfer.ToolkitThreadBlockedHandler; - import sun.awt.image.ImageRepresentation; import sun.awt.image.ToolkitImage; -import java.util.ArrayList; - -import java.io.ByteArrayOutputStream; +import static java.nio.charset.StandardCharsets.UTF_16LE; +import static java.nio.charset.StandardCharsets.UTF_8; /** * Platform-specific support for the data transfer subsystem. @@ -249,7 +241,7 @@ if (bytes == null || !DataFlavor.javaFileListFlavor.equals(flavor)) { throw new IOException("data translation failed"); } - String st = new String(bytes, 0, bytes.length, "UTF-16LE"); + String st = new String(bytes, 0, bytes.length, UTF_16LE); String[] filenames = st.split("\0"); if( 0 == filenames.length ){ return null; @@ -275,7 +267,7 @@ { try { charset = new String((byte[])localeTransferable. - getTransferData(javaTextEncodingFlavor), "UTF-8"); + getTransferData(javaTextEncodingFlavor), UTF_8); } catch (UnsupportedFlavorException cannotHappen) { } } @@ -548,8 +540,6 @@ * on encode: static convertToHTMLFormat is responsible for HTML clipboard header creation */ class HTMLCodec extends InputStream { - //static section - public static final String ENCODING = "UTF-8"; public static final String VERSION = "Version:"; public static final String START_HTML = "StartHTML:"; @@ -671,13 +661,8 @@ //HTML header.append(htmlPrefix); - byte[] headerBytes = null, trailerBytes = null; - - try { - headerBytes = header.toString().getBytes(ENCODING); - trailerBytes = htmlSuffix.getBytes(ENCODING); - } catch (UnsupportedEncodingException cannotHappen) { - } + byte[] headerBytes = header.toString().getBytes(UTF_8); + byte[] trailerBytes = htmlSuffix.getBytes(UTF_8); byte[] retval = new byte[headerBytes.length + bytes.length + trailerBytes.length]; @@ -786,7 +771,7 @@ BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( bufferedStream, - ENCODING + UTF_8 ), CHAR_BUFFER_LEN ); diff -Nru openjdk-17-17.0.13+11/src/java.naming/share/classes/com/sun/jndi/ldap/sasl/SaslInputStream.java openjdk-17-17.0.14+7/src/java.naming/share/classes/com/sun/jndi/ldap/sasl/SaslInputStream.java --- openjdk-17-17.0.13+11/src/java.naming/share/classes/com/sun/jndi/ldap/sasl/SaslInputStream.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/java.naming/share/classes/com/sun/jndi/ldap/sasl/SaslInputStream.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -78,7 +78,7 @@ byte[] inBuf = new byte[1]; int count = read(inBuf, 0, 1); if (count > 0) { - return inBuf[0]; + return inBuf[0] & 0xff; } else { return -1; } diff -Nru openjdk-17-17.0.13+11/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/StringConcat.java openjdk-17-17.0.14+7/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/StringConcat.java --- openjdk-17-17.0.13+11/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/StringConcat.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/StringConcat.java 2025-01-04 20:25:18.000000000 +0000 @@ -143,25 +143,6 @@ } /** - * If the type is not accessible from current context, try to figure out the - * sharpest accessible supertype. - * - * @param originalType type to sharpen - * @return sharped type - */ - Type sharpestAccessible(Type originalType) { - if (originalType.hasTag(ARRAY)) { - return types.makeArrayType(sharpestAccessible(types.elemtype(originalType))); - } - - Type type = originalType; - while (!rs.isAccessible(gen.getAttrEnv(), type.asElement())) { - type = types.supertype(type); - } - return type; - } - - /** * "Legacy" bytecode flavor: emit the StringBuilder.append chains for string * concatenation. */ @@ -305,6 +286,14 @@ return splits.toList(); } + + /** + * Returns true if the argument should be converted to a string eagerly, to preserve + * possible side-effects. + */ + protected boolean shouldConvertToStringEagerly(Type argType) { + return !types.unboxedTypeOrType(argType).isPrimitive() && argType.tsym != syms.stringType.tsym; + } } /** @@ -333,14 +322,18 @@ for (JCTree arg : t) { Object constVal = arg.type.constValue(); if ("".equals(constVal)) continue; - if (arg.type == syms.botType) { - dynamicArgs.add(types.boxedClass(syms.voidType).type); - } else { - dynamicArgs.add(sharpestAccessible(arg.type)); + Type argType = arg.type; + if (argType == syms.botType) { + argType = types.boxedClass(syms.voidType).type; } if (!first || generateFirstArg) { gen.genExpr(arg, arg.type).load(); } + if (shouldConvertToStringEagerly(argType)) { + gen.callMethod(pos, syms.stringType, names.valueOf, List.of(syms.objectType), true); + argType = syms.stringType; + } + dynamicArgs.add(argType); first = false; } doCall(type, pos, dynamicArgs.toList()); @@ -439,10 +432,15 @@ } else { // Ordinary arguments come through the dynamic arguments. recipe.append(TAG_ARG); - dynamicArgs.add(sharpestAccessible(arg.type)); + Type argType = arg.type; if (!first || generateFirstArg) { gen.genExpr(arg, arg.type).load(); } + if (shouldConvertToStringEagerly(argType)) { + gen.callMethod(pos, syms.stringType, names.valueOf, List.of(syms.objectType), true); + argType = syms.stringType; + } + dynamicArgs.add(argType); first = false; } } diff -Nru openjdk-17-17.0.13+11/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ppc64/PPC64Frame.java openjdk-17-17.0.14+7/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ppc64/PPC64Frame.java --- openjdk-17-17.0.13+11/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ppc64/PPC64Frame.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ppc64/PPC64Frame.java 2025-01-04 20:25:18.000000000 +0000 @@ -317,8 +317,9 @@ //------------------------------------------------------------------------------ // frame::adjust_unextended_sp private void adjustUnextendedSP() { - raw_unextendedSP = getFP(); + // Nothing to do. senderForInterpreterFrame finds the correct unextendedSP. } + private Frame senderForInterpreterFrame(PPC64RegisterMap map) { if (DEBUG) { System.out.println("senderForInterpreterFrame"); diff -Nru openjdk-17-17.0.13+11/src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java openjdk-17-17.0.14+7/src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java --- openjdk-17-17.0.13+11/src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java 2025-01-04 20:25:18.000000000 +0000 @@ -212,6 +212,13 @@ } }, + // Extract options + new Option(false, OptionType.EXTRACT, "--keep-old-files", "-k") { + void process(Main jartool, String opt, String arg) { + jartool.kflag = true; + } + }, + // Hidden options new Option(false, OptionType.OTHER, "-P") { void process(Main jartool, String opt, String arg) { @@ -254,6 +261,7 @@ CREATE("create"), CREATE_UPDATE("create.update"), CREATE_UPDATE_INDEX("create.update.index"), + EXTRACT("extract"), OTHER("other"); /** Resource lookup section prefix. */ diff -Nru openjdk-17-17.0.13+11/src/jdk.jartool/share/classes/sun/tools/jar/Main.java openjdk-17-17.0.14+7/src/jdk.jartool/share/classes/sun/tools/jar/Main.java --- openjdk-17-17.0.13+11/src/jdk.jartool/share/classes/sun/tools/jar/Main.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.jartool/share/classes/sun/tools/jar/Main.java 2025-01-04 20:25:18.000000000 +0000 @@ -155,8 +155,9 @@ * nflag: Perform jar normalization at the end * pflag: preserve/don't strip leading slash and .. component from file name * dflag: print module descriptor + * kflag: keep existing file */ - boolean cflag, uflag, xflag, tflag, vflag, flag0, Mflag, iflag, pflag, dflag, validate; + boolean cflag, uflag, xflag, tflag, vflag, flag0, Mflag, iflag, pflag, dflag, kflag, validate; boolean suppressDeprecateMsg = false; @@ -581,6 +582,9 @@ case '0': flag0 = true; break; + case 'k': + kflag = true; + break; case 'i': if (cflag || uflag || xflag || tflag) { usageError(getMsg("error.multiple.main.operations")); @@ -611,6 +615,9 @@ usageError(getMsg("error.bad.option")); return false; } + if (kflag && !xflag) { + warn(formatMsg("warn.option.is.ignored", "--keep-old-files/-k/k")); + } /* parse file arguments */ int n = args.length - count; @@ -1451,6 +1458,12 @@ output(formatMsg("out.create", name)); } } else { + if (f.exists() && kflag) { + if (vflag) { + output(formatMsg("out.kept", name)); + } + return rc; + } if (f.getParent() != null) { File d = new File(f.getParent()); if (!d.exists() && !d.mkdirs() || !d.isDirectory()) { diff -Nru openjdk-17-17.0.13+11/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties openjdk-17-17.0.14+7/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties --- openjdk-17-17.0.13+11/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties 2025-01-04 20:25:18.000000000 +0000 @@ -137,6 +137,8 @@ unexpected versioned entry {0} warn.flag.is.deprecated=\ Warning: The {0} option is deprecated, and is planned for removal in a future JDK release\n +warn.option.is.ignored=\ + Warning: The {0} option is not valid with current usage, will be ignored. out.added.manifest=\ added manifest out.added.module-info=\ @@ -159,6 +161,8 @@ \ \ created: {0} out.extracted=\ extracted: {0} +out.kept=\ + \ \ skipped: {0} exists out.inflated=\ \ inflated: {0} out.size=\ @@ -236,7 +240,10 @@ main.help.opt.main.update=\ \ -u, --update Update an existing jar archive main.help.opt.main.extract=\ -\ -x, --extract Extract named (or all) files from the archive +\ -x, --extract Extract named (or all) files from the archive.\n\ +\ If a file with the same name appears more than once in\n\ +\ the archive, each copy will be extracted, with later copies\n\ +\ overwriting (replacing) earlier copies unless -k is specified. main.help.opt.main.describe-module=\ \ -d, --describe-module Print the module descriptor, or automatic module name main.help.opt.main.validate=\ @@ -298,6 +305,15 @@ \ --date=TIMESTAMP The timestamp in ISO-8601 extended offset date-time with\n\ \ optional time-zone format, to use for the timestamps of\n\ \ entries, e.g. "2022-02-12T12:30:00-05:00" +main.help.opt.extract=\ +\ Operation modifiers valid only in extract mode:\n +main.help.opt.extract.keep-old-files=\ +\ -k, --keep-old-files Do not overwrite existing files.\n\ +\ If a Jar file entry with the same name exists in the target\n\ +\ directory, the existing file will not be overwritten.\n\ +\ As a result, if a file appears more than once in an\n\ +\ archive, later copies will not overwrite earlier copies.\n\ +\ Also note that some file system can be case insensitive. main.help.opt.other=\ \ Other options:\n main.help.opt.other.help=\ diff -Nru openjdk-17-17.0.13+11/src/jdk.jdi/share/classes/com/sun/tools/jdi/TargetVM.java openjdk-17-17.0.14+7/src/jdk.jdi/share/classes/com/sun/tools/jdi/TargetVM.java --- openjdk-17-17.0.13+11/src/jdk.jdi/share/classes/com/sun/tools/jdi/TargetVM.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.jdi/share/classes/com/sun/tools/jdi/TargetVM.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -124,8 +124,9 @@ byte b[] = connection.readPacket(); if (b.length == 0) { done = true; + } else { + p = Packet.fromByteArray(b); } - p = Packet.fromByteArray(b); } catch (IOException e) { done = true; } diff -Nru openjdk-17-17.0.13+11/src/jdk.jdwp.agent/share/native/libjdwp/util.c openjdk-17-17.0.14+7/src/jdk.jdwp.agent/share/native/libjdwp/util.c --- openjdk-17-17.0.13+11/src/jdk.jdwp.agent/share/native/libjdwp/util.c 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.jdwp.agent/share/native/libjdwp/util.c 2025-01-04 20:25:18.000000000 +0000 @@ -277,12 +277,12 @@ localAgentProperties = JNI_FUNC_PTR(env,CallStaticObjectMethod) (env, localVMSupportClass, getAgentProperties); - saveGlobalRef(env, localAgentProperties, &(gdata->agent_properties)); if (JNI_FUNC_PTR(env,ExceptionOccurred)(env)) { JNI_FUNC_PTR(env,ExceptionClear)(env); EXIT_ERROR(AGENT_ERROR_INTERNAL, "Exception occurred calling VMSupport.getAgentProperties"); } + saveGlobalRef(env, localAgentProperties, &(gdata->agent_properties)); } } END_WITH_LOCAL_REFS(env); diff -Nru openjdk-17-17.0.13+11/src/jdk.jfr/share/conf/jfr/default.jfc openjdk-17-17.0.14+7/src/jdk.jfr/share/conf/jfr/default.jfc --- openjdk-17-17.0.13+11/src/jdk.jfr/share/conf/jfr/default.jfc 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.jfr/share/conf/jfr/default.jfc 2025-01-04 20:25:18.000000000 +0000 @@ -777,6 +777,7 @@ true + true 0 ms diff -Nru openjdk-17-17.0.13+11/src/jdk.jfr/share/conf/jfr/profile.jfc openjdk-17-17.0.14+7/src/jdk.jfr/share/conf/jfr/profile.jfc --- openjdk-17-17.0.13+11/src/jdk.jfr/share/conf/jfr/profile.jfc 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.jfr/share/conf/jfr/profile.jfc 2025-01-04 20:25:18.000000000 +0000 @@ -777,6 +777,7 @@ true + true 0 ms diff -Nru openjdk-17-17.0.13+11/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java openjdk-17-17.0.14+7/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java --- openjdk-17-17.0.13+11/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1696,6 +1696,9 @@ ResourcePoolBuilder out) { ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS + ClassWriter.COMPUTE_FRAMES); + // sort the map of module name to the class name of the generated SystemModules class + List> systemModulesMap = map.entrySet() + .stream().sorted(Map.Entry.comparingByKey()).toList(); cw.visit(Opcodes.V1_8, ACC_FINAL+ACC_SUPER, SYSTEM_MODULES_MAP_CLASS, @@ -1762,10 +1765,10 @@ mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); int index = 0; - for (String moduleName : sorted(map.keySet())) { + for (Map.Entry entry : systemModulesMap) { mv.visitInsn(DUP); // arrayref pushInt(mv, index); - mv.visitLdcInsn(moduleName); + mv.visitLdcInsn(entry.getKey()); mv.visitInsn(AASTORE); index++; } @@ -1785,10 +1788,10 @@ mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); index = 0; - for (String className : sorted(map.values())) { + for (Map.Entry entry : systemModulesMap) { mv.visitInsn(DUP); // arrayref pushInt(mv, index); - mv.visitLdcInsn(className.replace('/', '.')); + mv.visitLdcInsn(entry.getValue().replace('/', '.')); mv.visitInsn(AASTORE); index++; } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/ProblemList-zgc.txt openjdk-17-17.0.14+7/test/hotspot/jtreg/ProblemList-zgc.txt --- openjdk-17-17.0.13+11/test/hotspot/jtreg/ProblemList-zgc.txt 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/ProblemList-zgc.txt 2025-01-04 20:25:18.000000000 +0000 @@ -32,6 +32,7 @@ resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java 8220624 generic-all serviceability/sa/CDSJMapClstats.java 8220624 generic-all serviceability/sa/ClhsdbJhisto.java 8220624 generic-all +serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java 8276539 generic-all serviceability/sa/ClhsdbCDSCore.java 8268722 macosx-x64 serviceability/sa/ClhsdbFindPC.java#id1 8268722 macosx-x64 diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/ProblemList.txt openjdk-17-17.0.14+7/test/hotspot/jtreg/ProblemList.txt --- openjdk-17-17.0.13+11/test/hotspot/jtreg/ProblemList.txt 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/ProblemList.txt 2025-01-04 20:25:18.000000000 +0000 @@ -50,13 +50,13 @@ compiler/runtime/Test8168712.java 8211769,8211771 generic-ppc64,generic-ppc64le,linux-s390x compiler/rtm/locking/TestRTMAbortRatio.java 8183263 generic-x64,generic-i586 -compiler/rtm/locking/TestRTMAbortThreshold.java 8183263 generic-x64,generic-i586 +compiler/rtm/locking/TestRTMAbortThreshold.java 8183263,8313877 generic-x64,generic-i586,generic-ppc64le compiler/rtm/locking/TestRTMAfterNonRTMDeopt.java 8183263 generic-x64,generic-i586 compiler/rtm/locking/TestRTMDeoptOnHighAbortRatio.java 8183263 generic-x64,generic-i586 compiler/rtm/locking/TestRTMDeoptOnLowAbortRatio.java 8183263 generic-x64,generic-i586 compiler/rtm/locking/TestRTMLockingCalculationDelay.java 8183263 generic-x64,generic-i586 compiler/rtm/locking/TestRTMLockingThreshold.java 8183263 generic-x64,generic-i586 -compiler/rtm/locking/TestRTMSpinLoopCount.java 8183263 generic-x64,generic-i586 +compiler/rtm/locking/TestRTMSpinLoopCount.java 8183263,8313877 generic-x64,generic-i586,generic-ppc64le compiler/rtm/locking/TestUseRTMDeopt.java 8183263 generic-x64,generic-i586 compiler/rtm/locking/TestUseRTMXendForLockBusy.java 8183263 generic-x64,generic-i586 compiler/rtm/print/TestPrintPreciseRTMLockingStatistics.java 8183263 generic-x64,generic-i586 diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/TEST.groups openjdk-17-17.0.14+7/test/hotspot/jtreg/TEST.groups --- openjdk-17-17.0.13+11/test/hotspot/jtreg/TEST.groups 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/TEST.groups 2025-01-04 20:25:18.000000000 +0000 @@ -397,7 +397,8 @@ -runtime/Unsafe/RangeCheck.java \ sanity/ \ -:tier1_runtime_appcds_exclude \ - -runtime/signal + -runtime/signal \ + -runtime/stack hotspot_cds = \ runtime/cds/ \ diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/applications/jcstress/JcstressRunner.java openjdk-17-17.0.14+7/test/hotspot/jtreg/applications/jcstress/JcstressRunner.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/applications/jcstress/JcstressRunner.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/applications/jcstress/JcstressRunner.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,14 +42,14 @@ * jcstress tests wrapper */ @Artifact(organization = "org.openjdk.jcstress", name = "jcstress-tests-all", - revision = "0.16", extension = "jar", unpack = false) + revision = JcstressRunner.VERSION, extension = "jar", unpack = false) public class JcstressRunner { + public static final String VERSION = "0.17-SNAPSHOT-20240328"; public static final String MAIN_CLASS = "org.openjdk.jcstress.Main"; - // Allow to configure jcstress mode parameter. - // Test mode preset: sanity, quick, default, tough, stress. - public static final String MODE_PROPERTY = "jcstress.mode"; + public static final String TIME_BUDGET_PROPERTY = "jcstress.time_budget"; + public static String timeBudget = "6m"; public static Path pathToArtifact() { Map artifacts; @@ -59,7 +59,7 @@ throw new Error("TESTBUG: Can not resolve artifacts for " + JcstressRunner.class.getName(), e); } - return artifacts.get("org.openjdk.jcstress.jcstress-tests-all-0.16") + return artifacts.get("org.openjdk.jcstress.jcstress-tests-all-" + VERSION) .toAbsolutePath(); } @@ -69,7 +69,7 @@ } Path out = Paths.get("jcstress.out").toAbsolutePath(); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(getCmd(args)) + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(getCmd(args)) .redirectErrorStream(true) .redirectOutput(out.toFile()); OutputAnalyzer oa = ProcessTools.executeProcess(pb); @@ -109,21 +109,17 @@ extraFlags.add("--jvmArgs"); extraFlags.add("-Djava.io.tmpdir=" + System.getProperty("user.dir")); - // The "default" preset might take days for some tests - // so use quick testing by default. - String mode = "quick"; for (String jvmArg : Utils.getTestJavaOpts()) { - if(jvmArg.startsWith("-D" + MODE_PROPERTY)) { - String[] pair = jvmArg.split("=", 2); - mode = pair[1]; - continue; + if (jvmArg.startsWith("-D" + TIME_BUDGET_PROPERTY)) { + timeBudget = jvmArg.split("=", 2)[1]; + } else { + extraFlags.add("--jvmArgs"); + extraFlags.add(jvmArg); } - extraFlags.add("--jvmArgs"); - extraFlags.add(jvmArg); } - extraFlags.add("-m"); - extraFlags.add(mode); + extraFlags.add("-tb"); + extraFlags.add(timeBudget); extraFlags.add("-sc"); extraFlags.add("false"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/applications/jcstress/TestGenerator.java openjdk-17-17.0.14+7/test/hotspot/jtreg/applications/jcstress/TestGenerator.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/applications/jcstress/TestGenerator.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/applications/jcstress/TestGenerator.java 2025-01-04 20:25:18.000000000 +0000 @@ -110,7 +110,7 @@ Path output; try { output = Files.createTempFile("jcstress", ".out"); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-jar", path.toAbsolutePath().toString(), "-l"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/applications/scimark/Scimark.java openjdk-17-17.0.14+7/test/hotspot/jtreg/applications/scimark/Scimark.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/applications/scimark/Scimark.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/applications/scimark/Scimark.java 2025-01-04 20:25:18.000000000 +0000 @@ -49,7 +49,7 @@ System.setProperty("test.noclasspath", "true"); - OutputAnalyzer output = new OutputAnalyzer(ProcessTools.createTestJvm( + OutputAnalyzer output = new OutputAnalyzer(ProcessTools.createTestJavaProcessBuilder( "-cp", artifacts.get("gov.nist.math.scimark-2.0").toString(), "jnt.scimark2.commandline", "-large") .start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/arguments/CheckCICompilerCount.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arguments/CheckCICompilerCount.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/arguments/CheckCICompilerCount.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arguments/CheckCICompilerCount.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -190,7 +190,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder(arguments); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); out = new OutputAnalyzer(pb.start()); try { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/arguments/CheckCompileThresholdScaling.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arguments/CheckCompileThresholdScaling.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/arguments/CheckCompileThresholdScaling.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arguments/CheckCompileThresholdScaling.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -338,7 +338,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder(arguments); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); out = new OutputAnalyzer(pb.start()); try { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/arguments/TestPrintOptoAssemblyLineNumbers.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arguments/TestPrintOptoAssemblyLineNumbers.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/arguments/TestPrintOptoAssemblyLineNumbers.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arguments/TestPrintOptoAssemblyLineNumbers.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,7 @@ CheckC2OptoAssembly.class.getName() }; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(procArgs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(procArgs); OutputAnalyzer oa = new OutputAnalyzer(pb.start()); oa.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java 2025-01-04 20:25:18.000000000 +0000 @@ -173,7 +173,7 @@ for (String className : classNames) { // Start a new job { - ProcessBuilder pb = ProcessTools.createTestJvm(mix(c, "-Xmx256m", className)); + ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(mix(c, "-Xmx256m", className)); Process p = pb.start(); OutputAnalyzer oa = new OutputAnalyzer(p); forks.add(new Fork(p, oa)); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeExistingIntrinsicWarningTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeExistingIntrinsicWarningTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeExistingIntrinsicWarningTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeExistingIntrinsicWarningTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -65,14 +65,14 @@ } public static void shouldFail(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldContain(MSG); } public static void shouldPass(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldNotContain(MSG); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeExperimentalUnlockTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeExperimentalUnlockTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeExperimentalUnlockTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeExperimentalUnlockTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -65,14 +65,14 @@ } public static void shouldFail(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldContain(MSG); } public static void shouldPass(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldNotContain(MSG); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeIntrinsicTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeIntrinsicTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeIntrinsicTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeIntrinsicTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -134,7 +134,7 @@ cmdline.add("compiler.blackhole.BlackholeIntrinsicTest"); cmdline.add(test); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.stderrShouldBeEmpty(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeNonEmptyWarningTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeNonEmptyWarningTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeNonEmptyWarningTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeNonEmptyWarningTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -64,14 +64,14 @@ } public static void shouldFail(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldContain(MSG); } public static void shouldPass(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldNotContain(MSG); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeNonStaticWarningTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeNonStaticWarningTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeNonStaticWarningTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeNonStaticWarningTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -64,14 +64,14 @@ } public static void shouldFail(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldContain(MSG); } public static void shouldPass(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldNotContain(MSG); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeNonVoidWarningTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeNonVoidWarningTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/blackhole/BlackholeNonVoidWarningTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/blackhole/BlackholeNonVoidWarningTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -64,14 +64,14 @@ } public static void shouldFail(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldContain(MSG); } public static void shouldPass(String... args) throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmdline(args)); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmdline(args)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldNotContain(MSG); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c1/TestRangeCheckEliminated.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c1/TestRangeCheckEliminated.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c1/TestRangeCheckEliminated.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c1/TestRangeCheckEliminated.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved. - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,7 +54,7 @@ test_constant_array.class.getName() }; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(procArgs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(procArgs); String output = new OutputAnalyzer(pb.start()).getOutput(); // should have 2 "can be fully eliminated" System.out.println(output); @@ -74,7 +74,7 @@ test_multi_constant_array.class.getName() }; - pb = ProcessTools.createJavaProcessBuilder(procArgs); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(procArgs); output = new OutputAnalyzer(pb.start()).getOutput(); // should have 1 "can be fully eliminated" System.out.println(output); @@ -94,7 +94,7 @@ test_multi_new_array.class.getName() }; - pb = ProcessTools.createJavaProcessBuilder(procArgs); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(procArgs); output = new OutputAnalyzer(pb.start()).getOutput(); // should have 2 "can be fully eliminated" System.out.println(output); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c1/TestTraceLinearScanLevel.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c1/TestTraceLinearScanLevel.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c1/TestTraceLinearScanLevel.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c1/TestTraceLinearScanLevel.java 2025-01-04 20:25:18.000000000 +0000 @@ -26,8 +26,8 @@ * @bug 8251093 * @summary Sanity check the flag TraceLinearScanLevel with the highest level in a silent HelloWorld program. * - * @requires vm.debug == true & vm.compiler1.enabled - * @run main/othervm -XX:TraceLinearScanLevel=4 compiler.c1.TestTraceLinearScanLevel + * @requires vm.debug == true & vm.compiler1.enabled & vm.compMode != "Xcomp" + * @run main/othervm -Xbatch -XX:TraceLinearScanLevel=4 compiler.c1.TestTraceLinearScanLevel */ package compiler.c1; diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/Test7068051.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/Test7068051.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/Test7068051.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/Test7068051.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,7 @@ import jdk.test.lib.JDKToolLauncher; import jdk.test.lib.process.OutputAnalyzer; +import jdk.test.lib.process.ProcessTools; import java.io.IOException; import java.io.InputStream; @@ -133,11 +134,10 @@ for (String p : params) { jar.addToolArg(p); } - ProcessBuilder pb = new ProcessBuilder(jar.getCommand()); try { - OutputAnalyzer output = new OutputAnalyzer(pb.start()); + OutputAnalyzer output = ProcessTools.executeProcess(jar.getCommand()); output.shouldHaveExitValue(0); - } catch (IOException ex) { + } catch (Exception ex) { throw new AssertionError("TESTBUG: jar failed.", ex); } } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/TestBit.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/TestBit.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/TestBit.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/TestBit.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,7 +49,7 @@ "-XX:CompileCommand=compileonly," + className + "::tst*", className, testName}; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(procArgs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(procArgs); OutputAnalyzer output = new OutputAnalyzer(pb.start()); String expectedTestBitInstruction = diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/aarch64/TestFarJump.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/aarch64/TestFarJump.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/aarch64/TestFarJump.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/aarch64/TestFarJump.java 2025-01-04 20:25:18.000000000 +0000 @@ -94,7 +94,7 @@ "-XX:CompileCommand=option," + className + "::main,bool,PrintAssembly,true", className}; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(procArgs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(procArgs); OutputAnalyzer output = new OutputAnalyzer(pb.start()); List lines = output.asLines(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/aarch64/TestSVEWithJNI.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/aarch64/TestSVEWithJNI.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/aarch64/TestSVEWithJNI.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/aarch64/TestSVEWithJNI.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,27 +1,27 @@ /* -* Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. -* Copyright (c) 2020, Arm Limited. All rights reserved. -* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -* -* This code is free software; you can redistribute it and/or modify it -* under the terms of the GNU General Public License version 2 only, as -* published by the Free Software Foundation. -* -* This code is distributed in the hope that it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -* version 2 for more details (a copy is included in the LICENSE file that -* accompanied this code). -* -* You should have received a copy of the GNU General Public License version -* 2 along with this work; if not, write to the Free Software Foundation, -* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -* -* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -* or visit www.oracle.com if you need additional information or have any -* questions. -* -*/ + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, Arm Limited. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ /** * @test @@ -79,7 +79,7 @@ Collections.addAll(vmopts, "-Dtest.jdk=" + testjdkPath); Collections.addAll(vmopts, args); Collections.addAll(vmopts, TestSVEWithJNI.class.getName(), mode); - return ProcessTools.createJavaProcessBuilder(vmopts.toArray(new String[vmopts.size()])); + return ProcessTools.createLimitedTestJavaProcessBuilder(vmopts.toArray(new String[vmopts.size()])); } public static void main(String [] args) throws Exception { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright (c) 2018, 2020, Red Hat, Inc. All rights reserved. - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -132,7 +132,7 @@ public void runtest(String classname, String testType, boolean useCompressedOops, String[] procArgs) throws Throwable { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(procArgs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(procArgs); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.stderrShouldBeEmptyIgnoreVMWarnings(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/calls/TestManyArgs.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/calls/TestManyArgs.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/calls/TestManyArgs.java 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/calls/TestManyArgs.java 2025-01-04 20:25:18.000000000 +0000 @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2024, Rivos Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* @test + * @summary Pass values on stack. + * @requires os.arch == "riscv64" + * @run main/native compiler.calls.TestManyArgs + */ + +package compiler.calls; + +public class TestManyArgs { + static { + System.loadLibrary("TestManyArgs"); + } + + native static void scramblestack(); + + native static int checkargs(int arg0, short arg1, byte arg2, + int arg3, short arg4, byte arg5, + int arg6, short arg7, byte arg8, + int arg9, short arg10, byte arg11); + + static int compiledbridge(int arg0, short arg1, byte arg2, + int arg3, short arg4, byte arg5, + int arg6, short arg7, byte arg8, + int arg9, short arg10, byte arg11) { + return checkargs(arg0, arg1, arg2, arg3, arg4, arg5, + arg6, arg7, arg8, arg9, arg10, arg11); + } + + static public void main(String[] args) { + scramblestack(); + for (int i = 0; i < 20000; i++) { + int res = compiledbridge((int)0xf, (short)0xf, (byte)0xf, + (int)0xf, (short)0xf, (byte)0xf, + (int)0xf, (short)0xf, (byte)0xf, + (int)0xf, (short)0xf, (byte)0xf); + if (res != 0) { + throw new RuntimeException("Test failed"); + } + } + } +} diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/calls/libTestManyArgs.c openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/calls/libTestManyArgs.c --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/calls/libTestManyArgs.c 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/calls/libTestManyArgs.c 2025-01-04 20:25:18.000000000 +0000 @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2024, Rivos Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include "jni.h" + +#ifdef riscv64 +/* RV64 ABI pass all integers as 64-bit, in registers or on stack + * As compiler may choose to load smaller width than 64-bit if passed on stack, + * this test may not find any bugs. + * Therefore we trick the compiler todo 64-bit loads, + * by saying these args are jlongs. + */ +JNIEXPORT jint JNICALL Java_compiler_calls_TestManyArgs_checkargs(JNIEnv* env, jclass jclazz, + jlong arg0, jlong arg1, jlong arg2, + jlong arg3, jlong arg4, jlong arg5, + jlong arg6, jlong arg7, jlong arg8, + jlong arg9, jlong arg10, jlong arg11) +#else +JNIEXPORT jint JNICALL Java_compiler_calls_TestManyArgs_checkargs(JNIEnv* env, jclass jclazz, + jint arg0, jshort arg1, jbyte arg2, + jint arg3, jshort arg4, jbyte arg5, + jint arg6, jshort arg7, jbyte arg8, + jint arg9, jshort arg10, jbyte arg11) +#endif +{ + if (arg0 != 0xf) return 1; + if (arg1 != 0xf) return 1; + if (arg2 != 0xf) return 1; + if (arg3 != 0xf) return 1; + if (arg4 != 0xf) return 1; + if (arg5 != 0xf) return 1; + if (arg6 != 0xf) return 1; + if (arg7 != 0xf) return 1; + if (arg8 != 0xf) return 1; + if (arg9 != 0xf) return 1; + if (arg10 != 0xf) return 1; + if (arg11 != 0xf) return 1; + return 0; +} + +JNIEXPORT +void JNICALL Java_compiler_calls_TestManyArgs_scramblestack(JNIEnv* env, jclass jclazz) +{ + volatile char stack[12*8]; + for (unsigned int i = 0; i < sizeof(stack); i++) { + stack[i] = (char)0xff; + } +} diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/ciReplay/CiReplayBase.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/ciReplay/CiReplayBase.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/ciReplay/CiReplayBase.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/ciReplay/CiReplayBase.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -164,11 +164,11 @@ options.add("'" + TestMain.class.getName() + "'"); crashOut = ProcessTools.executeProcess( CoreUtils.addCoreUlimitCommand( - ProcessTools.createTestJvm(options.toArray(new String[0])))); + ProcessTools.createTestJavaProcessBuilder(options.toArray(new String[0])))); } else { options.add("-XX:CompileOnly=" + TestMain.class.getName() + "::" + getTestMethod()); options.add(TestMain.class.getName()); - crashOut = ProcessTools.executeProcess(ProcessTools.createTestJvm(options)); + crashOut = ProcessTools.executeProcess(ProcessTools.createTestJavaProcessBuilder(options)); } crashOutputString = crashOut.getOutput(); Asserts.assertNotEquals(crashOut.getExitValue(), 0, "Crash JVM exits gracefully"); @@ -271,7 +271,7 @@ private String[] getTestJvmCommandlineWithPrefix(String prefix, String... args) { try { - String cmd = ProcessTools.getCommandLine(ProcessTools.createTestJvm(args)); + String cmd = ProcessTools.getCommandLine(ProcessTools.createTestJavaProcessBuilder(args)); return new String[]{"sh", "-c", prefix + (Platform.isWindows() ? cmd.replace('\\', '/').replace(";", "\\;").replace("|", "\\|") : cmd)}; } catch(Throwable t) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/ciReplay/DumpReplayBase.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/ciReplay/DumpReplayBase.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/ciReplay/DumpReplayBase.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/ciReplay/DumpReplayBase.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -79,7 +79,7 @@ options.add("-XX:CompileCommand=compileonly," + getTestClass() + "::" + getTestMethod()); options.add("-Xbatch"); options.add(getTestClass()); - oa = ProcessTools.executeProcess(ProcessTools.createTestJvm(options)); + oa = ProcessTools.executeProcess(ProcessTools.createTestJavaProcessBuilder(options)); Asserts.assertEquals(oa.getExitValue(), 0, "Crash JVM exits gracefully"); replayFiles = Files.list(Paths.get(".")) .map(Path::toFile) diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/ciReplay/SABase.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/ciReplay/SABase.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/ciReplay/SABase.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/ciReplay/SABase.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -71,7 +71,7 @@ } ProcessBuilder pb; try { - pb = ProcessTools.createTestJvm("--add-modules", "jdk.hotspot.agent", + pb = ProcessTools.createTestJavaProcessBuilder("--add-modules", "jdk.hotspot.agent", "--add-exports=jdk.hotspot.agent/sun.jvm.hotspot=ALL-UNNAMED", "sun.jvm.hotspot.CLHSDB", JDKToolFinder.getTestJDKTool("java"), TEST_CORE_FILE_NAME); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckCodeCacheInfo.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckCodeCacheInfo.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckCodeCacheInfo.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckCodeCacheInfo.java 2025-01-04 20:25:18.000000000 +0000 @@ -67,9 +67,9 @@ public static void main(String[] args) throws Exception { ProcessBuilder pb; - pb = ProcessTools.createTestJvm("-XX:+PrintCodeCache", - "-XX:+Verbose", - "-version"); + pb = ProcessTools.createTestJavaProcessBuilder("-XX:+PrintCodeCache", + "-XX:+Verbose", + "-version"); OutputAnalyzer out = new OutputAnalyzer(pb.start()); out.shouldHaveExitValue(0); out.stdoutShouldMatch(VERBOSE_REGEXP); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckLargePages.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckLargePages.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckLargePages.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckLargePages.java 2025-01-04 20:25:18.000000000 +0000 @@ -50,7 +50,7 @@ final boolean largePages = WHITE_BOX.getBooleanVMFlag("UseLargePages"); final long largePageSize = WHITE_BOX.getVMLargePageSize(); if (largePages && (largePageSize == 1024 * 1024 * 1024)) { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseLargePages", "-XX:+SegmentedCodeCache", "-XX:InitialCodeCacheSize=2g", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckReservedInitialCodeCacheSizeArgOrder.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckReservedInitialCodeCacheSizeArgOrder.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckReservedInitialCodeCacheSizeArgOrder.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckReservedInitialCodeCacheSizeArgOrder.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,8 +42,8 @@ ProcessBuilder pb1, pb2; OutputAnalyzer out1, out2; - pb1 = ProcessTools.createJavaProcessBuilder("-XX:InitialCodeCacheSize=4m", "-XX:ReservedCodeCacheSize=8m", "-version"); - pb2 = ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=8m", "-XX:InitialCodeCacheSize=4m", "-version"); + pb1 = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:InitialCodeCacheSize=4m", "-XX:ReservedCodeCacheSize=8m", "-version"); + pb2 = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:ReservedCodeCacheSize=8m", "-XX:InitialCodeCacheSize=4m", "-version"); out1 = new OutputAnalyzer(pb1.start()); out2 = new OutputAnalyzer(pb2.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckSegmentedCodeCache.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckSegmentedCodeCache.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckSegmentedCodeCache.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckSegmentedCodeCache.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -89,80 +89,80 @@ ProcessBuilder pb; // Disabled with ReservedCodeCacheSize < 240MB - pb = ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=239m", - "-XX:+PrintCodeCache", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:ReservedCodeCacheSize=239m", + "-XX:+PrintCodeCache", + "-version"); verifySegmentedCodeCache(pb, false); // Disabled without TieredCompilation - pb = ProcessTools.createJavaProcessBuilder("-XX:-TieredCompilation", - "-XX:+PrintCodeCache", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:-TieredCompilation", + "-XX:+PrintCodeCache", + "-version"); verifySegmentedCodeCache(pb, false); // Enabled with TieredCompilation and ReservedCodeCacheSize >= 240MB - pb = ProcessTools.createJavaProcessBuilder("-XX:+TieredCompilation", - "-XX:ReservedCodeCacheSize=240m", - "-XX:+PrintCodeCache", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+TieredCompilation", + "-XX:ReservedCodeCacheSize=240m", + "-XX:+PrintCodeCache", + "-version"); verifySegmentedCodeCache(pb, true); - pb = ProcessTools.createJavaProcessBuilder("-XX:+TieredCompilation", - "-XX:ReservedCodeCacheSize=400m", - "-XX:+PrintCodeCache", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+TieredCompilation", + "-XX:ReservedCodeCacheSize=400m", + "-XX:+PrintCodeCache", + "-version"); verifySegmentedCodeCache(pb, true); // Always enabled if SegmentedCodeCache is set - pb = ProcessTools.createJavaProcessBuilder("-XX:+SegmentedCodeCache", - "-XX:-TieredCompilation", - "-XX:ReservedCodeCacheSize=239m", - "-XX:+PrintCodeCache", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+SegmentedCodeCache", + "-XX:-TieredCompilation", + "-XX:ReservedCodeCacheSize=239m", + "-XX:+PrintCodeCache", + "-version"); verifySegmentedCodeCache(pb, true); // The profiled and non-profiled code heaps should not be available in // interpreter-only mode - pb = ProcessTools.createJavaProcessBuilder("-XX:+SegmentedCodeCache", - "-Xint", - "-XX:+PrintCodeCache", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+SegmentedCodeCache", + "-Xint", + "-XX:+PrintCodeCache", + "-version"); verifyCodeHeapNotExists(pb, PROFILED, NON_PROFILED); // If we stop compilation at CompLevel_none or CompLevel_simple we // don't need a profiled code heap. - pb = ProcessTools.createJavaProcessBuilder("-XX:+SegmentedCodeCache", - "-XX:TieredStopAtLevel=0", - "-XX:+PrintCodeCache", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+SegmentedCodeCache", + "-XX:TieredStopAtLevel=0", + "-XX:+PrintCodeCache", + "-version"); verifyCodeHeapNotExists(pb, PROFILED); - pb = ProcessTools.createJavaProcessBuilder("-XX:+SegmentedCodeCache", - "-XX:TieredStopAtLevel=1", - "-XX:+PrintCodeCache", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+SegmentedCodeCache", + "-XX:TieredStopAtLevel=1", + "-XX:+PrintCodeCache", + "-version"); verifyCodeHeapNotExists(pb, PROFILED); // Fails with too small non-nmethod code heap size - pb = ProcessTools.createJavaProcessBuilder("-XX:NonNMethodCodeHeapSize=100K", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:NonNMethodCodeHeapSize=100K", + "-version"); failsWith(pb, "Invalid NonNMethodCodeHeapSize"); // Fails if code heap sizes do not add up - pb = ProcessTools.createJavaProcessBuilder("-XX:+SegmentedCodeCache", - "-XX:ReservedCodeCacheSize=10M", - "-XX:NonNMethodCodeHeapSize=5M", - "-XX:ProfiledCodeHeapSize=5M", - "-XX:NonProfiledCodeHeapSize=5M", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+SegmentedCodeCache", + "-XX:ReservedCodeCacheSize=10M", + "-XX:NonNMethodCodeHeapSize=5M", + "-XX:ProfiledCodeHeapSize=5M", + "-XX:NonProfiledCodeHeapSize=5M", + "-version"); failsWith(pb, "Invalid code heap sizes"); // Fails if not enough space for VM internal code long minUseSpace = WHITE_BOX.getUintxVMFlag("CodeCacheMinimumUseSpace"); // minimum size: CodeCacheMinimumUseSpace DEBUG_ONLY(* 3) long minSize = (Platform.isDebugBuild() ? 3 : 1) * minUseSpace; - pb = ProcessTools.createJavaProcessBuilder("-XX:+SegmentedCodeCache", - "-XX:ReservedCodeCacheSize=" + minSize, - "-XX:InitialCodeCacheSize=100K", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+SegmentedCodeCache", + "-XX:ReservedCodeCacheSize=" + minSize, + "-XX:InitialCodeCacheSize=100K", + "-version"); failsWith(pb, "Not enough space in non-nmethod code heap to run VM"); } } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckUpperLimit.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckUpperLimit.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CheckUpperLimit.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CheckUpperLimit.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=2049m", "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:ReservedCodeCacheSize=2049m", "-version"); out = new OutputAnalyzer(pb.start()); out.shouldContain("Invalid ReservedCodeCacheSize="); out.shouldHaveExitValue(1); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CodeCacheFullCountTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CodeCacheFullCountTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/codecache/CodeCacheFullCountTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/codecache/CodeCacheFullCountTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -63,11 +63,11 @@ } public static void runTest() throws Throwable { - ProcessBuilder pb = ProcessTools.createTestJvm( + ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder( "-XX:ReservedCodeCacheSize=2496k", "-XX:-UseCodeCacheFlushing", "CodeCacheFullCountTest", "WasteCodeCache"); OutputAnalyzer oa = ProcessTools.executeProcess(pb); // Ignore adapter creation failures - if (oa.getExitValue() != 0 && !oa.getOutput().contains("Out of space in CodeCache for adapters")) { + if (oa.getExitValue() != 0 && !oa.getOutput().contains("Out of space in CodeCache")) { oa.reportDiagnosticSummary(); throw new RuntimeException("VM finished with exit code " + oa.getExitValue()); } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/controldependency/TestAntiDependencyForPinnedLoads.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/controldependency/TestAntiDependencyForPinnedLoads.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/controldependency/TestAntiDependencyForPinnedLoads.java 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/controldependency/TestAntiDependencyForPinnedLoads.java 2025-01-04 20:25:18.000000000 +0000 @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8337066 + * @summary Test that MergeMem is skipped when looking for stores + * @compile -encoding UTF-8 TestAntiDependencyForPinnedLoads.java + * @run main/othervm -Xbatch -XX:-TieredCompilation + * -XX:CompileCommand=compileonly,java.lang.StringUTF16::reverse + * compiler.controldependency.TestAntiDependencyForPinnedLoads + */ + +package compiler.controldependency; + +public class TestAntiDependencyForPinnedLoads { + public static void main(String[] args) { + for(int i = 0; i < 50_000; i++) { + String str = "YYYY年MM月DD日"; + StringBuffer strBuffer = new StringBuffer(str); + String revStr = strBuffer.reverse().toString(); + if (!revStr.equals("日DD月MM年YYYY")) throw new InternalError("FAIL"); + } + } +} diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/cpuflags/RestoreMXCSR.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/cpuflags/RestoreMXCSR.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/cpuflags/RestoreMXCSR.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/cpuflags/RestoreMXCSR.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder("-XX:+RestoreMXCSROnJNICalls", "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+RestoreMXCSROnJNICalls", "-version"); out = new OutputAnalyzer(pb.start()); out.shouldHaveExitValue(0); } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/debug/TestGenerateStressSeed.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/TestGenerateStressSeed.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/debug/TestGenerateStressSeed.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/TestGenerateStressSeed.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,7 +58,7 @@ "-Xcomp", "-XX:-TieredCompilation", "-XX:+UnlockDiagnosticVMOptions", "-XX:CompileOnly=" + className + "::sum", "-XX:+" + stressOpt, "-XX:+LogCompilation", "-XX:LogFile=" + log, className, "10"}; - new OutputAnalyzer(ProcessTools.createJavaProcessBuilder(procArgs).start()) + new OutputAnalyzer(ProcessTools.createLimitedTestJavaProcessBuilder(procArgs).start()) .shouldHaveExitValue(0); new OutputAnalyzer(Paths.get(log)) .shouldContain("stress_test seed"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/debug/TestStressCM.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/TestStressCM.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/debug/TestStressCM.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/TestStressCM.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,7 @@ "-XX:CompileOnly=" + className + "::sum", "-XX:+TraceOptoPipelining", "-XX:+" + stressOpt, "-XX:StressSeed=" + stressSeed, className, "10"}; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(procArgs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(procArgs); OutputAnalyzer out = new OutputAnalyzer(pb.start()); out.shouldHaveExitValue(0); // Extract the trace of our method (the last one after those of all diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/debug/TestStressIGVNAndCCP.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/TestStressIGVNAndCCP.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/debug/TestStressIGVNAndCCP.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/TestStressIGVNAndCCP.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,7 @@ "-XX:CompileOnly=" + className + "::sum", "-XX:+" + traceOption, "-XX:+" + stressOption, "-XX:StressSeed=" + stressSeed, className, "10"}; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(procArgs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(procArgs); OutputAnalyzer out = new OutputAnalyzer(pb.start()); out.shouldHaveExitValue(0); return out.getStdout(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/debug/VerifyAdapterSharing.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/VerifyAdapterSharing.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/debug/VerifyAdapterSharing.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/debug/VerifyAdapterSharing.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder("-Xcomp", "-XX:+IgnoreUnrecognizedVMOptions", + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-Xcomp", "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+VerifyAdapterSharing", "-version"); out = new OutputAnalyzer(pb.start()); out.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/eliminateAutobox/TestEliminateBoxInDebugInfo.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/eliminateAutobox/TestEliminateBoxInDebugInfo.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/eliminateAutobox/TestEliminateBoxInDebugInfo.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/eliminateAutobox/TestEliminateBoxInDebugInfo.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Huawei Technologies Co., Ltd. All rights reserved. + * Copyright (c) 2021, 2024, Huawei Technologies Co., Ltd. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,7 @@ "-XX:+PrintEliminateAllocations", Test.class.getName() }; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(arguments); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0) .stdoutShouldContain("++++ Eliminated: "); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/inlining/InlineAccessors.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/inlining/InlineAccessors.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/inlining/InlineAccessors.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/inlining/InlineAccessors.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,7 @@ public class InlineAccessors { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+IgnoreUnrecognizedVMOptions", "-showversion", "-server", "-XX:-TieredCompilation", "-Xbatch", "-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintInlining", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/inlining/PrintInlining.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/inlining/PrintInlining.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/inlining/PrintInlining.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/inlining/PrintInlining.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,7 @@ public class PrintInlining { static void test(String option) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+IgnoreUnrecognizedVMOptions", "-showversion", "-server", "-XX:-TieredCompilation", "-Xbatch", "-XX:-UseOnStackReplacement", "-XX:CompileCommand=dontinline,*::bar", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/inlining/ResolvedClassTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/inlining/ResolvedClassTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/inlining/ResolvedClassTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/inlining/ResolvedClassTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ public class ResolvedClassTest { /* ======================================================================== */ static void testStatic() throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+IgnoreUnrecognizedVMOptions", "-showversion", "-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintInlining", "-Xbatch", "-XX:CompileCommand=quiet", "-XX:CompileCommand=compileonly," + TestStatic.class.getName() + "::test", @@ -78,7 +78,7 @@ /* ======================================================================== */ static void testStaticInit() throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+IgnoreUnrecognizedVMOptions", "-showversion", "-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintInlining", "-Xbatch", "-XX:CompileCommand=quiet", "-XX:CompileCommand=compileonly," + TestStaticInit.class.getName() + "::test", @@ -115,7 +115,7 @@ /* ======================================================================== */ static void testIndy() throws IOException { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+IgnoreUnrecognizedVMOptions", "-showversion", "-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintInlining", "-Xbatch", "-XX:CompileCommand=quiet", "-XX:CompileCommand=compileonly," + TestIndy.class.getName() + "::test", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnSupportedCPU.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnSupportedCPU.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnSupportedCPU.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA3IntrinsicsOptionOnSupportedCPU.java 2025-01-04 20:25:18.000000000 +0000 @@ -28,6 +28,10 @@ * @summary Verify UseSHA3Intrinsics option processing on supported CPU. * @library /test/lib / * @requires vm.flagless + * @requires os.arch == "aarch64" & os.family == "mac" + * @comment sha3 is only implemented on AArch64 for now. + * UseSHA3Intrinsics is only auto-enabled on Apple silicon, because it + * may introduce performance regression on others. See JDK-8297092. * * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jsr292/ContinuousCallSiteTargetChange.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/ContinuousCallSiteTargetChange.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jsr292/ContinuousCallSiteTargetChange.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/ContinuousCallSiteTargetChange.java 2025-01-04 20:25:18.000000000 +0000 @@ -61,7 +61,7 @@ argsList.add(test.getName()); argsList.add(Integer.toString(ITERATIONS)); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(argsList); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(argsList); OutputAnalyzer analyzer = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jsr292/MHInlineTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/MHInlineTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jsr292/MHInlineTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/MHInlineTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,7 @@ public class MHInlineTest { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+IgnoreUnrecognizedVMOptions", "-showversion", "-XX:-TieredCompilation", "-Xbatch", "-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintInlining", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jsr292/NonInlinedCall/Agent.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/NonInlinedCall/Agent.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jsr292/NonInlinedCall/Agent.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/NonInlinedCall/Agent.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,7 @@ import jdk.test.lib.JDKToolLauncher; import jdk.test.lib.process.OutputAnalyzer; +import jdk.test.lib.process.ProcessTools; import java.io.File; import java.io.PrintStream; @@ -51,8 +52,7 @@ System.out.println("Running jar " + Arrays.toString(jar.getCommand())); - ProcessBuilder pb = new ProcessBuilder(jar.getCommand()); - OutputAnalyzer output = new OutputAnalyzer(pb.start()); + OutputAnalyzer output = ProcessTools.executeProcess(jar.getCommand()); output.shouldHaveExitValue(0); } } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jsr292/PollutedTrapCounts.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/PollutedTrapCounts.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jsr292/PollutedTrapCounts.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jsr292/PollutedTrapCounts.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,7 @@ public class PollutedTrapCounts { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+IgnoreUnrecognizedVMOptions", "-XX:-TieredCompilation", "-Xbatch", "-XX:PerBytecodeRecompilationCutoff=10", "-XX:PerMethodRecompilationCutoff=10", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jvmci/TestEnableJVMCIProduct.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/TestEnableJVMCIProduct.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jvmci/TestEnableJVMCIProduct.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/TestEnableJVMCIProduct.java 2025-01-04 20:25:18.000000000 +0000 @@ -73,7 +73,7 @@ } static void test(String explicitFlag, Expectation... expectations) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UnlockExperimentalVMOptions", "-XX:+EnableJVMCIProduct", "-XX:-UnlockExperimentalVMOptions", explicitFlag, "-XX:+PrintFlagsFinal", "-version"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jvmci/TestInvalidJVMCIOption.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/TestInvalidJVMCIOption.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jvmci/TestInvalidJVMCIOption.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/TestInvalidJVMCIOption.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,7 @@ public class TestInvalidJVMCIOption { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UnlockExperimentalVMOptions", "-XX:+EagerJVMCI", "-XX:+UseJVMCICompiler", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jvmci/TestJVMCIPrintProperties.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/TestJVMCIPrintProperties.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jvmci/TestJVMCIPrintProperties.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/TestJVMCIPrintProperties.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ } static void test(String enableFlag) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UnlockExperimentalVMOptions", enableFlag, "-Djvmci.Compiler=null", "-XX:+JVMCIPrintProperties"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetFlagValueTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetFlagValueTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetFlagValueTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetFlagValueTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -63,7 +63,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder( + pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UnlockExperimentalVMOptions", "-XX:+EnableJVMCI", "-XX:+PrintFlagsFinal", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/lib/ir_framework/driver/TestVMProcess.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/lib/ir_framework/driver/TestVMProcess.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/lib/ir_framework/driver/TestVMProcess.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/lib/ir_framework/driver/TestVMProcess.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -146,7 +146,7 @@ } private void start() { - ProcessBuilder process = ProcessTools.createJavaProcessBuilder(cmds); + ProcessBuilder process = ProcessTools.createLimitedTestJavaProcessBuilder(cmds); try { // Calls 'main' of TestVM to run all specified tests with commands 'cmds'. // Use executeProcess instead of executeTestJvm as we have already added the JTreg VM and diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/linkage/TestLinkageErrorInGenerateOopMap.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/linkage/TestLinkageErrorInGenerateOopMap.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/linkage/TestLinkageErrorInGenerateOopMap.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/linkage/TestLinkageErrorInGenerateOopMap.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,7 @@ public static void main(String args[]) throws Exception { if (args.length == 0) { // Spawn new VM instance to execute test - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UnlockDiagnosticVMOptions", "-XX:-BytecodeVerificationRemote", "-XX:-BytecodeVerificationLocal", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/loopopts/InfiniteLoopBadControlNeverBranch.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/loopopts/InfiniteLoopBadControlNeverBranch.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/loopopts/InfiniteLoopBadControlNeverBranch.java 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/loopopts/InfiniteLoopBadControlNeverBranch.java 2025-01-04 20:25:18.000000000 +0000 @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8335709 + * @summary C2: assert(!loop->is_member(get_loop(useblock))) failed: must be outside loop + * @library /test/lib + * @run main/othervm -Xcomp -XX:CompileCommand=compileonly,InfiniteLoopBadControlNeverBranch::* InfiniteLoopBadControlNeverBranch + * + */ + + +import jdk.test.lib.Utils; + +public class InfiniteLoopBadControlNeverBranch { + static int b; + static short c; + + public static void main(String[] args) throws InterruptedException { + Thread thread = new Thread(() -> test()); + thread.setDaemon(true); + thread.start(); + Thread.sleep(Utils.adjustTimeout(4000)); + } + + static void test() { + int i = 0; + while (true) { + if (i > 1) { + b = 0; + } + c = (short) (b * 7); + i++; + } + } +} diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMiningIterShortLoop.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMiningIterShortLoop.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMiningIterShortLoop.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMiningIterShortLoop.java 2025-01-04 20:25:18.000000000 +0000 @@ -37,7 +37,7 @@ public class CheckLoopStripMiningIterShortLoop { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", "-XX:+PrintFlagsFinal", "-version"); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", "-XX:+PrintFlagsFinal", "-version"); OutputAnalyzer out = new OutputAnalyzer(pb.start()); out.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java 2025-01-04 20:25:18.000000000 +0000 @@ -83,7 +83,7 @@ System.arraycopy(args, 0, cmds, 1, args.length); cmds[args.length + 1] = "-XX:+PrintFlagsFinal"; cmds[args.length + 2] = "-version"; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmds); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmds); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWait.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWait.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWait.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWait.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * Copyright 2016 Azul Systems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -43,7 +43,7 @@ public static void main(String[] args) throws Exception { // Test C2 compiler - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+IgnoreUnrecognizedVMOptions", "-showversion", "-XX:-TieredCompilation", "-Xbatch", "-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java 2025-01-04 20:25:18.000000000 +0000 @@ -71,7 +71,7 @@ command.add("-XX:CompileCommand=compileonly," + Launcher.class.getName() + "::" + "test"); command.add(Launcher.class.getName()); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(command); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(command); OutputAnalyzer analyzer = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -87,9 +87,9 @@ final String cpuModel = cpuFeatures.get(0); if (isCPUModelNeoverseN1(cpuModel)) { - checkFinalFlagsEqualTo(ProcessTools.createJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintFlagsFinal", "-version"), + checkFinalFlagsEqualTo(ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions", "-XX:+PrintFlagsFinal", "-version"), "isb", "1"); - checkFinalFlagsEqualTo(ProcessTools.createJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions", "-XX:OnSpinWaitInstCount=2", "-XX:+PrintFlagsFinal", "-version"), + checkFinalFlagsEqualTo(ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions", "-XX:OnSpinWaitInstCount=2", "-XX:+PrintFlagsFinal", "-version"), "isb", "2"); } else { System.out.println("Skip because no defaults for CPU model: " + cpuModel); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitC1.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitC1.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitC1.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitC1.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * Copyright 2016 Azul Systems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -45,7 +45,7 @@ public static void main(String[] args) throws Exception { // Test C1 compiler - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+IgnoreUnrecognizedVMOptions", "-showversion", "-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1", "-Xbatch", "-XX:+PrintCompilation", "-XX:+UnlockDiagnosticVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitNoneAArch64.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitNoneAArch64.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitNoneAArch64.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitNoneAArch64.java 2025-01-04 20:25:18.000000000 +0000 @@ -54,7 +54,7 @@ command.add(Launcher.class.getName()); // Test C2 compiler - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(command); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(command); OutputAnalyzer analyzer = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/oracle/CheckCompileCommandOption.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/oracle/CheckCompileCommandOption.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/oracle/CheckCompileCommandOption.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/oracle/CheckCompileCommandOption.java 2025-01-04 20:25:18.000000000 +0000 @@ -251,7 +251,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder(arguments); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); out = new OutputAnalyzer(pb.start()); for (String expected_output : expected_outputs) { @@ -266,7 +266,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder(arguments); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); out = new OutputAnalyzer(pb.start()); out.shouldContain("CompileCommand: An error occurred during parsing"); @@ -277,7 +277,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder(arguments); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); out = new OutputAnalyzer(pb.start()); for (String expected_output : expected_outputs) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/oracle/TestCompileCommand.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/oracle/TestCompileCommand.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/oracle/TestCompileCommand.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/oracle/TestCompileCommand.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,7 +56,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder(arguments); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); out = new OutputAnalyzer(pb.start()); for (String expected_output : expected_outputs) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/oracle/TestInvalidCompileCommand.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/oracle/TestInvalidCompileCommand.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/oracle/TestInvalidCompileCommand.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/oracle/TestInvalidCompileCommand.java 2025-01-04 20:25:18.000000000 +0000 @@ -82,7 +82,7 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder(arguments); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); out = new OutputAnalyzer(pb.start()); for (String expected_output : expected_outputs) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass/Launcher.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass/Launcher.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass/Launcher.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass/Launcher.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,6 +41,7 @@ import jdk.test.lib.JDKToolLauncher; import jdk.test.lib.process.OutputAnalyzer; +import jdk.test.lib.process.ProcessTools; import java.io.File; import java.io.IOException; @@ -60,11 +61,10 @@ .addToolArg(Agent.AGENT_JAR) .addToolArg(Agent.class.getName().replace('.', File.separatorChar) + ".class"); - ProcessBuilder pb = new ProcessBuilder(jar.getCommand()); try { - OutputAnalyzer output = new OutputAnalyzer(pb.start()); + OutputAnalyzer output = ProcessTools.executeProcess(jar.getCommand()); output.shouldHaveExitValue(0); - } catch (IOException ex) { + } catch (Exception ex) { throw new Error("TESTBUG: jar failed.", ex); } } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass_classloaders/Launcher.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass_classloaders/Launcher.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass_classloaders/Launcher.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass_classloaders/Launcher.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,6 +44,7 @@ import jdk.test.lib.JDKToolLauncher; import jdk.test.lib.process.OutputAnalyzer; +import jdk.test.lib.process.ProcessTools; import java.io.File; import java.io.IOException; @@ -63,11 +64,10 @@ .addToolArg(Agent.AGENT_JAR) .addToolArg(Agent.class.getName().replace('.', File.separatorChar) + ".class"); - ProcessBuilder pb = new ProcessBuilder(jar.getCommand()); try { - OutputAnalyzer output = new OutputAnalyzer(pb.start()); + OutputAnalyzer output = ProcessTools.executeProcess(jar.getCommand()); output.shouldHaveExitValue(0); - } catch (IOException ex) { + } catch (Exception ex) { throw new Error("TESTBUG: jar failed.", ex); } } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/runtime/cr8015436/Driver8015436.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/runtime/cr8015436/Driver8015436.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/runtime/cr8015436/Driver8015436.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/runtime/cr8015436/Driver8015436.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,7 +30,7 @@ public static void main(String args[]) { OutputAnalyzer oa; try { - oa = ProcessTools.executeProcess(ProcessTools.createTestJvm( + oa = ProcessTools.executeProcess(ProcessTools.createTestJavaProcessBuilder( Test8015436.class.getName())); } catch (Exception ex) { throw new Error("TESTBUG: exception while running child process: " + ex, ex); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/startup/NumCompilerThreadsCheck.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/startup/NumCompilerThreadsCheck.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/startup/NumCompilerThreadsCheck.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/startup/NumCompilerThreadsCheck.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ public class NumCompilerThreadsCheck { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:CICompilerCount=-1"); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:CICompilerCount=-1"); OutputAnalyzer out = new OutputAnalyzer(pb.start()); String expectedOutput = "outside the allowed range"; diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/startup/SmallCodeCacheStartup.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/startup/SmallCodeCacheStartup.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/startup/SmallCodeCacheStartup.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/startup/SmallCodeCacheStartup.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,10 +44,10 @@ public class SmallCodeCacheStartup { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=3m", - "-XX:CICompilerCount=64", - "-Xcomp", - "-version"); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:ReservedCodeCacheSize=3m", + "-XX:CICompilerCount=64", + "-Xcomp", + "-version"); OutputAnalyzer analyzer = new OutputAnalyzer(pb.start()); try { analyzer.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/startup/StartupOutput.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/startup/StartupOutput.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/startup/StartupOutput.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/startup/StartupOutput.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,12 +43,12 @@ ProcessBuilder pb; OutputAnalyzer out; - pb = ProcessTools.createJavaProcessBuilder("-Xint", "-XX:+DisplayVMOutputToStdout", "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-Xint", "-XX:+DisplayVMOutputToStdout", "-version"); out = new OutputAnalyzer(pb.start()); out.shouldNotContain("no space to run compilers"); out.shouldHaveExitValue(0); - pb = ProcessTools.createJavaProcessBuilder("-Xint", "-XX:ReservedCodeCacheSize=1770K", "-XX:InitialCodeCacheSize=4K", "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-Xint", "-XX:ReservedCodeCacheSize=1770K", "-XX:InitialCodeCacheSize=4K", "-version"); out = new OutputAnalyzer(pb.start()); // The VM should not crash but may return an error message because we don't have enough space for adapters int exitCode = out.getExitValue(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/testlibrary/rtm/RTMTestBase.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/testlibrary/rtm/RTMTestBase.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/testlibrary/rtm/RTMTestBase.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/testlibrary/rtm/RTMTestBase.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -63,7 +63,7 @@ public static OutputAnalyzer executeRTMTest(CompilableTest test, String... options) throws Exception { ProcessBuilder processBuilder - = ProcessTools.createJavaProcessBuilder( + = ProcessTools.createLimitedTestJavaProcessBuilder( RTMTestBase.prepareTestOptions(test, options)); OutputAnalyzer outputAnalyzer = new OutputAnalyzer(processBuilder.start()); @@ -83,7 +83,7 @@ public static OutputAnalyzer executeRTMTest(String logFileName, CompilableTest test, String... options) throws Exception { ProcessBuilder processBuilder - = ProcessTools.createJavaProcessBuilder( + = ProcessTools.createLimitedTestJavaProcessBuilder( RTMTestBase.prepareTestOptions(logFileName, test, options)); OutputAnalyzer outputAnalyzer = new OutputAnalyzer(processBuilder.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/types/correctness/OffTest.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/types/correctness/OffTest.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/types/correctness/OffTest.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/types/correctness/OffTest.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -86,7 +86,7 @@ OPTIONS[TYPE_PROFILE_INDEX] = typeProfileLevel; OPTIONS[USE_TYPE_SPECULATION_INDEX] = useTypeSpeculation; OPTIONS[PROFILING_TYPE_INDEX] = type.name(); - ProcessBuilder processBuilder = ProcessTools.createTestJvm(OPTIONS); + ProcessBuilder processBuilder = ProcessTools.createTestJavaProcessBuilder(OPTIONS); OutputAnalyzer outputAnalyzer = new OutputAnalyzer(processBuilder.start()); outputAnalyzer.shouldHaveExitValue(0); } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/vectorization/TestBufferVectorization.java openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/vectorization/TestBufferVectorization.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/compiler/vectorization/TestBufferVectorization.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/compiler/vectorization/TestBufferVectorization.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -224,11 +224,11 @@ ProcessBuilder pb; OutputAnalyzer out; try { - pb = ProcessTools.createJavaProcessBuilder("-XX:-BackgroundCompilation", - "-XX:+TraceNewVectors", - "compiler.vectorization.TestBufferVectorization", - testName, - "run"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:-BackgroundCompilation", + "-XX:+TraceNewVectors", + "compiler.vectorization.TestBufferVectorization", + testName, + "run"); out = new OutputAnalyzer(pb.start()); } catch (Exception e) { throw new RuntimeException(" Exception launching Java process: " + e); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/containers/cgroup/PlainRead.java openjdk-17-17.0.14+7/test/hotspot/jtreg/containers/cgroup/PlainRead.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/containers/cgroup/PlainRead.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/containers/cgroup/PlainRead.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -67,7 +67,7 @@ public static void main(String[] args) throws Exception { WhiteBox wb = WhiteBox.getWhiteBox(); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:os+container=trace", "-version"); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-Xlog:os+container=trace", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); if (wb.isContainerized()) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestAgeOutput.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAgeOutput.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestAgeOutput.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAgeOutput.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -66,7 +66,7 @@ } public static void runTest(String gcArg) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xbootclasspath/a:.", "-XX:+UnlockExperimentalVMOptions", "-XX:+UnlockDiagnosticVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestAllocateHeapAt.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAllocateHeapAt.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestAllocateHeapAt.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAllocateHeapAt.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,7 +36,7 @@ public class TestAllocateHeapAt { public static void main(String args[]) throws Exception { - ProcessBuilder pb = ProcessTools.createTestJvm( + ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder( "-XX:AllocateHeapAt=" + System.getProperty("test.dir", "."), "-Xlog:gc+heap=info", "-Xmx32m", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestAllocateHeapAtError.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAllocateHeapAtError.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestAllocateHeapAtError.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAllocateHeapAtError.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,7 @@ f = new File(test_dir, UUID.randomUUID().toString()); } while(f.exists()); - ProcessBuilder pb = ProcessTools.createTestJvm( + ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder( "-XX:AllocateHeapAt=" + f.getName(), "-Xlog:gc+heap=info", "-Xmx32m", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestAllocateHeapAtMultiple.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAllocateHeapAtMultiple.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestAllocateHeapAtMultiple.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestAllocateHeapAtMultiple.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -60,7 +60,7 @@ "-Xlog:gc+heap=info", "-version"}); - ProcessBuilder pb = ProcessTools.createTestJvm(flags); + ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(flags); OutputAnalyzer output = new OutputAnalyzer(pb.start()); System.out.println("Output:\n" + output.getOutput()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestCardTablePageCommits.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestCardTablePageCommits.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestCardTablePageCommits.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestCardTablePageCommits.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ // because of 8kB pages, assume 4 KB pages for all other CPUs. String Xmx = "-Xmx4m"; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( Xmx, "-XX:NativeMemoryTracking=detail", "-XX:+UseParallelGC", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestNumWorkerOutput.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestNumWorkerOutput.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestNumWorkerOutput.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestNumWorkerOutput.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,7 +58,7 @@ } public static void runTest(String gcArg) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xbootclasspath/a:.", "-XX:+UnlockExperimentalVMOptions", "-XX:+UnlockDiagnosticVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestObjectAlignment.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestObjectAlignment.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestObjectAlignment.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestObjectAlignment.java 2025-01-04 20:25:18.000000000 +0000 @@ -26,36 +26,29 @@ /** * @test TestObjectAlignment * @bug 8021823 + * @requires vm.bits == "64" * @summary G1: Concurrent marking crashes with -XX:ObjectAlignmentInBytes>=32 in 64bit VMs * @library /test/lib * @modules java.base/jdk.internal.misc - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=8 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=32 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=64 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=128 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=256 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=8 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=32 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=64 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=128 - * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=256 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=8 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=16 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=32 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=64 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=128 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:+ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=256 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=8 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=16 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=32 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=64 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=128 + * @run main/othervm gc.TestObjectAlignment -Xmx20M -XX:-ExplicitGCInvokesConcurrent -XX:ObjectAlignmentInBytes=256 */ public class TestObjectAlignment { public static byte[] garbage; - private static boolean runsOn32bit() { - return System.getProperty("sun.arch.data.model").equals("32"); - } - public static void main(String[] args) throws Exception { - if (runsOn32bit()) { - // 32 bit VMs do not allow setting ObjectAlignmentInBytes, so there is nothing to test. We still get called. - return; - } for (int i = 0; i < 10; i++) { garbage = new byte[1000]; System.gc(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestSmallHeap.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestSmallHeap.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestSmallHeap.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestSmallHeap.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -96,7 +96,7 @@ private static void verifySmallHeapSize(String gc, long expectedMaxHeap) throws Exception { long minMaxHeap = 4 * 1024 * 1024; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( gc, "-Xmx" + minMaxHeap, "-XX:+PrintFlagsFinal", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestVerifyDuringStartup.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestVerifyDuringStartup.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestVerifyDuringStartup.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestVerifyDuringStartup.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ public class TestVerifyDuringStartup { public static void main(String args[]) throws Exception { - ProcessBuilder pb = ProcessTools.createTestJvm( + ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder( "-XX:-UseTLAB", "-XX:+UnlockDiagnosticVMOptions", "-XX:+VerifyDuringStartup", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestVerifySilently.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestVerifySilently.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestVerifySilently.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestVerifySilently.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,7 +57,7 @@ "-XX:+VerifyAfterGC", (verifySilently ? "-Xlog:gc":"-Xlog:gc+verify=debug"), TestVerifySilentlyRunSystemGC.class.getName()}); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(vmOpts); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(vmOpts); OutputAnalyzer output = new OutputAnalyzer(pb.start()); System.out.println("Output:\n" + output.getOutput()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestVerifySubSet.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestVerifySubSet.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/TestVerifySubSet.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/TestVerifySubSet.java 2025-01-04 20:25:18.000000000 +0000 @@ -55,7 +55,7 @@ "-Xlog:gc+verify=debug", "-XX:VerifySubSet="+subset, TestVerifySubSetRunSystemGC.class.getName()}); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(vmOpts); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(vmOpts); OutputAnalyzer output = new OutputAnalyzer(pb.start()); System.out.println("Output:\n" + output.getOutput()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/GCArguments.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/GCArguments.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/GCArguments.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/GCArguments.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -66,19 +66,19 @@ return augmented.toArray(new String[augmented.size()]); } - static public ProcessBuilder createJavaProcessBuilder(List arguments) { - return createJavaProcessBuilder(arguments.toArray(String[]::new)); + static public ProcessBuilder createLimitedTestJavaProcessBuilder(List arguments) { + return createLimitedTestJavaProcessBuilder(arguments.toArray(String[]::new)); } - static public ProcessBuilder createJavaProcessBuilder(String... arguments) { - return ProcessTools.createJavaProcessBuilder(withDefaults(arguments)); + static public ProcessBuilder createLimitedTestJavaProcessBuilder(String... arguments) { + return ProcessTools.createLimitedTestJavaProcessBuilder(withDefaults(arguments)); } - static public ProcessBuilder createTestJvm(List arguments) { - return createTestJvm(arguments.toArray(String[]::new)); + static public ProcessBuilder createTestJavaProcessBuilder(List arguments) { + return createTestJavaProcessBuilder(arguments.toArray(String[]::new)); } - static public ProcessBuilder createTestJvm(String... arguments) { - return ProcessTools.createTestJvm(withDefaults(arguments)); + static public ProcessBuilder createTestJavaProcessBuilder(String... arguments) { + return ProcessTools.createTestJavaProcessBuilder(withDefaults(arguments)); } } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestAggressiveHeap.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestAggressiveHeap.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestAggressiveHeap.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestAggressiveHeap.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -65,7 +65,7 @@ " *bool +UseParallelGC *= *true +\\{product\\} *\\{command line\\}"; private static void testFlag() throws Exception { - ProcessBuilder pb = GCArguments.createJavaProcessBuilder( + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder( option, heapSizeOption, "-XX:+PrintFlagsFinal", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestArrayAllocatorMallocLimit.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestArrayAllocatorMallocLimit.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestArrayAllocatorMallocLimit.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestArrayAllocatorMallocLimit.java 2025-01-04 20:25:18.000000000 +0000 @@ -51,7 +51,7 @@ private static final String printFlagsFinalPattern = " *size_t *" + flagName + " *:?= *(\\d+) *\\{experimental\\} *"; public static void testDefaultValue() throws Exception { - ProcessBuilder pb = GCArguments.createTestJvm( + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder( "-XX:+UnlockExperimentalVMOptions", "-XX:+PrintFlagsFinal", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); @@ -77,7 +77,7 @@ public static void testSetValue() throws Exception { long flagValue = 2048; - ProcessBuilder pb = GCArguments.createJavaProcessBuilder( + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder( "-XX:+UnlockExperimentalVMOptions", "-XX:" + flagName + "=" + flagValue, "-XX:+PrintFlagsFinal", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestCompressedClassFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestCompressedClassFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestCompressedClassFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestCompressedClassFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,6 +35,7 @@ * @library / * @modules java.base/jdk.internal.misc * java.management + * @requires vm.opt.CompressedClassSpaceSize == null & vm.opt.UseCompressedClassPointers == null * @run driver gc.arguments.TestCompressedClassFlags */ public class TestCompressedClassFlags { @@ -50,7 +51,7 @@ } private static OutputAnalyzer runJava(String ... args) throws Exception { - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(args); + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder(args); return new OutputAnalyzer(pb.start()); } } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java 2025-01-04 20:25:18.000000000 +0000 @@ -40,13 +40,13 @@ public class TestDisableDefaultGC { public static void main(String[] args) throws Exception { // Start VM, disabling all possible default GCs - ProcessBuilder pb = GCArguments.createTestJvm("-XX:-UseSerialGC", - "-XX:-UseParallelGC", - "-XX:-UseG1GC", - "-XX:-UseZGC", - "-XX:+UnlockExperimentalVMOptions", - "-XX:-UseShenandoahGC", - "-version"); + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder("-XX:-UseSerialGC", + "-XX:-UseParallelGC", + "-XX:-UseG1GC", + "-XX:-UseZGC", + "-XX:+UnlockExperimentalVMOptions", + "-XX:-UseShenandoahGC", + "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldMatch("Garbage collector not selected"); output.shouldHaveExitValue(1); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestG1ConcMarkStepDurationMillis.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1ConcMarkStepDurationMillis.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestG1ConcMarkStepDurationMillis.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1ConcMarkStepDurationMillis.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,7 +25,7 @@ /* * @test TestG1ConcMarkStepDurationMillis - * @requires vm.gc.G1 + * @requires vm.gc.G1 & vm.opt.G1ConcMarkStepDurationMillis == null * @summary Tests argument processing for double type flag, G1ConcMarkStepDurationMillis * @library /test/lib * @library / @@ -78,7 +78,7 @@ Collections.addAll(vmOpts, "-XX:+UseG1GC", "-XX:G1ConcMarkStepDurationMillis="+expectedValue, "-XX:+PrintFlagsFinal", "-version"); - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts); + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder(vmOpts); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(expectedResult == PASS ? 0 : 1); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestG1ConcRefinementThreads.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1ConcRefinementThreads.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestG1ConcRefinementThreads.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1ConcRefinementThreads.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,7 +26,7 @@ /* * @test TestG1ConcRefinementThreads * @bug 8047976 - * @requires vm.gc.G1 + * @requires vm.gc.G1 & vm.opt.G1ConcRefinementThreads == null * @summary Tests argument processing for G1ConcRefinementThreads * @library /test/lib * @library / @@ -69,7 +69,7 @@ } Collections.addAll(vmOpts, "-XX:+UseG1GC", "-XX:+PrintFlagsFinal", "-version"); - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts); + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder(vmOpts); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestG1HeapRegionSize.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1HeapRegionSize.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestG1HeapRegionSize.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1HeapRegionSize.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,7 +26,7 @@ /* * @test TestG1HeapRegionSize * @bug 8021879 - * @requires vm.gc.G1 + * @requires vm.gc.G1 & vm.opt.G1HeapRegionSize == null * @summary Verify that the flag G1HeapRegionSize is updated properly * @modules java.base/jdk.internal.misc * @modules java.management/sun.management @@ -52,7 +52,7 @@ flagList.add("-XX:+PrintFlagsFinal"); flagList.add("-version"); - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(flagList); + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder(flagList); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(exitValue); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestG1PercentageOptions.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1PercentageOptions.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestG1PercentageOptions.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestG1PercentageOptions.java 2025-01-04 20:25:18.000000000 +0000 @@ -63,7 +63,7 @@ }; private static void check(String flag, boolean is_valid) throws Exception { - ProcessBuilder pb = GCArguments.createTestJvm("-XX:+UseG1GC", flag, "-version"); + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder("-XX:+UseG1GC", flag, "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); if (is_valid) { output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestHeapFreeRatio.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestHeapFreeRatio.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestHeapFreeRatio.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestHeapFreeRatio.java 2025-01-04 20:25:18.000000000 +0000 @@ -48,7 +48,7 @@ } private static void testMinMaxFreeRatio(String min, String max, Validation type) throws Exception { - ProcessBuilder pb = GCArguments.createTestJvm( + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder( "-Xminf" + min, "-Xmaxf" + max, "-version"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestInitialTenuringThreshold.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestInitialTenuringThreshold.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestInitialTenuringThreshold.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestInitialTenuringThreshold.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,7 +26,7 @@ /* * @test TestInitialTenuringThreshold * @bug 8014765 - * @requires vm.gc.Parallel + * @requires vm.gc.Parallel & vm.opt.InitialTenuringThreshold == null & vm.opt.MaxTenuringThreshold == null * @summary Tests argument processing for initial tenuring threshold * @library /test/lib * @library / @@ -41,7 +41,7 @@ public class TestInitialTenuringThreshold { public static void runWithThresholds(int initial, int max, boolean shouldfail) throws Exception { - ProcessBuilder pb = GCArguments.createJavaProcessBuilder( + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder( "-XX:+UseParallelGC", "-XX:InitialTenuringThreshold=" + String.valueOf(initial), "-XX:MaxTenuringThreshold=" + String.valueOf(max), @@ -58,8 +58,9 @@ public static void main(String args[]) throws Exception { - ProcessBuilder pb = GCArguments.createJavaProcessBuilder( + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder( // some value below the default value of InitialTenuringThreshold of 7 + "-XX:+UseParallelGC", "-XX:MaxTenuringThreshold=1", "-version" ); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMaxHeapSizeTools.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxHeapSizeTools.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMaxHeapSizeTools.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxHeapSizeTools.java 2025-01-04 20:25:18.000000000 +0000 @@ -115,7 +115,7 @@ } private static void getNewOldSize(String gcflag, long[] values) throws Exception { - ProcessBuilder pb = GCArguments.createTestJvm(gcflag, + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder(gcflag, "-XX:+PrintFlagsFinal", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); @@ -208,7 +208,7 @@ finalargs.add(classname); finalargs.addAll(Arrays.asList(arguments)); - ProcessBuilder pb = GCArguments.createTestJvm(finalargs.toArray(String[]::new)); + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder(finalargs.toArray(String[]::new)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); @@ -308,7 +308,7 @@ } private static void expect(String[] flags, boolean hasWarning, boolean hasError, int errorcode) throws Exception { - ProcessBuilder pb = GCArguments.createTestJvm(flags); + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder(flags); OutputAnalyzer output = new OutputAnalyzer(pb.start()); shouldContainOrNot(output, hasWarning, "Warning"); shouldContainOrNot(output, hasError, "Error"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMaxMinHeapFreeRatioFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxMinHeapFreeRatioFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMaxMinHeapFreeRatioFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxMinHeapFreeRatioFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -98,7 +98,7 @@ Boolean.toString(shrinkHeapInSteps) ); - ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions); + ProcessBuilder procBuilder = GCArguments.createLimitedTestJavaProcessBuilder(vmOptions); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); analyzer.shouldHaveExitValue(0); } @@ -123,7 +123,7 @@ "--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED", "-version" ); - ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions); + ProcessBuilder procBuilder = GCArguments.createLimitedTestJavaProcessBuilder(vmOptions); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); analyzer.shouldHaveExitValue(1); analyzer.shouldContain("Error: Could not create the Java Virtual Machine."); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMaxNewSize.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxNewSize.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMaxNewSize.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxNewSize.java 2025-01-04 20:25:18.000000000 +0000 @@ -95,7 +95,7 @@ finalargs.add("-XX:+PrintFlagsFinal"); finalargs.add("-version"); - ProcessBuilder pb = GCArguments.createTestJvm(finalargs); + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder(finalargs); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); String stdout = output.getStdout(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMaxRAMFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxRAMFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMaxRAMFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMaxRAMFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,7 @@ args.add("-XX:+PrintFlagsFinal"); args.add("-version"); - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(args); + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder(args); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); String stdout = output.getStdout(); @@ -84,7 +84,7 @@ args.add("-XX:+PrintFlagsFinal"); args.add("-version"); - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(args); + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder(args); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); String stdout = output.getStdout(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -102,7 +102,7 @@ Boolean.toString(useAdaptiveSizePolicy) ); vmOptions.removeIf((String p) -> p.isEmpty()); - ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions); + ProcessBuilder procBuilder = GCArguments.createLimitedTestJavaProcessBuilder(vmOptions); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); analyzer.shouldHaveExitValue(0); } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -82,7 +82,7 @@ Integer.toString(ratio) ); - ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions); + ProcessBuilder procBuilder = GCArguments.createLimitedTestJavaProcessBuilder(vmOptions); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); analyzer.shouldHaveExitValue(0); System.out.println(analyzer.getOutput()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestNewSizeFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestNewSizeFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestNewSizeFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestNewSizeFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -166,7 +166,7 @@ Long.toString(maxHeapSize) ); vmOptions.removeIf(String::isEmpty); - ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions); + ProcessBuilder procBuilder = GCArguments.createLimitedTestJavaProcessBuilder(vmOptions); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); return analyzer; } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestNewSizeThreadIncrease.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestNewSizeThreadIncrease.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestNewSizeThreadIncrease.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestNewSizeThreadIncrease.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -65,13 +65,13 @@ } static void runNewSizeThreadIncreaseTest(String expectedValue, boolean isNewsizeChanged) throws Exception { - ProcessBuilder pb = GCArguments.createJavaProcessBuilder("-XX:+UseSerialGC", - "-Xms96M", - "-Xmx128M", - "-XX:NewRatio=2", - "-Xlog:gc+heap+ergo=debug", - "-XX:NewSizeThreadIncrease="+expectedValue, - GCTest.class.getName()); + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder("-XX:+UseSerialGC", + "-Xms96M", + "-Xmx128M", + "-XX:NewRatio=2", + "-Xlog:gc+heap+ergo=debug", + "-XX:NewSizeThreadIncrease="+expectedValue, + GCTest.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestObjectTenuringFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestObjectTenuringFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestObjectTenuringFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestObjectTenuringFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -161,7 +161,7 @@ } Collections.addAll(vmOpts, "-XX:+UseParallelGC", "-XX:+PrintFlagsFinal", "-version"); - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts); + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder(vmOpts); OutputAnalyzer output = new OutputAnalyzer(pb.start()); if (shouldFail) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestParallelGCThreads.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestParallelGCThreads.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestParallelGCThreads.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestParallelGCThreads.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,7 +56,7 @@ private static final String printFlagsFinalPattern = " *uint *" + flagName + " *:?= *(\\d+) *\\{product\\} *"; public static void testDefaultValue() throws Exception { - ProcessBuilder pb = GCArguments.createJavaProcessBuilder( + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder( "-XX:+UnlockExperimentalVMOptions", "-XX:+PrintFlagsFinal", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); @@ -94,7 +94,7 @@ for (String gc : supportedGC) { // Make sure the VM does not allow ParallelGCThreads set to 0 - ProcessBuilder pb = GCArguments.createJavaProcessBuilder( + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder( "-XX:+Use" + gc + "GC", "-XX:ParallelGCThreads=0", "-XX:+PrintFlagsFinal", @@ -127,7 +127,7 @@ } public static long getParallelGCThreadCount(String... flags) throws Exception { - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(flags); + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder(flags); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); String stdout = output.getStdout(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestParallelRefProc.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestParallelRefProc.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestParallelRefProc.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestParallelRefProc.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -77,7 +77,7 @@ result.addAll(Arrays.asList(args)); result.add("-XX:+PrintFlagsFinal"); result.add("-version"); - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(result); + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder(result); OutputAnalyzer output = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestSelectDefaultGC.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestSelectDefaultGC.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestSelectDefaultGC.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestSelectDefaultGC.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ public static void testDefaultGC(boolean actAsServer) throws Exception { // Start VM without specifying GC - ProcessBuilder pb = GCArguments.createJavaProcessBuilder( + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder( "-XX:" + (actAsServer ? "+" : "-") + "AlwaysActAsServerClassMachine", "-XX:" + (actAsServer ? "-" : "+") + "NeverActAsServerClassMachine", "-XX:+PrintFlagsFinal", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -60,7 +60,7 @@ long initHeap = heapAlignment; long maxHeap = heapAlignment * 2; - ProcessBuilder pb_enabled = GCArguments.createJavaProcessBuilder( + ProcessBuilder pb_enabled = GCArguments.createLimitedTestJavaProcessBuilder( "-XX:+UseParallelGC", "-Xms" + String.valueOf(initHeap), "-Xmx" + String.valueOf(maxHeap), diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestSurvivorRatioFlag.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestSurvivorRatioFlag.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestSurvivorRatioFlag.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestSurvivorRatioFlag.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,7 +87,7 @@ Integer.toString(ratio) ); - ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions); + ProcessBuilder procBuilder = GCArguments.createLimitedTestJavaProcessBuilder(vmOptions); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); analyzer.shouldHaveExitValue(0); } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestTargetSurvivorRatioFlag.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestTargetSurvivorRatioFlag.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestTargetSurvivorRatioFlag.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestTargetSurvivorRatioFlag.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -116,7 +116,7 @@ vmOptions.add("-XX:TargetSurvivorRatio=" + ratio); vmOptions.add("-version"); - ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions); + ProcessBuilder procBuilder = GCArguments.createLimitedTestJavaProcessBuilder(vmOptions); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); analyzer.shouldHaveExitValue(1); @@ -151,7 +151,7 @@ Integer.toString(ratio) ); - ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions); + ProcessBuilder procBuilder = GCArguments.createLimitedTestJavaProcessBuilder(vmOptions); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); analyzer.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestUnrecognizedVMOptionsHandling.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestUnrecognizedVMOptionsHandling.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestUnrecognizedVMOptionsHandling.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestUnrecognizedVMOptionsHandling.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,7 @@ public static void main(String args[]) throws Exception { // The first two JAVA processes are expected to fail, but with a correct VM option suggestion - ProcessBuilder pb = GCArguments.createJavaProcessBuilder( + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder( "-XX:+UseDynamicNumberOfGcThreads", "-version" ); @@ -50,7 +50,7 @@ throw new RuntimeException("Not expected to get exit value 0"); } - pb = GCArguments.createJavaProcessBuilder( + pb = GCArguments.createLimitedTestJavaProcessBuilder( "-XX:MaxiumHeapSize=500m", "-version" ); @@ -61,7 +61,7 @@ } // The last JAVA process should run successfully for the purpose of sanity check - pb = GCArguments.createJavaProcessBuilder( + pb = GCArguments.createLimitedTestJavaProcessBuilder( "-XX:+UseDynamicNumberOfGCThreads", "-version" ); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgoTools.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgoTools.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgoTools.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgoTools.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -93,7 +93,7 @@ finalargs.add(classname); finalargs.addAll(Arrays.asList(arguments)); - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(finalargs); + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder(finalargs); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); return output; @@ -157,7 +157,7 @@ } private static String expect(String[] flags, boolean hasWarning, boolean hasError, int errorcode) throws Exception { - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(flags); + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder(flags); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(errorcode); return output.getStdout(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestUseNUMAInterleaving.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestUseNUMAInterleaving.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestUseNUMAInterleaving.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestUseNUMAInterleaving.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,7 +39,7 @@ public class TestUseNUMAInterleaving { public static void main(String[] args) throws Exception { - ProcessBuilder pb = GCArguments.createTestJvm( + ProcessBuilder pb = GCArguments.createTestJavaProcessBuilder( "-XX:+UseNUMA", "-XX:+PrintFlagsFinal", "-version"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestVerifyBeforeAndAfterGCFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestVerifyBeforeAndAfterGCFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/arguments/TestVerifyBeforeAndAfterGCFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/arguments/TestVerifyBeforeAndAfterGCFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -86,7 +86,7 @@ (verifyAfterGC ? "-XX:+VerifyAfterGC" : "-XX:-VerifyAfterGC"), GarbageProducer.class.getName() }); - ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts); + ProcessBuilder pb = GCArguments.createLimitedTestJavaProcessBuilder(vmOpts); OutputAnalyzer analyzer = new OutputAnalyzer(pb.start()); analyzer.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/class_unloading/TestG1ClassUnloadingHWM.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/class_unloading/TestG1ClassUnloadingHWM.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/class_unloading/TestG1ClassUnloadingHWM.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/class_unloading/TestG1ClassUnloadingHWM.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,7 @@ private static long YoungGenSize = 32 * 1024 * 1024; private static OutputAnalyzer run(boolean enableUnloading) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xbootclasspath/a:.", "-XX:+UnlockDiagnosticVMOptions", "-XX:+WhiteBoxAPI", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestAlignment.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestAlignment.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestAlignment.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestAlignment.java 2025-01-04 20:25:18.000000000 +0000 @@ -36,15 +36,22 @@ * @run main/othervm -Xmx64m -XX:-UseTLAB * -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC * gc.epsilon.TestAlignment - * + */ + +/** + * @test TestAlignment + * @requires vm.gc.Epsilon + * @requires vm.bits == "64" + * @summary Check Epsilon TLAB options with unusual object alignment + * @bug 8212177 * @run main/othervm -Xmx64m -XX:+UseTLAB * -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC - * -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 + * -XX:ObjectAlignmentInBytes=16 * gc.epsilon.TestAlignment * * @run main/othervm -Xmx64m -XX:-UseTLAB * -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC - * -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 + * -XX:ObjectAlignmentInBytes=16 * gc.epsilon.TestAlignment */ diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestDieDefault.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestDieDefault.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestDieDefault.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestDieDefault.java 2025-01-04 20:25:18.000000000 +0000 @@ -37,14 +37,14 @@ public class TestDieDefault { public static void passWith(String... args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(args); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(args); OutputAnalyzer out = new OutputAnalyzer(pb.start()); out.shouldNotContain("OutOfMemoryError"); out.shouldHaveExitValue(0); } public static void failWith(String... args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(args); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(args); OutputAnalyzer out = new OutputAnalyzer(pb.start()); out.shouldContain("OutOfMemoryError"); if (out.getExitValue() == 0) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestDieWithHeapDump.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestDieWithHeapDump.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestDieWithHeapDump.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestDieWithHeapDump.java 2025-01-04 20:25:18.000000000 +0000 @@ -38,14 +38,14 @@ public class TestDieWithHeapDump { public static void passWith(String... args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(args); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(args); OutputAnalyzer out = new OutputAnalyzer(pb.start()); out.shouldNotContain("OutOfMemoryError"); out.shouldHaveExitValue(0); } public static void failWith(String... args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(args); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(args); Process p = pb.start(); OutputAnalyzer out = new OutputAnalyzer(p); out.shouldContain("OutOfMemoryError"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestDieWithOnError.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestDieWithOnError.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestDieWithOnError.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestDieWithOnError.java 2025-01-04 20:25:18.000000000 +0000 @@ -39,7 +39,7 @@ static String ON_ERR_MSG = "Epsilon error handler message"; public static void passWith(String... args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(args); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(args); OutputAnalyzer out = new OutputAnalyzer(pb.start()); out.shouldNotContain("OutOfMemoryError"); out.stdoutShouldNotMatch("^" + ON_ERR_MSG); @@ -47,7 +47,7 @@ } public static void failWith(String... args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(args); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(args); OutputAnalyzer out = new OutputAnalyzer(pb.start()); out.shouldContain("OutOfMemoryError"); if (out.getExitValue() == 0) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestMaxTLAB.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestMaxTLAB.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/epsilon/TestMaxTLAB.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/epsilon/TestMaxTLAB.java 2025-01-04 20:25:18.000000000 +0000 @@ -48,29 +48,36 @@ * -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC * -XX:EpsilonMaxTLABSize=12345 * gc.epsilon.TestMaxTLAB - * + */ + +/** + * @test TestMaxTLAB + * @requires vm.gc.Epsilon + * @requires vm.bits == "64" + * @summary Check EpsilonMaxTLAB options + * @bug 8212177 * @run main/othervm -Xmx64m * -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC * -XX:EpsilonMaxTLABSize=1 - * -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 + * -XX:ObjectAlignmentInBytes=16 * gc.epsilon.TestMaxTLAB * * @run main/othervm -Xmx64m * -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC * -XX:EpsilonMaxTLABSize=1K - * -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 + * -XX:ObjectAlignmentInBytes=16 * gc.epsilon.TestMaxTLAB * * @run main/othervm -Xmx64m * -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC * -XX:EpsilonMaxTLABSize=1M - * -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 + * -XX:ObjectAlignmentInBytes=16 * gc.epsilon.TestMaxTLAB * * @run main/othervm -Xmx64m * -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC * -XX:EpsilonMaxTLABSize=12345 - * -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 + * -XX:ObjectAlignmentInBytes=16 * gc.epsilon.TestMaxTLAB */ diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/ergonomics/TestDynamicNumberOfGCThreads.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/ergonomics/TestDynamicNumberOfGCThreads.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/ergonomics/TestDynamicNumberOfGCThreads.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/ergonomics/TestDynamicNumberOfGCThreads.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -73,7 +73,7 @@ String[] baseArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:+" + gcFlag, "-Xmx10M", "-XX:+UseDynamicNumberOfGCThreads", "-Xlog:gc+task=trace", GCTest.class.getName()}; // Base test with gc and +UseDynamicNumberOfGCThreads: - ProcessBuilder pb_enabled = ProcessTools.createJavaProcessBuilder(baseArgs); + ProcessBuilder pb_enabled = ProcessTools.createLimitedTestJavaProcessBuilder(baseArgs); verifyDynamicNumberOfGCThreads(new OutputAnalyzer(pb_enabled.start())); // Turn on parallel reference processing @@ -81,7 +81,7 @@ String[] parRefArgs = new String[baseArgs.length + parRefProcArg.length]; System.arraycopy(parRefProcArg, 0, parRefArgs, 0, parRefProcArg.length); System.arraycopy(baseArgs, 0, parRefArgs, parRefProcArg.length, baseArgs.length); - pb_enabled = ProcessTools.createJavaProcessBuilder(parRefArgs); + pb_enabled = ProcessTools.createLimitedTestJavaProcessBuilder(parRefArgs); verifyDynamicNumberOfGCThreads(new OutputAnalyzer(pb_enabled.start())); } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/ergonomics/TestInitialGCThreadLogging.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/ergonomics/TestInitialGCThreadLogging.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/ergonomics/TestInitialGCThreadLogging.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/ergonomics/TestInitialGCThreadLogging.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -70,7 +70,7 @@ private static void testInitialGCThreadLogging(String gcFlag, String threadName) throws Exception { // Base test with gc and +UseDynamicNumberOfGCThreads: - ProcessBuilder pb_enabled = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb_enabled = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UnlockExperimentalVMOptions", "-XX:+" + gcFlag, "-Xmx10M", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/Test2GbHeap.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/Test2GbHeap.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/Test2GbHeap.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/Test2GbHeap.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,7 +49,7 @@ testArguments.add("-Xmx2g"); testArguments.add("-version"); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(testArguments); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(testArguments); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegions.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegions.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegions.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegions.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -80,7 +80,7 @@ public class TestEagerReclaimHumongousRegions { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseG1GC", "-Xms128M", "-Xmx128M", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java 2025-01-04 20:25:18.000000000 +0000 @@ -30,6 +30,7 @@ * mark bitmaps at reclaim. * @key randomness * @requires vm.gc.G1 + * @requires vm.debug * @library /test/lib * @modules java.base/jdk.internal.misc * java.management @@ -118,7 +119,7 @@ public class TestEagerReclaimHumongousRegionsClearMarkBits { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseG1GC", "-Xms128M", "-Xmx128M", @@ -129,7 +130,6 @@ "-XX:+UnlockDiagnosticVMOptions", "-XX:+VerifyAfterGC", "-XX:ConcGCThreads=1", // Want to make marking as slow as possible. - "-XX:+IgnoreUnrecognizedVMOptions", // G1VerifyBitmaps is develop only. "-XX:+G1VerifyBitmaps", TestEagerReclaimHumongousRegionsClearMarkBitsReclaimRegionFast.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsLog.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsLog.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsLog.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsLog.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,7 +54,7 @@ } public static void runTest() throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xbootclasspath/a:.", "-XX:+UnlockExperimentalVMOptions", "-XX:+UnlockDiagnosticVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsWithRefs.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsWithRefs.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsWithRefs.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestEagerReclaimHumongousRegionsWithRefs.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -92,7 +92,7 @@ public class TestEagerReclaimHumongousRegionsWithRefs { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseG1GC", "-Xms128M", "-Xmx128M", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestG1SkipCompaction.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestG1SkipCompaction.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestG1SkipCompaction.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestG1SkipCompaction.java 2025-01-04 20:25:18.000000000 +0000 @@ -21,6 +21,8 @@ * questions. */ +package gc.g1; + /* * @test TestG1SkipCompaction * @summary Test for JDK-8262068 Improve G1 Full GC by skipping compaction @@ -29,7 +31,7 @@ * @library /test/lib * @modules java.base/jdk.internal.misc * java.management - * @run main/othervm -Xms256m -Xmx256m TestG1SkipCompaction + * @run main/othervm -Xms256m -Xmx256m gc.g1.TestG1SkipCompaction */ import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -52,7 +54,7 @@ "-XX:G1HeapRegionSize=1m", GCTest.class.getName() }; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(arguments); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); OutputAnalyzer output = new OutputAnalyzer(pb.start()); System.out.println(output.getStdout()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestG1TraceEagerReclaimHumongousObjects.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,14 +41,14 @@ public class TestG1TraceEagerReclaimHumongousObjects { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-Xms128M", - "-Xmx128M", - "-Xmn16M", - "-XX:G1HeapRegionSize=1M", - "-Xlog:gc+phases=trace,gc+humongous=trace", - "-XX:+UnlockExperimentalVMOptions", - GCWithHumongousObjectTest.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-Xms128M", + "-Xmx128M", + "-Xmn16M", + "-XX:G1HeapRegionSize=1M", + "-Xlog:gc+phases=trace,gc+humongous=trace", + "-XX:+UnlockExperimentalVMOptions", + GCWithHumongousObjectTest.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestGCLogMessages.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestGCLogMessages.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestGCLogMessages.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestGCLogMessages.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -185,26 +185,26 @@ private void testNormalLogs() throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-Xmx10M", - GCTest.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-Xmx10M", + GCTest.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); checkMessagesAtLevel(output, allLogMessages, Level.OFF); output.shouldHaveExitValue(0); - pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-Xmx10M", - "-Xlog:gc+phases=debug", - GCTest.class.getName()); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-Xmx10M", + "-Xlog:gc+phases=debug", + GCTest.class.getName()); output = new OutputAnalyzer(pb.start()); checkMessagesAtLevel(output, allLogMessages, Level.DEBUG); - pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-Xmx10M", - "-Xlog:gc+phases=trace", - GCTest.class.getName()); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-Xmx10M", + "-Xlog:gc+phases=trace", + GCTest.class.getName()); output = new OutputAnalyzer(pb.start()); checkMessagesAtLevel(output, allLogMessages, Level.TRACE); @@ -220,10 +220,10 @@ }; private void testConcurrentRefinementLogs() throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-Xmx10M", - "-Xlog:gc+refine+stats=debug", - GCTest.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-Xmx10M", + "-Xlog:gc+refine+stats=debug", + GCTest.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); checkMessagesAtLevel(output, concRefineMessages, Level.DEBUG); } @@ -235,29 +235,29 @@ }; private void testWithEvacuationFailureLogs() throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-Xmx32M", - "-Xmn16M", - "-XX:+G1EvacuationFailureALot", - "-XX:G1EvacuationFailureALotCount=100", - "-XX:G1EvacuationFailureALotInterval=1", - "-XX:+UnlockDiagnosticVMOptions", - "-XX:-G1UsePreventiveGC", - "-Xlog:gc+phases=debug", - GCTestWithEvacuationFailure.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-Xmx32M", + "-Xmn16M", + "-XX:+G1EvacuationFailureALot", + "-XX:G1EvacuationFailureALotCount=100", + "-XX:G1EvacuationFailureALotInterval=1", + "-XX:+UnlockDiagnosticVMOptions", + "-XX:-G1UsePreventiveGC", + "-Xlog:gc+phases=debug", + GCTestWithEvacuationFailure.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); checkMessagesAtLevel(output, exhFailureMessages, Level.DEBUG); output.shouldHaveExitValue(0); - pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-Xmx32M", - "-Xmn16M", - "-Xms32M", - "-XX:+UnlockDiagnosticVMOptions", - "-XX:-G1UsePreventiveGC", - "-Xlog:gc+phases=trace", - GCTestWithEvacuationFailure.class.getName()); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-Xmx32M", + "-Xmn16M", + "-Xms32M", + "-XX:+UnlockDiagnosticVMOptions", + "-XX:-G1UsePreventiveGC", + "-Xlog:gc+phases=trace", + GCTestWithEvacuationFailure.class.getName()); output = new OutputAnalyzer(pb.start()); checkMessagesAtLevel(output, exhFailureMessages, Level.TRACE); @@ -265,13 +265,13 @@ } private void testWithConcurrentStart() throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-Xmx10M", - "-Xbootclasspath/a:.", - "-Xlog:gc*=debug", - "-XX:+UnlockDiagnosticVMOptions", - "-XX:+WhiteBoxAPI", - GCTestWithConcurrentStart.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-Xmx10M", + "-Xbootclasspath/a:.", + "-Xlog:gc*=debug", + "-XX:+UnlockDiagnosticVMOptions", + "-XX:+WhiteBoxAPI", + GCTestWithConcurrentStart.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldContain("Clear Claimed Marks"); @@ -279,13 +279,13 @@ } private void testExpandHeap() throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-Xmx10M", - "-Xbootclasspath/a:.", - "-Xlog:gc+ergo+heap=debug", - "-XX:+UnlockDiagnosticVMOptions", - "-XX:+WhiteBoxAPI", - GCTest.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-Xmx10M", + "-Xbootclasspath/a:.", + "-Xlog:gc+ergo+heap=debug", + "-XX:+UnlockDiagnosticVMOptions", + "-XX:+WhiteBoxAPI", + GCTest.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldContain("Expand the heap. requested expansion amount: "); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestHumongousAllocConcurrentStart.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousAllocConcurrentStart.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestHumongousAllocConcurrentStart.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousAllocConcurrentStart.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,7 @@ private static final int initiatingHeapOccupancyPercent = 50; // % public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseG1GC", "-Xms" + heapSize + "m", "-Xmx" + heapSize + "m", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestHumongousAllocNearlyFullRegion.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousAllocNearlyFullRegion.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestHumongousAllocNearlyFullRegion.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousAllocNearlyFullRegion.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,7 @@ private static final int heapRegionSize = 1; // MB public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseG1GC", "-Xms" + heapSize + "m", "-Xmx" + heapSize + "m", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestHumongousCodeCacheRoots.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousCodeCacheRoots.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestHumongousCodeCacheRoots.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousCodeCacheRoots.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -106,7 +106,7 @@ finalargs.add(classname); finalargs.addAll(Arrays.asList(arguments)); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(finalargs); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); return output; diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestHumongousConcurrentStartUndo.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousConcurrentStartUndo.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestHumongousConcurrentStartUndo.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestHumongousConcurrentStartUndo.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,7 +56,7 @@ private static final int YoungSize = HeapSize / 8; public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xbootclasspath/a:.", "-XX:+UseG1GC", "-Xms" + HeapSize + "m", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestLargePageUseForAuxMemory.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestLargePageUseForAuxMemory.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestLargePageUseForAuxMemory.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestLargePageUseForAuxMemory.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,17 +33,21 @@ * @requires vm.opt.LargePageSizeInBytes == null * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm -Xbootclasspath/a:. -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+IgnoreUnrecognizedVMOptions -XX:+UseLargePages gc.g1.TestLargePageUseForAuxMemory + * @run main/othervm -Xbootclasspath/a:. -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseLargePages gc.g1.TestLargePageUseForAuxMemory */ +import java.util.ArrayList; +import java.util.List; import java.lang.Math; +import java.util.Collections; import jdk.test.lib.process.OutputAnalyzer; import jdk.test.lib.process.ProcessTools; import jdk.test.lib.Asserts; import jdk.test.lib.Platform; -import jtreg.SkippedException; import jdk.test.whitebox.WhiteBox; +import jtreg.SkippedException; + public class TestLargePageUseForAuxMemory { static final long HEAP_REGION_SIZE = 1 * 1024 * 1024; static long largePageSize; @@ -106,19 +110,22 @@ checkSize(output, expectedPageSize, "Next Bitmap: .*page_size=([^ ]+)"); } + static List getOpts(long heapsize, boolean largePageEnabled) { + return List.of("-XX:+UseG1GC", + "-XX:G1HeapRegionSize=" + HEAP_REGION_SIZE, + "-Xmx" + heapsize, + "-Xlog:pagesize,gc+init,gc+heap+coops=debug", + "-XX:" + (largePageEnabled ? "+" : "-") + "UseLargePages", + "-version"); + } + static void testVM(String what, long heapsize, boolean cardsShouldUseLargePages, boolean bitmapShouldUseLargePages) throws Exception { System.out.println(what + " heapsize " + heapsize + " card table should use large pages " + cardsShouldUseLargePages + " " + "bitmaps should use large pages " + bitmapShouldUseLargePages); ProcessBuilder pb; + // Test with large page enabled. - pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-XX:G1HeapRegionSize=" + HEAP_REGION_SIZE, - "-Xmx" + heapsize, - "-Xlog:pagesize,gc+init,gc+heap+coops=debug", - "-XX:+UseLargePages", - "-XX:+IgnoreUnrecognizedVMOptions", // there is no ObjectAlignmentInBytes in 32 bit builds - "-XX:ObjectAlignmentInBytes=8", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(getOpts(heapsize, true)); OutputAnalyzer output = new OutputAnalyzer(pb.start()); // Only expect large page size if large pages are enabled. @@ -132,14 +139,7 @@ output.shouldHaveExitValue(0); // Test with large page disabled. - pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-XX:G1HeapRegionSize=" + HEAP_REGION_SIZE, - "-Xmx" + heapsize, - "-Xlog:pagesize", - "-XX:-UseLargePages", - "-XX:+IgnoreUnrecognizedVMOptions", // there is no ObjectAlignmentInBytes in 32 bit builds - "-XX:ObjectAlignmentInBytes=8", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(getOpts(heapsize, false)); output = new OutputAnalyzer(pb.start()); checkSmallTables(output, smallPageSize); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestLargePageUseForHeap.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestLargePageUseForHeap.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestLargePageUseForHeap.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestLargePageUseForHeap.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,7 +34,7 @@ * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run main/othervm -Xbootclasspath/a:. -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI - -XX:+IgnoreUnrecognizedVMOptions -XX:+UseLargePages gc.g1.TestLargePageUseForHeap + -XX:+UseLargePages gc.g1.TestLargePageUseForHeap */ import jdk.test.lib.process.OutputAnalyzer; @@ -87,12 +87,12 @@ static void testVM(long regionSize) throws Exception { ProcessBuilder pb; // Test with large page enabled. - pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-XX:G1HeapRegionSize=" + regionSize, - "-Xmx128m", - "-Xlog:gc+init,pagesize,gc+heap+coops=debug", - "-XX:+UseLargePages", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-XX:G1HeapRegionSize=" + regionSize, + "-Xmx128m", + "-Xlog:gc+init,pagesize,gc+heap+coops=debug", + "-XX:+UseLargePages", + "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); boolean largePageEnabled = checkLargePageEnabled(output); @@ -100,12 +100,12 @@ output.shouldHaveExitValue(0); // Test with large page disabled. - pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-XX:G1HeapRegionSize=" + regionSize, - "-Xmx128m", - "-Xlog:gc+init,pagesize,gc+heap+coops=debug", - "-XX:-UseLargePages", - "-version"); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-XX:G1HeapRegionSize=" + regionSize, + "-Xmx128m", + "-Xlog:gc+init,pagesize,gc+heap+coops=debug", + "-XX:-UseLargePages", + "-version"); output = new OutputAnalyzer(pb.start()); checkHeap(output, smallPageSize); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestMarkStackSizes.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestMarkStackSizes.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestMarkStackSizes.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestMarkStackSizes.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,7 @@ Collections.addAll(testArguments, extraArgs); testArguments.add("-version"); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(testArguments); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(testArguments); OutputAnalyzer output = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestMixedGCLiveThreshold.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestMixedGCLiveThreshold.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestMixedGCLiveThreshold.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestMixedGCLiveThreshold.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -109,7 +109,7 @@ basicOpts.add(GCTest.class.getName()); - ProcessBuilder procBuilder = ProcessTools.createJavaProcessBuilder(basicOpts); + ProcessBuilder procBuilder = ProcessTools.createLimitedTestJavaProcessBuilder(basicOpts); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); return analyzer; } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestPLABOutput.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPLABOutput.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestPLABOutput.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPLABOutput.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,7 +59,7 @@ GCTest.class.getName() }; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(arguments); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(arguments); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestPLABSizeBounds.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPLABSizeBounds.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestPLABSizeBounds.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPLABSizeBounds.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,7 +62,7 @@ testArguments.add("-XX:OldPLABSize=" + plabSize); testArguments.add(GCTest.class.getName()); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(testArguments); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(testArguments); OutputAnalyzer output = new OutputAnalyzer(pb.start()); if (shouldSucceed) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestPeriodicLogMessages.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPeriodicLogMessages.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestPeriodicLogMessages.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPeriodicLogMessages.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,22 +40,22 @@ public class TestPeriodicLogMessages { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-XX:G1PeriodicGCInterval=0", - "-Xlog:gc+init,gc+periodic=debug", - "-Xmx10M", - GCTest.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-XX:G1PeriodicGCInterval=0", + "-Xlog:gc+init,gc+periodic=debug", + "-Xmx10M", + GCTest.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldContain("Periodic GC: Disabled"); output.shouldNotContain("Checking for periodic GC"); output.shouldHaveExitValue(0); - pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-XX:G1PeriodicGCInterval=100", - "-Xlog:gc+init,gc+periodic=debug", - "-Xmx10M", - GCTest.class.getName()); + pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-XX:G1PeriodicGCInterval=100", + "-Xlog:gc+init,gc+periodic=debug", + "-Xmx10M", + GCTest.class.getName()); output = new OutputAnalyzer(pb.start()); output.shouldContain("Periodic GC: Enabled"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestPrintRegionRememberedSetInfo.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPrintRegionRememberedSetInfo.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestPrintRegionRememberedSetInfo.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestPrintRegionRememberedSetInfo.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -69,7 +69,7 @@ finalargs.add(RunAndWaitForMarking.class.getName()); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(finalargs); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestRemsetLoggingThreads.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestRemsetLoggingThreads.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestRemsetLoggingThreads.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestRemsetLoggingThreads.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,12 +44,12 @@ public class TestRemsetLoggingThreads { private static void runTest(int refinementThreads, int workerThreads) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", - "-XX:+UnlockDiagnosticVMOptions", - "-Xlog:gc+remset+exit=trace", - "-XX:G1ConcRefinementThreads=" + refinementThreads, - "-XX:ParallelGCThreads=" + workerThreads, - "-version"); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", + "-XX:+UnlockDiagnosticVMOptions", + "-Xlog:gc+remset+exit=trace", + "-XX:G1ConcRefinementThreads=" + refinementThreads, + "-XX:ParallelGCThreads=" + workerThreads, + "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestRemsetLoggingTools.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestRemsetLoggingTools.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestRemsetLoggingTools.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestRemsetLoggingTools.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -77,7 +77,7 @@ finalargs.add(VerifySummaryOutput.class.getName()); finalargs.add(String.valueOf(numGCs)); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(finalargs); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestSharedArchiveWithPreTouch.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestSharedArchiveWithPreTouch.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestSharedArchiveWithPreTouch.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestSharedArchiveWithPreTouch.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,7 +59,7 @@ } dump_args.addAll(Arrays.asList(new String[] { "-Xshare:dump", "-Xlog:cds" })); - pb = ProcessTools.createJavaProcessBuilder(dump_args); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(dump_args); OutputAnalyzer output = new OutputAnalyzer(pb.start()); try { output.shouldContain("Loading classes to share"); @@ -72,7 +72,7 @@ } load_args.addAll(Arrays.asList(new String[] { "-Xshare:on", "-version" })); - pb = ProcessTools.createJavaProcessBuilder(load_args.toArray(new String[0])); + pb = ProcessTools.createLimitedTestJavaProcessBuilder(load_args.toArray(new String[0])); output = new OutputAnalyzer(pb.start()); output.shouldContain("sharing"); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -101,7 +101,7 @@ } private void performTest(List opts) throws Exception { - ProcessBuilder pb = ProcessTools.createTestJvm(opts); + ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(opts); OutputAnalyzer output = new OutputAnalyzer(pb.start()); System.out.println(output.getStdout()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestShrinkDefragmentedHeap.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestShrinkDefragmentedHeap.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestShrinkDefragmentedHeap.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestShrinkDefragmentedHeap.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,7 @@ private static final int REGION_SIZE = 1 * 1024 * 1024; public static void main(String[] args) throws Exception, Throwable { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:InitialHeapSize=" + INITIAL_HEAP_SIZE, "-Xmn" + MINIMAL_YOUNG_SIZE, "-Xmx" + MAXIMUM_HEAP_SIZE, diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestSkipRebuildRemsetPhase.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestSkipRebuildRemsetPhase.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestSkipRebuildRemsetPhase.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestSkipRebuildRemsetPhase.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,16 +40,16 @@ public class TestSkipRebuildRemsetPhase { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xbootclasspath/a:.", - "-XX:+UseG1GC", - "-XX:+UnlockExperimentalVMOptions", - "-XX:+UnlockDiagnosticVMOptions", - "-XX:+WhiteBoxAPI", - "-XX:G1MixedGCLiveThresholdPercent=20", - "-Xlog:gc+marking=debug,gc+phases=debug,gc+remset+tracking=trace", - "-Xms10M", - "-Xmx10M", - GCTest.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-Xbootclasspath/a:.", + "-XX:+UseG1GC", + "-XX:+UnlockExperimentalVMOptions", + "-XX:+UnlockDiagnosticVMOptions", + "-XX:+WhiteBoxAPI", + "-XX:G1MixedGCLiveThresholdPercent=20", + "-Xlog:gc+marking=debug,gc+phases=debug,gc+remset+tracking=trace", + "-Xms10M", + "-Xmx10M", + GCTest.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldContain("Skipping Remembered Set Rebuild."); output.shouldContain("No Remembered Sets to update after rebuild"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestVerifyGCType.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestVerifyGCType.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/TestVerifyGCType.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/TestVerifyGCType.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -153,7 +153,7 @@ basicOpts.add(TriggerGCs.class.getName()); - ProcessBuilder procBuilder = ProcessTools.createJavaProcessBuilder(basicOpts); + ProcessBuilder procBuilder = ProcessTools.createLimitedTestJavaProcessBuilder(basicOpts); OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start()); return analyzer; } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/mixedgc/TestLogging.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/mixedgc/TestLogging.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/mixedgc/TestLogging.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/mixedgc/TestLogging.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -90,7 +90,7 @@ Collections.addAll(testOpts, extraFlags); testOpts.add(RunMixedGC.class.getName()); System.out.println(testOpts); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(testOpts); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(testOpts); return new OutputAnalyzer(pb.start()); } } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/numa/TestG1NUMATouchRegions.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/numa/TestG1NUMATouchRegions.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/g1/numa/TestG1NUMATouchRegions.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/g1/numa/TestG1NUMATouchRegions.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,7 @@ * questions. */ -package gc.g1; +package gc.g1.numa; /** * @test TestG1NUMATouchRegions @@ -33,7 +33,9 @@ * java.management * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm -XX:+UseG1GC -Xbootclasspath/a:. -XX:+UseNUMA -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI gc.g1.TestG1NUMATouchRegions + * @run main/othervm -XX:+UseG1GC -Xbootclasspath/a:. -XX:+UseNUMA + * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI + * gc.g1.numa.TestG1NUMATouchRegions */ import java.util.LinkedList; @@ -179,7 +181,7 @@ return; } - ProcessBuilder pb_enabled = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb_enabled = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xbootclasspath/a:.", "-Xlog:pagesize,gc+heap+region=trace", "-XX:+UseG1GC", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/logging/TestDeprecatedPrintFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestDeprecatedPrintFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/logging/TestDeprecatedPrintFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestDeprecatedPrintFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ public class TestDeprecatedPrintFlags { public static void testPrintGC() throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+PrintGC", DoGC.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+PrintGC", DoGC.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldContain("-XX:+PrintGC is deprecated. Will use -Xlog:gc instead."); output.shouldNotContain("PrintGCDetails"); @@ -52,7 +52,7 @@ } public static void testPrintGCDetails() throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+PrintGCDetails", DoGC.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+PrintGCDetails", DoGC.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldContain("-XX:+PrintGCDetails is deprecated. Will use -Xlog:gc* instead."); output.shouldNotContain("PrintGC is deprecated"); @@ -63,7 +63,7 @@ public static void testXloggc() throws Exception { String fileName = "gc-test.log"; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xloggc:" + fileName, DoGC.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-Xloggc:" + fileName, DoGC.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldContain("-Xloggc is deprecated. Will use -Xlog:gc:gc-test.log instead."); output.shouldNotContain("PrintGCDetails"); @@ -80,7 +80,7 @@ public static void testXloggcWithPrintGCDetails() throws Exception { String fileName = "gc-test.log"; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+PrintGCDetails", "-Xloggc:" + fileName, DoGC.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+PrintGCDetails", "-Xloggc:" + fileName, DoGC.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldContain("-XX:+PrintGCDetails is deprecated. Will use -Xlog:gc* instead."); output.shouldContain("-Xloggc is deprecated. Will use -Xlog:gc:gc-test.log instead."); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/logging/TestGCId.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestGCId.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/logging/TestGCId.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestGCId.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -74,7 +74,7 @@ private static void testGCId(String gcFlag) throws Exception { ProcessBuilder pb_default = - ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+" + gcFlag, "-Xlog:gc", "-Xmx10M", GCTest.class.getName()); + ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+" + gcFlag, "-Xlog:gc", "-Xmx10M", GCTest.class.getName()); verifyContainsGCIDs(new OutputAnalyzer(pb_default.start())); } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, Google and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -95,7 +95,7 @@ String testSrc= "-Dtest.src=" + System.getProperty("test.src", "."); ProcessBuilder pb = - ProcessTools.createTestJvm( + ProcessTools.createTestJavaProcessBuilder( "-Xlog:gc*", "-Xbootclasspath/a:.", "-XX:+UnlockDiagnosticVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/logging/TestPrintReferences.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestPrintReferences.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/logging/TestPrintReferences.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/logging/TestPrintReferences.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -68,10 +68,10 @@ } public static void testRefs() throws Exception { - ProcessBuilder pb_enabled = ProcessTools.createJavaProcessBuilder("-Xlog:gc+ref+phases=debug", - "-XX:+UseG1GC", - "-Xmx32M", - GCTest.class.getName()); + ProcessBuilder pb_enabled = ProcessTools.createLimitedTestJavaProcessBuilder("-Xlog:gc+ref+phases=debug", + "-XX:+UseG1GC", + "-Xmx32M", + GCTest.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb_enabled.start()); checkRefsLogFormat(output); @@ -94,13 +94,13 @@ } public static void testPhases(boolean parallelRefProcEnabled) throws Exception { - ProcessBuilder pb_enabled = ProcessTools.createJavaProcessBuilder("-Xlog:gc+phases+ref=debug", - "-XX:+UseG1GC", - "-Xmx32M", - "-XX:" + (parallelRefProcEnabled ? "+" : "-") + "ParallelRefProcEnabled", - "-XX:-UseDynamicNumberOfGCThreads", - "-XX:ParallelGCThreads=2", - GCTest.class.getName()); + ProcessBuilder pb_enabled = ProcessTools.createLimitedTestJavaProcessBuilder("-Xlog:gc+phases+ref=debug", + "-XX:+UseG1GC", + "-Xmx32M", + "-XX:" + (parallelRefProcEnabled ? "+" : "-") + "ParallelRefProcEnabled", + "-XX:-UseDynamicNumberOfGCThreads", + "-XX:ParallelGCThreads=2", + GCTest.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb_enabled.start()); checkLogFormat(output, parallelRefProcEnabled); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestMetaspaceMemoryPool.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestMetaspaceMemoryPool.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestMetaspaceMemoryPool.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestMetaspaceMemoryPool.java 2025-01-04 20:25:18.000000000 +0000 @@ -37,11 +37,12 @@ * @library / * @modules java.base/jdk.internal.misc * java.management - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops gc.metaspace.TestMetaspaceMemoryPool - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops -XX:MaxMetaspaceSize=60m gc.metaspace.TestMetaspaceMemoryPool - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers gc.metaspace.TestMetaspaceMemoryPool - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:CompressedClassSpaceSize=60m gc.metaspace.TestMetaspaceMemoryPool + * @run main/othervm -XX:-UseCompressedOops gc.metaspace.TestMetaspaceMemoryPool + * @run main/othervm -XX:-UseCompressedOops -XX:MaxMetaspaceSize=60m gc.metaspace.TestMetaspaceMemoryPool + * @run main/othervm -XX:+UseCompressedOops -XX:+UseCompressedClassPointers gc.metaspace.TestMetaspaceMemoryPool + * @run main/othervm -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:CompressedClassSpaceSize=60m gc.metaspace.TestMetaspaceMemoryPool */ + public class TestMetaspaceMemoryPool { public static void main(String[] args) { verifyThatMetaspaceMemoryManagerExists(); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestMetaspacePerfCounters.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestMetaspacePerfCounters.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestMetaspacePerfCounters.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestMetaspacePerfCounters.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,9 +37,10 @@ import gc.testlibrary.PerfCounter; import gc.testlibrary.PerfCounters; -/* @test TestMetaspacePerfCountersSerial +/* @test id=Serial-64 * @bug 8014659 * @requires vm.gc.Serial + * @requires vm.bits == "64" * @library /test/lib / * @summary Tests that performance counters for metaspace and compressed class * space exists and works. @@ -47,13 +48,14 @@ * java.compiler * java.management/sun.management * jdk.internal.jvmstat/sun.jvmstat.monitor - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UsePerfData -XX:+UseSerialGC gc.metaspace.TestMetaspacePerfCounters - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UsePerfData -XX:+UseSerialGC gc.metaspace.TestMetaspacePerfCounters + * @run main/othervm -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UsePerfData -XX:+UseSerialGC gc.metaspace.TestMetaspacePerfCounters + * @run main/othervm -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UsePerfData -XX:+UseSerialGC gc.metaspace.TestMetaspacePerfCounters */ -/* @test TestMetaspacePerfCountersParallel +/* @test id=Parallel-64 * @bug 8014659 * @requires vm.gc.Parallel + * @requires vm.bits == "64" * @library /test/lib / * @summary Tests that performance counters for metaspace and compressed class * space exists and works. @@ -61,13 +63,14 @@ * java.compiler * java.management/sun.management * jdk.internal.jvmstat/sun.jvmstat.monitor - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UsePerfData -XX:+UseParallelGC gc.metaspace.TestMetaspacePerfCounters - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UsePerfData -XX:+UseParallelGC gc.metaspace.TestMetaspacePerfCounters + * @run main/othervm -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UsePerfData -XX:+UseParallelGC gc.metaspace.TestMetaspacePerfCounters + * @run main/othervm -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UsePerfData -XX:+UseParallelGC gc.metaspace.TestMetaspacePerfCounters */ -/* @test TestMetaspacePerfCountersG1 +/* @test id=G1-64 * @bug 8014659 * @requires vm.gc.G1 + * @requires vm.bits == "64" * @library /test/lib / * @summary Tests that performance counters for metaspace and compressed class * space exists and works. @@ -75,13 +78,14 @@ * java.compiler * java.management/sun.management * jdk.internal.jvmstat/sun.jvmstat.monitor - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UsePerfData -XX:+UseG1GC gc.metaspace.TestMetaspacePerfCounters - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UsePerfData -XX:+UseG1GC gc.metaspace.TestMetaspacePerfCounters + * @run main/othervm -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UsePerfData -XX:+UseG1GC gc.metaspace.TestMetaspacePerfCounters + * @run main/othervm -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UsePerfData -XX:+UseG1GC gc.metaspace.TestMetaspacePerfCounters */ -/* @test TestMetaspacePerfCountersShenandoah +/* @test id=Shenandoah-64 * @bug 8014659 * @requires vm.gc.Shenandoah + * @requires vm.bits == "64" * @library /test/lib / * @summary Tests that performance counters for metaspace and compressed class * space exists and works. @@ -89,9 +93,96 @@ * java.compiler * java.management/sun.management * jdk.internal.jvmstat/sun.jvmstat.monitor - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UsePerfData -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC gc.metaspace.TestMetaspacePerfCounters - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UsePerfData -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC gc.metaspace.TestMetaspacePerfCounters + * @run main/othervm -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UsePerfData -XX:+UseShenandoahGC gc.metaspace.TestMetaspacePerfCounters + * @run main/othervm -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UsePerfData -XX:+UseShenandoahGC gc.metaspace.TestMetaspacePerfCounters */ + +/* @test id=Epsilon-64 + * @bug 8014659 + * @requires vm.gc.Epsilon + * @requires vm.bits == "64" + * @library /test/lib / + * @summary Tests that performance counters for metaspace and compressed class + * space exists and works. + * @modules java.base/jdk.internal.misc + * java.compiler + * java.management/sun.management + * jdk.internal.jvmstat/sun.jvmstat.monitor + * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UsePerfData -XX:+UseEpsilonGC gc.metaspace.TestMetaspacePerfCounters + * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UsePerfData -XX:+UseEpsilonGC gc.metaspace.TestMetaspacePerfCounters + */ + +/* @test id=Serial-32 + * @bug 8014659 + * @requires vm.gc.Serial + * @requires vm.bits == "32" + * @library /test/lib / + * @summary Tests that performance counters for metaspace and compressed class + * space exists and works. + * @modules java.base/jdk.internal.misc + * java.compiler + * java.management/sun.management + * jdk.internal.jvmstat/sun.jvmstat.monitor + * @run main/othervm -XX:+UsePerfData -XX:+UseSerialGC gc.metaspace.TestMetaspacePerfCounters + */ + +/* @test id=Parallel-32 + * @bug 8014659 + * @requires vm.gc.Parallel + * @requires vm.bits == "32" + * @library /test/lib / + * @summary Tests that performance counters for metaspace and compressed class + * space exists and works. + * @modules java.base/jdk.internal.misc + * java.compiler + * java.management/sun.management + * jdk.internal.jvmstat/sun.jvmstat.monitor + * @run main/othervm -XX:+UsePerfData -XX:+UseParallelGC gc.metaspace.TestMetaspacePerfCounters + */ + +/* @test id=G1-32 + * @bug 8014659 + * @requires vm.gc.G1 + * @requires vm.bits == "32" + * @library /test/lib / + * @summary Tests that performance counters for metaspace and compressed class + * space exists and works. + * @modules java.base/jdk.internal.misc + * java.compiler + * java.management/sun.management + * jdk.internal.jvmstat/sun.jvmstat.monitor + * @run main/othervm -XX:+UsePerfData -XX:+UseG1GC gc.metaspace.TestMetaspacePerfCounters + */ + +/* @test id=Shenandoah-32 + * @bug 8014659 + * @requires vm.gc.Shenandoah + * @requires vm.bits == "32" + * @library /test/lib / + * @summary Tests that performance counters for metaspace and compressed class + * space exists and works. + * @modules java.base/jdk.internal.misc + * java.compiler + * java.management/sun.management + * jdk.internal.jvmstat/sun.jvmstat.monitor + * @run main/othervm -XX:+UsePerfData -XX:+UseShenandoahGC gc.metaspace.TestMetaspacePerfCounters + */ + + +/* @test id=Epsilon-32 + * @bug 8014659 + * @requires vm.gc.Epsilon + * @requires vm.bits == "32" + * @library /test/lib / + * @summary Tests that performance counters for metaspace and compressed class + * space exists and works. + * @modules java.base/jdk.internal.misc + * java.compiler + * java.management/sun.management + * jdk.internal.jvmstat/sun.jvmstat.monitor + * @run main/othervm -XX:+UsePerfData -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC gc.metaspace.TestMetaspacePerfCounters + */ + public class TestMetaspacePerfCounters { public static Class fooClass = null; private static final String[] counterNames = {"minCapacity", "maxCapacity", "capacity", "used"}; diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestMetaspaceSizeFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestMetaspaceSizeFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestMetaspaceSizeFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestMetaspaceSizeFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -84,7 +84,7 @@ } private static OutputAnalyzer run(long maxMetaspaceSize, long metaspaceSize) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:MaxMetaspaceSize=" + maxMetaspaceSize, "-XX:MetaspaceSize=" + metaspaceSize, "-XX:-UseLargePages", // Prevent us from using 2GB large pages on solaris + sparc. diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestPerfCountersAndMemoryPools.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestPerfCountersAndMemoryPools.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestPerfCountersAndMemoryPools.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestPerfCountersAndMemoryPools.java 2025-01-04 20:25:18.000000000 +0000 @@ -34,13 +34,27 @@ * @bug 8023476 * @library /test/lib / * @requires vm.gc.Serial + * @requires vm.bits == "64" * @summary Tests that a MemoryPoolMXBeans and PerfCounters for metaspace * report the same data. * @modules java.base/jdk.internal.misc * java.management * jdk.internal.jvmstat/sun.jvmstat.monitor - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UseSerialGC -XX:+UsePerfData -Xint gc.metaspace.TestPerfCountersAndMemoryPools - * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UseSerialGC -XX:+UsePerfData -Xint gc.metaspace.TestPerfCountersAndMemoryPools + * @run main/othervm -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UseSerialGC -XX:+UsePerfData -Xint gc.metaspace.TestPerfCountersAndMemoryPools + * @run main/othervm -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UseSerialGC -XX:+UsePerfData -Xint gc.metaspace.TestPerfCountersAndMemoryPools + */ + +/* @test TestPerfCountersAndMemoryPools + * @bug 8023476 + * @library /test/lib / + * @requires vm.gc.Serial + * @requires vm.bits == "32" + * @summary Tests that a MemoryPoolMXBeans and PerfCounters for metaspace + * report the same data. + * @modules java.base/jdk.internal.misc + * java.management + * jdk.internal.jvmstat/sun.jvmstat.monitor + * @run main/othervm -Xlog:class+load,class+unload=trace -XX:+UseSerialGC -XX:+UsePerfData -Xint gc.metaspace.TestPerfCountersAndMemoryPools */ public class TestPerfCountersAndMemoryPools { public static void main(String[] args) throws Exception { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestSizeTransitions.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestSizeTransitions.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/metaspace/TestSizeTransitions.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/metaspace/TestSizeTransitions.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2019, Twitter, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -119,7 +119,7 @@ System.out.println(" " + a); } - final ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(jvmArgs); + final ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(jvmArgs); final OutputAnalyzer output = new OutputAnalyzer(pb.start()); System.out.println(output.getStdout()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/serial/HeapChangeLogging.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/serial/HeapChangeLogging.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/serial/HeapChangeLogging.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/serial/HeapChangeLogging.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,7 @@ public class HeapChangeLogging { public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xmx128m", "-Xmn100m", "-XX:+UseSerialGC", "-Xlog:gc", HeapFiller.class.getName()); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-Xmx128m", "-Xmn100m", "-XX:+UseSerialGC", "-Xlog:gc", HeapFiller.class.getName()); OutputAnalyzer output = new OutputAnalyzer(pb.start()); String stdout = output.getStdout(); System.out.println(stdout); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/TestEvilSyncBug.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestEvilSyncBug.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/TestEvilSyncBug.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestEvilSyncBug.java 2025-01-04 20:25:18.000000000 +0000 @@ -56,7 +56,7 @@ for (int c = 0; c < NUM_RUNS; c++) { Callable task = () -> { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xms128m", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-Xms128m", "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UnlockDiagnosticVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/TestObjItrWithHeapDump.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestObjItrWithHeapDump.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/TestObjItrWithHeapDump.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestObjItrWithHeapDump.java 2025-01-04 20:25:18.000000000 +0000 @@ -41,7 +41,7 @@ String[] cmds = Arrays.copyOf(args, args.length + 2); cmds[args.length] = TestObjItrWithHeapDump.class.getName(); cmds[args.length + 1] = "test"; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmds); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmds); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/TestPeriodicGC.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestPeriodicGC.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/TestPeriodicGC.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestPeriodicGC.java 2025-01-04 20:25:18.000000000 +0000 @@ -42,7 +42,7 @@ String[] cmds = Arrays.copyOf(args, args.length + 2); cmds[args.length] = TestPeriodicGC.class.getName(); cmds[args.length + 1] = "test"; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmds); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmds); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/TestVerifyJCStress.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestVerifyJCStress.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/TestVerifyJCStress.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/TestVerifyJCStress.java 2025-01-04 20:25:18.000000000 +0000 @@ -41,20 +41,54 @@ */ /* + * @test id=default-debug + * @summary Tests that we pass at least one jcstress-like test with all verification turned on + * @requires vm.gc.Shenandoah + * @requires vm.debug + * @modules java.base/jdk.internal.misc + * java.management + * + * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions + * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive + * -XX:+ShenandoahVerify -XX:+ShenandoahVerifyOptoBarriers + * TestVerifyJCStress + * + * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions + * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact + * -XX:+ShenandoahVerify -XX:+ShenandoahVerifyOptoBarriers + * TestVerifyJCStress + */ + +/* * @test id=default * @summary Tests that we pass at least one jcstress-like test with all verification turned on * @requires vm.gc.Shenandoah + * @requires !vm.debug * @modules java.base/jdk.internal.misc * java.management * * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive - * -XX:+ShenandoahVerify -XX:+IgnoreUnrecognizedVMOptions -XX:+ShenandoahVerifyOptoBarriers + * -XX:+ShenandoahVerify * TestVerifyJCStress * * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact - * -XX:+ShenandoahVerify -XX:+IgnoreUnrecognizedVMOptions -XX:+ShenandoahVerifyOptoBarriers + * -XX:+ShenandoahVerify + * TestVerifyJCStress + */ + +/* + * @test id=iu-debug + * @summary Tests that we pass at least one jcstress-like test with all verification turned on + * @requires vm.gc.Shenandoah + * @requires vm.debug + * @modules java.base/jdk.internal.misc + * java.management + * + * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions + * -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu + * -XX:+ShenandoahVerify -XX:+ShenandoahVerifyOptoBarriers * TestVerifyJCStress */ @@ -62,20 +96,30 @@ * @test id=iu * @summary Tests that we pass at least one jcstress-like test with all verification turned on * @requires vm.gc.Shenandoah + * @requires !vm.debug * @modules java.base/jdk.internal.misc * java.management * * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions * -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu - * -XX:+ShenandoahVerify -XX:+IgnoreUnrecognizedVMOptions -XX:+ShenandoahVerifyOptoBarriers + * -XX:+ShenandoahVerify * TestVerifyJCStress + */ + +/* + * @test id=iu-c1 + * @summary Tests that we pass at least one jcstress-like test with all verification turned on + * @requires vm.gc.Shenandoah + * @modules java.base/jdk.internal.misc + * java.management * * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions * -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu - * -XX:+ShenandoahVerify -XX:+IgnoreUnrecognizedVMOptions -XX:TieredStopAtLevel=1 + * -XX:+ShenandoahVerify -XX:TieredStopAtLevel=1 * TestVerifyJCStress */ + import java.util.*; import java.util.concurrent.*; import java.util.concurrent.locks.*; diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/compiler/TestLoadBypassesNullCheck.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/compiler/TestLoadBypassesNullCheck.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/compiler/TestLoadBypassesNullCheck.java 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/compiler/TestLoadBypassesNullCheck.java 2025-01-04 20:25:18.000000000 +0000 @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2024, Red Hat, Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8342496 + * @summary C2/Shenandoah: SEGV in compiled code when running jcstress + * @requires vm.flavor == "server" + * @requires vm.gc.Shenandoah + * + * @run main/othervm -XX:-TieredCompilation -XX:-UseOnStackReplacement -XX:-BackgroundCompilation + * -XX:+UseShenandoahGC -XX:LoopMaxUnroll=0 + * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM -XX:+StressLCM -XX:StressSeed=270847015 + * TestLoadBypassesNullCheck + * @run main/othervm -XX:-TieredCompilation -XX:-UseOnStackReplacement -XX:-BackgroundCompilation + * -XX:+UseShenandoahGC -XX:LoopMaxUnroll=0 + * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM -XX:+StressLCM + * TestLoadBypassesNullCheck + * + */ + +public class TestLoadBypassesNullCheck { + private static A fieldA = new A(); + private static Object fieldO = new Object(); + private static volatile int volatileField; + + public static void main(String[] args) { + for (int i = 0; i < 20_000; i++) { + test1(); + } + fieldA = null; + try { + test1(); + } catch (NullPointerException npe) { + } + } + + private static boolean test1() { + for (int i = 0; i < 1000; i++) { + volatileField = 42; + A a = fieldA; + Object o = a.fieldO; + if (o == fieldO) { + return true; + } + } + return false; + } + + private static class A { + public Object fieldO; + } +} diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargeObj.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargeObj.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargeObj.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargeObj.java 2025-01-04 20:25:18.000000000 +0000 @@ -55,7 +55,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx16m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", @@ -68,7 +68,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx1g", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargerThanHeap.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargerThanHeap.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargerThanHeap.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargerThanHeap.java 2025-01-04 20:25:18.000000000 +0000 @@ -50,7 +50,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx16m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", @@ -63,7 +63,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx1g", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocSmallObj.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocSmallObj.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocSmallObj.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestAllocSmallObj.java 2025-01-04 20:25:18.000000000 +0000 @@ -54,7 +54,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx16m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", @@ -67,7 +67,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx1g", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java 2025-01-04 20:25:18.000000000 +0000 @@ -99,7 +99,7 @@ pbArgs.add(TestClassLoaderLeak.class.getName()); pbArgs.add("test"); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(pbArgs.toArray(new String[0])); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(pbArgs.toArray(new String[0])); OutputAnalyzer analyzer = new OutputAnalyzer(pb.start()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestThreadFailure.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestThreadFailure.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/oom/TestThreadFailure.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/oom/TestThreadFailure.java 2025-01-04 20:25:18.000000000 +0000 @@ -62,7 +62,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx32m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestArgumentRanges.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestArgumentRanges.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestArgumentRanges.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestArgumentRanges.java 2025-01-04 20:25:18.000000000 +0000 @@ -46,7 +46,7 @@ private static void testHeuristics() throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", @@ -57,7 +57,7 @@ output.shouldHaveExitValue(0); } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", @@ -68,7 +68,7 @@ output.shouldHaveExitValue(0); } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", @@ -83,7 +83,7 @@ private static void testRange(String option, int min, int max) throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", @@ -94,7 +94,7 @@ output.shouldHaveExitValue(1); } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", @@ -105,7 +105,7 @@ output.shouldHaveExitValue(0); } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", @@ -116,7 +116,7 @@ output.shouldHaveExitValue(1); } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestClassUnloadingArguments.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestClassUnloadingArguments.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestClassUnloadingArguments.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestClassUnloadingArguments.java 2025-01-04 20:25:18.000000000 +0000 @@ -43,7 +43,7 @@ cmds[args.length] = "-Xmx128m"; cmds[args.length + 1] = "-XX:+PrintFlagsFinal"; cmds[args.length + 2] = "-version"; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmds); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmds); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldContain("ClassUnloading"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGC.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGC.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGC.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGC.java 2025-01-04 20:25:18.000000000 +0000 @@ -60,7 +60,7 @@ }; { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", @@ -77,7 +77,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", @@ -95,7 +95,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", @@ -113,7 +113,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", @@ -131,7 +131,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGCNoConcurrent.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGCNoConcurrent.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGCNoConcurrent.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGCNoConcurrent.java 2025-01-04 20:25:18.000000000 +0000 @@ -60,7 +60,7 @@ }; for (String opt : opts) { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestHeuristicsUnlock.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestHeuristicsUnlock.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestHeuristicsUnlock.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestHeuristicsUnlock.java 2025-01-04 20:25:18.000000000 +0000 @@ -52,7 +52,7 @@ private static void testWith(String h, Mode mode) throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:-UnlockDiagnosticVMOptions", "-XX:-UnlockExperimentalVMOptions", @@ -73,7 +73,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:-UnlockExperimentalVMOptions", @@ -94,7 +94,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:-UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestHumongousThresholdArgs.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestHumongousThresholdArgs.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestHumongousThresholdArgs.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestHumongousThresholdArgs.java 2025-01-04 20:25:18.000000000 +0000 @@ -38,7 +38,7 @@ public class TestHumongousThresholdArgs { public static void main(String[] args) throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", @@ -51,7 +51,7 @@ int[] invalid = new int[] {-100, -1, 0, 101, 1000}; for (int v : valid) { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", @@ -62,7 +62,7 @@ } for (int v : invalid) { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestLoopMiningArguments.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestLoopMiningArguments.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestLoopMiningArguments.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestLoopMiningArguments.java 2025-01-04 20:25:18.000000000 +0000 @@ -44,7 +44,7 @@ cmds[args.length] = "-Xmx128m"; cmds[args.length + 1] = "-XX:+PrintFlagsFinal"; cmds[args.length + 2] = "-version"; - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmds); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(cmds); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldContain("UseCountedLoopSafepoints"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestModeUnlock.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestModeUnlock.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestModeUnlock.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestModeUnlock.java 2025-01-04 20:25:18.000000000 +0000 @@ -51,7 +51,7 @@ private static void testWith(String h, Mode mode) throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:-UnlockDiagnosticVMOptions", "-XX:-UnlockExperimentalVMOptions", @@ -72,7 +72,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:-UnlockExperimentalVMOptions", @@ -93,7 +93,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:-UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestRegionSizeArgs.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestRegionSizeArgs.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestRegionSizeArgs.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestRegionSizeArgs.java 2025-01-04 20:25:18.000000000 +0000 @@ -45,7 +45,7 @@ private static void testInvalidRegionSizes() throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms4m", "-Xmx1g", @@ -55,7 +55,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms8m", "-Xmx1g", @@ -65,7 +65,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", @@ -77,7 +77,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", @@ -88,7 +88,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", @@ -100,7 +100,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", @@ -111,7 +111,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms1g", "-Xmx1g", @@ -122,7 +122,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms1g", "-Xmx1g", @@ -134,7 +134,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms1g", "-Xmx1g", @@ -145,7 +145,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms1g", "-Xmx1g", @@ -160,7 +160,7 @@ private static void testMinRegionSize() throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", @@ -172,7 +172,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", @@ -184,7 +184,7 @@ output.shouldHaveExitValue(1); } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", @@ -196,7 +196,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", @@ -211,7 +211,7 @@ private static void testMaxRegionSize() throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", @@ -223,7 +223,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms100m", "-Xmx1g", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestSelectiveBarrierFlags.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestSelectiveBarrierFlags.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestSelectiveBarrierFlags.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestSelectiveBarrierFlags.java 2025-01-04 20:25:18.000000000 +0000 @@ -29,7 +29,15 @@ * @library /test/lib * @run driver TestSelectiveBarrierFlags -Xint * @run driver TestSelectiveBarrierFlags -Xbatch -XX:CompileThreshold=100 -XX:TieredStopAtLevel=1 - * @run driver TestSelectiveBarrierFlags -Xbatch -XX:CompileThreshold=100 -XX:-TieredCompilation -XX:+IgnoreUnrecognizedVMOptions -XX:+ShenandoahVerifyOptoBarriers + */ + +/* @test + * @summary Test selective barrier enabling works, by aggressively compiling HelloWorld with combinations + * of barrier flags + * @requires vm.gc.Shenandoah + * @requires vm.debug + * @library /test/lib + * @run driver TestSelectiveBarrierFlags -Xbatch -XX:CompileThreshold=100 -XX:-TieredCompilation -XX:+ShenandoahVerifyOptoBarriers */ import java.util.*; @@ -83,7 +91,7 @@ pool.submit(() -> { try { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(conf.toArray(new String[0])); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(conf.toArray(new String[0])); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); } catch (Exception e) { diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestSoftMaxHeapSize.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestSoftMaxHeapSize.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestSoftMaxHeapSize.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestSoftMaxHeapSize.java 2025-01-04 20:25:18.000000000 +0000 @@ -38,7 +38,7 @@ public class TestSoftMaxHeapSize { public static void main(String[] args) throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms4m", "-Xmx128m", @@ -49,7 +49,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms4m", "-Xmx128m", @@ -60,7 +60,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-Xms4m", "-Xmx128m", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCounts.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCounts.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCounts.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCounts.java 2025-01-04 20:25:18.000000000 +0000 @@ -45,7 +45,7 @@ } private static void testWith(int conc, int par) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCountsOverride.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCountsOverride.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCountsOverride.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestThreadCountsOverride.java 2025-01-04 20:25:18.000000000 +0000 @@ -38,7 +38,7 @@ public class TestThreadCountsOverride { public static void main(String[] args) throws Exception { { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", @@ -53,7 +53,7 @@ } { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierDisable.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierDisable.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierDisable.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierDisable.java 2025-01-04 20:25:18.000000000 +0000 @@ -65,7 +65,7 @@ private static void shouldFailAll(String h, String[] barriers) throws Exception { for (String b : barriers) { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", @@ -83,7 +83,7 @@ private static void shouldPassAll(String h, String[] barriers) throws Exception { for (String b : barriers) { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierEnable.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierEnable.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierEnable.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/shenandoah/options/TestWrongBarrierEnable.java 2025-01-04 20:25:18.000000000 +0000 @@ -55,7 +55,7 @@ private static void shouldFailAll(String h, String[] barriers) throws Exception { for (String b : barriers) { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", @@ -73,7 +73,7 @@ private static void shouldPassAll(String h, String[] barriers) throws Exception { for (String b : barriers) { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-Xmx128m", "-XX:+UnlockDiagnosticVMOptions", "-XX:+UnlockExperimentalVMOptions", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/startup_warnings/TestG1.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestG1.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/startup_warnings/TestG1.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestG1.java 2025-01-04 20:25:18.000000000 +0000 @@ -40,7 +40,7 @@ public class TestG1 { public static void main(String args[]) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC", "-version"); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseG1GC", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldNotContain("deprecated"); output.shouldNotContain("error"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/startup_warnings/TestParallelGC.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestParallelGC.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/startup_warnings/TestParallelGC.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestParallelGC.java 2025-01-04 20:25:18.000000000 +0000 @@ -41,7 +41,7 @@ public class TestParallelGC { public static void main(String args[]) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseParallelGC", "-version"); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseParallelGC", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldNotContain("deprecated"); output.shouldNotContain("error"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/startup_warnings/TestSerialGC.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestSerialGC.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/startup_warnings/TestSerialGC.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestSerialGC.java 2025-01-04 20:25:18.000000000 +0000 @@ -40,7 +40,7 @@ public class TestSerialGC { public static void main(String args[]) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseSerialGC", "-version"); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UseSerialGC", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldNotContain("deprecated"); output.shouldNotContain("error"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/startup_warnings/TestShenandoah.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestShenandoah.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/startup_warnings/TestShenandoah.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/startup_warnings/TestShenandoah.java 2025-01-04 20:25:18.000000000 +0000 @@ -40,7 +40,7 @@ public class TestShenandoah { public static void main(String args[]) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-version"); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder("-XX:+UnlockExperimentalVMOptions", "-XX:+UseShenandoahGC", "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldNotContain("deprecated"); output.shouldNotContain("error"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,7 @@ "-XX:+PrintNMTStatistics" )); baseargs.addAll(Arrays.asList(args)); baseargs.add(GCTest.class.getName()); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(baseargs); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(baseargs); verifySymbolMemoryUsageNotTooHigh(new OutputAnalyzer(pb.start())); } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/stress/TestStressG1Humongous.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stress/TestStressG1Humongous.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/stress/TestStressG1Humongous.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stress/TestStressG1Humongous.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -101,7 +101,7 @@ "-Dregionsize=" + regionSize, TestStressG1HumongousImpl.class.getName() ); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(options); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(options); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); } diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/stress/TestStressG1Uncommit.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stress/TestStressG1Uncommit.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/stress/TestStressG1Uncommit.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stress/TestStressG1Uncommit.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,7 +59,7 @@ "-XX:+UseG1GC", StressUncommit.class.getName() ); - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(options); + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(options); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); output.shouldMatch("Uncommit regions"); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java 2025-01-04 20:25:18.000000000 +0000 @@ -277,7 +277,7 @@ args.addAll(Arrays.asList(defaultArgs)); args.addAll(Arrays.asList(extraArgs)); - ProcessBuilder pb = ProcessTools.createTestJvm(args); + ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(args); OutputAnalyzer output = new OutputAnalyzer(pb.start()); System.err.println(output.getStderr()); System.out.println(output.getStdout()); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/whitebox/TestWBGC.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/whitebox/TestWBGC.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/whitebox/TestWBGC.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/whitebox/TestWBGC.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,7 @@ public class TestWBGC { public static void main(String args[]) throws Exception { - ProcessBuilder pb = ProcessTools.createTestJvm( + ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder( "-Xbootclasspath/a:.", "-XX:+UnlockDiagnosticVMOptions", "-XX:+WhiteBoxAPI", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java 2025-01-04 20:25:18.000000000 +0000 @@ -41,7 +41,7 @@ final String heapBackingFile = "Heap Backing File: " + directory; final String failedToCreateFile = "Failed to create file " + directory; - ProcessTools.executeProcess(ProcessTools.createJavaProcessBuilder( + ProcessTools.executeProcess(ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseZGC", "-Xlog:gc*", "-Xms32M", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,14 +21,16 @@ * questions. */ +package gc.z; + /** * @test TestGarbageCollectorMXBean * @requires vm.gc.Z * @summary Test ZGC garbage collector MXBean * @modules java.management * @requires vm.compMode != "Xcomp" - * @run main/othervm -XX:+UseZGC -Xms256M -Xmx512M -Xlog:gc TestGarbageCollectorMXBean 256 512 - * @run main/othervm -XX:+UseZGC -Xms512M -Xmx512M -Xlog:gc TestGarbageCollectorMXBean 512 512 + * @run main/othervm -XX:+UseZGC -Xms256M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 256 512 + * @run main/othervm -XX:+UseZGC -Xms512M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 512 512 */ import java.lang.management.ManagementFactory; diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,13 +21,15 @@ * questions. */ +package gc.z; + /** * @test TestMemoryMXBean * @requires vm.gc.Z * @summary Test ZGC heap memory MXBean * @modules java.management - * @run main/othervm -XX:+UseZGC -Xms128M -Xmx256M -Xlog:gc* TestMemoryMXBean 128 256 - * @run main/othervm -XX:+UseZGC -Xms256M -Xmx256M -Xlog:gc* TestMemoryMXBean 256 256 + * @run main/othervm -XX:+UseZGC -Xms128M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 128 256 + * @run main/othervm -XX:+UseZGC -Xms256M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 256 256 */ import java.lang.management.ManagementFactory; diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,12 +21,14 @@ * questions. */ +package gc.z; + /** * @test TestMemoryManagerMXBean * @requires vm.gc.Z * @summary Test ZGC memory manager MXBean * @modules java.management - * @run main/othervm -XX:+UseZGC -Xmx128M TestMemoryManagerMXBean + * @run main/othervm -XX:+UseZGC -Xmx128M gc.z.TestMemoryManagerMXBean */ import java.lang.management.ManagementFactory; diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java 2025-01-04 20:25:18.000000000 +0000 @@ -68,7 +68,7 @@ } public static void main(String[] args) throws Exception { - ProcessTools.executeProcess(ProcessTools.createJavaProcessBuilder( + ProcessTools.executeProcess(ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseZGC", "-Xms128M", "-Xmx128M", diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestSmallHeap.java openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestSmallHeap.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/gc/z/TestSmallHeap.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/gc/z/TestSmallHeap.java 2025-01-04 20:25:18.000000000 +0000 @@ -53,7 +53,7 @@ public static void main(String[] args) throws Exception { for (var maxCapacity: args) { - ProcessTools.executeProcess(ProcessTools.createJavaProcessBuilder( + ProcessTools.executeProcess(ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseZGC", "-Xlog:gc,gc+init,gc+reloc,gc+heap", "-Xmx" + maxCapacity, diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/resourcehogs/serviceability/jvmti/GetObjectSizeOverflow.java openjdk-17-17.0.14+7/test/hotspot/jtreg/resourcehogs/serviceability/jvmti/GetObjectSizeOverflow.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/resourcehogs/serviceability/jvmti/GetObjectSizeOverflow.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/resourcehogs/serviceability/jvmti/GetObjectSizeOverflow.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,7 +56,7 @@ var jar = new ProcessBuilder(JDKToolFinder.getJDKTool("jar"), "cmf", "MANIFEST.MF", "agent.jar", "GetObjectSizeOverflowAgent.class"); new OutputAnalyzer(jar.start()).shouldHaveExitValue(0); - ProcessBuilder pt = ProcessTools.createTestJvm("-Xmx4000m", "-javaagent:agent.jar", "GetObjectSizeOverflowAgent"); + ProcessBuilder pt = ProcessTools.createTestJavaProcessBuilder("-Xmx4000m", "-javaagent:agent.jar", "GetObjectSizeOverflowAgent"); OutputAnalyzer output = new OutputAnalyzer(pt.start()); output.stdoutShouldContain("GetObjectSizeOverflow passed"); output.shouldHaveExitValue(0); diff -Nru openjdk-17-17.0.13+11/test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java --- openjdk-17-17.0.13+11/test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java 2024-10-10 14:01:59.000000000 +0000 +++ openjdk-17-17.0.14+7/test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java 2025-01-04 20:25:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,7 +35,7 @@ static final String OPTION="this_is_not_an_option"; public static void main(String[] args) throws Exception { - ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-