Version in base suite: 25.0.3+9-2~deb13u1 Base version: openjdk-25_25.0.3+9-2~deb13u1 Target version: openjdk-25_25.0.4+7-1~deb13u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/o/openjdk-25/openjdk-25_25.0.3+9-2~deb13u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/o/openjdk-25/openjdk-25_25.0.4+7-1~deb13u1.dsc .gitignore | 2 .jcheck/conf | 2 debian/changelog | 54 debian/control | 2 debian/control.in | 2 debian/copyright | 51 debian/man/jar.1 | 71 debian/man/jarsigner.1 | 278 debian/man/java.1 | 980 - debian/man/javac.1 | 425 debian/man/javadoc.1 | 366 debian/man/javap.1 | 24 debian/man/jcmd.1 | 552 debian/man/jconsole.1 | 14 debian/man/jdb.1 | 36 debian/man/jdeprscan.1 | 33 debian/man/jdeps.1 | 19 debian/man/jfr.1 | 52 debian/man/jhsdb.1 | 20 debian/man/jinfo.1 | 6 debian/man/jlink.1 | 134 debian/man/jmap.1 | 15 debian/man/jmod.1 | 47 debian/man/jnativescan.1 | 15 debian/man/jpackage.1 | 73 debian/man/jps.1 | 34 debian/man/jrunscript.1 | 14 debian/man/jshell.1 | 160 debian/man/jstack.1 | 8 debian/man/jstat.1 | 168 debian/man/jstatd.1 | 27 debian/man/jwebserver.1 | 14 debian/man/keytool.1 | 1105 - debian/man/rmiregistry.1 | 20 debian/man/serialver.1 | 4 debian/patches/jdk-8369817.diff | 30 debian/patches/jdk-8377035.diff | 72 debian/patches/jdk-8385738.diff | 160 debian/patches/jdk-8387580.diff | 38 debian/patches/jdk-8388170-proposed.diff | 304 debian/patches/series | 5 debian/rules | 17 debian/tests/problems.csv | 96 doc/building.html | 7 doc/building.md | 6 make/autoconf/basic_tools.m4 | 10 make/autoconf/flags-cflags.m4 | 5 make/autoconf/flags-ldflags.m4 | 7 make/autoconf/jdk-options.m4 | 15 make/autoconf/libraries.m4 | 8 make/conf/github-actions.conf | 20 make/conf/version-numbers.conf | 4 make/hotspot/lib/CompileGtest.gmk | 11 make/hotspot/lib/CompileJvm.gmk | 2 make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java | 58 make/modules/java.desktop/lib/AwtLibraries.gmk | 21 make/modules/jdk.jdwp.agent/Lib.gmk | 15 make/test/JtregNativeJdk.gmk | 7 src/hotspot/cpu/arm/arm_32.ad | 32 src/hotspot/cpu/arm/assembler_arm_32.hpp | 2 src/hotspot/cpu/arm/c1_CodeStubs_arm.cpp | 2 src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp | 8 src/hotspot/cpu/arm/interp_masm_arm.cpp | 4 src/hotspot/cpu/arm/register_arm.cpp | 30 src/hotspot/cpu/arm/register_arm.hpp | 543 src/hotspot/cpu/arm/sharedRuntime_arm.cpp | 10 src/hotspot/cpu/arm/vmreg_arm.cpp | 4 src/hotspot/cpu/arm/vmreg_arm.hpp | 8 src/hotspot/cpu/arm/vmreg_arm.inline.hpp | 8 src/hotspot/cpu/ppc/assembler_ppc.hpp | 7 src/hotspot/cpu/ppc/assembler_ppc.inline.hpp | 2 src/hotspot/cpu/ppc/disassembler_ppc.cpp | 3 src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_ppc.cpp | 4 src/hotspot/cpu/ppc/macroAssembler_ppc.cpp | 28 src/hotspot/cpu/ppc/macroAssembler_ppc.hpp | 10 src/hotspot/cpu/ppc/macroAssembler_ppc.inline.hpp | 13 src/hotspot/cpu/ppc/ppc.ad | 863 - src/hotspot/cpu/ppc/registerMap_ppc.cpp | 46 src/hotspot/cpu/ppc/registerMap_ppc.hpp | 8 src/hotspot/cpu/ppc/register_ppc.hpp | 6 src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp | 167 src/hotspot/cpu/ppc/vm_version_ppc.cpp | 3 src/hotspot/cpu/ppc/vmreg_ppc.cpp | 2 src/hotspot/cpu/ppc/vmreg_ppc.hpp | 14 src/hotspot/cpu/ppc/vmreg_ppc.inline.hpp | 4 src/hotspot/cpu/riscv/gc/shared/barrierSetAssembler_riscv.cpp | 16 src/hotspot/cpu/riscv/gc/shared/barrierSetNMethod_riscv.cpp | 26 src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.cpp | 2 src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.cpp | 2 src/hotspot/cpu/riscv/gc/z/z_riscv.ad | 4 src/hotspot/cpu/x86/vm_version_x86.cpp | 16 src/hotspot/cpu/x86/vm_version_x86.hpp | 9 src/hotspot/os/aix/os_aix.cpp | 39 src/hotspot/os/aix/os_aix.hpp | 8 src/hotspot/os/bsd/os_bsd.cpp | 57 src/hotspot/os/bsd/os_bsd.hpp | 8 src/hotspot/os/linux/cgroupSubsystem_linux.cpp | 12 src/hotspot/os/linux/cgroupUtil_linux.cpp | 2 src/hotspot/os/linux/os_linux.cpp | 107 src/hotspot/os/linux/os_linux.hpp | 8 src/hotspot/os/posix/os_posix.cpp | 8 src/hotspot/os/posix/perfMemory_posix.cpp | 5 src/hotspot/os/windows/os_windows.cpp | 85 src/hotspot/os/windows/os_windows.hpp | 30 src/hotspot/os_cpu/linux_arm/macroAssembler_linux_arm_32.cpp | 6 src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp | 101 src/hotspot/share/cds/aotArtifactFinder.cpp | 27 src/hotspot/share/cds/aotArtifactFinder.hpp | 6 src/hotspot/share/cds/aotClassLocation.cpp | 12 src/hotspot/share/cds/aotConstantPoolResolver.cpp | 55 src/hotspot/share/cds/aotConstantPoolResolver.hpp | 7 src/hotspot/share/cds/archiveBuilder.cpp | 9 src/hotspot/share/cds/archiveHeapWriter.cpp | 108 src/hotspot/share/cds/archiveHeapWriter.hpp | 40 src/hotspot/share/cds/filemap.cpp | 12 src/hotspot/share/cds/heapShared.cpp | 1 src/hotspot/share/cds/heapShared.hpp | 2 src/hotspot/share/classfile/classLoader.cpp | 4 src/hotspot/share/code/dependencies.cpp | 6 src/hotspot/share/code/dependencies.hpp | 4 src/hotspot/share/compiler/compilationMemoryStatistic.cpp | 6 src/hotspot/share/compiler/compileBroker.cpp | 4 src/hotspot/share/gc/g1/g1CollectedHeap.cpp | 3 src/hotspot/share/gc/shared/gcInitLogger.cpp | 4 src/hotspot/share/gc/shared/gcLogPrecious.cpp | 4 src/hotspot/share/gc/shared/gc_globals.hpp | 1 src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp | 37 src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp | 70 src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp | 1 src/hotspot/share/gc/shenandoah/heuristics/shenandoahGenerationalHeuristics.cpp | 74 src/hotspot/share/gc/shenandoah/heuristics/shenandoahGenerationalHeuristics.hpp | 3 src/hotspot/share/gc/shenandoah/heuristics/shenandoahGlobalHeuristics.cpp | 2 src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.cpp | 24 src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.hpp | 20 src/hotspot/share/gc/shenandoah/heuristics/shenandoahOldHeuristics.cpp | 31 src/hotspot/share/gc/shenandoah/heuristics/shenandoahOldHeuristics.hpp | 2 src/hotspot/share/gc/shenandoah/heuristics/shenandoahSpaceInfo.hpp | 4 src/hotspot/share/gc/shenandoah/heuristics/shenandoahYoungHeuristics.cpp | 2 src/hotspot/share/gc/shenandoah/mode/shenandoahPassiveMode.cpp | 6 src/hotspot/share/gc/shenandoah/shenandoahAgeCensus.cpp | 106 src/hotspot/share/gc/shenandoah/shenandoahAgeCensus.hpp | 20 src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp | 4 src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp | 5 src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp | 15 src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp | 14 src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.cpp | 35 src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.hpp | 23 src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.inline.hpp | 8 src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp | 4 src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp | 2 src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp | 50 src/hotspot/share/gc/shenandoah/shenandoahControlThread.hpp | 5 src/hotspot/share/gc/shenandoah/shenandoahController.hpp | 7 src/hotspot/share/gc/shenandoah/shenandoahDegeneratedGC.cpp | 13 src/hotspot/share/gc/shenandoah/shenandoahEvacInfo.hpp | 120 src/hotspot/share/gc/shenandoah/shenandoahEvacTracker.cpp | 124 src/hotspot/share/gc/shenandoah/shenandoahEvacTracker.hpp | 63 src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp | 18 src/hotspot/share/gc/shenandoah/shenandoahGeneration.cpp | 47 src/hotspot/share/gc/shenandoah/shenandoahGeneration.hpp | 9 src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.cpp | 60 src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.hpp | 6 src/hotspot/share/gc/shenandoah/shenandoahGenerationalEvacuationTask.cpp | 8 src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp | 67 src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.hpp | 6 src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp | 102 src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp | 29 src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp | 31 src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp | 22 src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp | 13 src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp | 17 src/hotspot/share/gc/shenandoah/shenandoahHeapRegionClosures.hpp | 8 src/hotspot/share/gc/shenandoah/shenandoahMark.inline.hpp | 21 src/hotspot/share/gc/shenandoah/shenandoahMarkBitMap.inline.hpp | 14 src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.cpp | 8 src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.inline.hpp | 4 src/hotspot/share/gc/shenandoah/shenandoahMetrics.cpp | 79 src/hotspot/share/gc/shenandoah/shenandoahMetrics.hpp | 18 src/hotspot/share/gc/shenandoah/shenandoahOldGC.cpp | 6 src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.cpp | 5 src/hotspot/share/gc/shenandoah/shenandoahScanRemembered.cpp | 22 src/hotspot/share/gc/shenandoah/shenandoahScanRemembered.inline.hpp | 6 src/hotspot/share/gc/shenandoah/shenandoahSharedVariables.hpp | 6 src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.cpp | 5 src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp | 14 src/hotspot/share/gc/shenandoah/shenandoahTrace.cpp | 36 src/hotspot/share/gc/shenandoah/shenandoahTrace.hpp | 10 src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp | 46 src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp | 49 src/hotspot/share/gc/z/zLargePages.cpp | 3 src/hotspot/share/include/jvm.h | 3 src/hotspot/share/jfr/jni/jfrJniMethod.cpp | 9 src/hotspot/share/jfr/leakprofiler/chains/dfsClosure.cpp | 23 src/hotspot/share/jfr/leakprofiler/chains/dfsClosure.hpp | 3 src/hotspot/share/jfr/leakprofiler/leakProfiler.cpp | 11 src/hotspot/share/jfr/periodic/jfrPeriodic.cpp | 17 src/hotspot/share/oops/cpCache.cpp | 31 src/hotspot/share/opto/arraycopynode.cpp | 9 src/hotspot/share/opto/callGenerator.cpp | 3 src/hotspot/share/opto/callnode.cpp | 1 src/hotspot/share/opto/callnode.hpp | 7 src/hotspot/share/opto/cfgnode.cpp | 4 src/hotspot/share/opto/compile.cpp | 4 src/hotspot/share/opto/compile.hpp | 9 src/hotspot/share/opto/escape.cpp | 8 src/hotspot/share/opto/macro.cpp | 22 src/hotspot/share/prims/jvm.cpp | 13 src/hotspot/share/prims/jvmtiExport.cpp | 26 src/hotspot/share/prims/jvmtiExport.hpp | 3 src/hotspot/share/prims/jvmtiRedefineClasses.cpp | 24 src/hotspot/share/prims/whitebox.cpp | 9 src/hotspot/share/runtime/arguments.cpp | 8 src/hotspot/share/runtime/continuationFreezeThaw.cpp | 9 src/hotspot/share/runtime/os.cpp | 35 src/hotspot/share/runtime/os.hpp | 14 src/hotspot/share/runtime/synchronizer.cpp | 6 src/hotspot/share/runtime/threadSMR.cpp | 7 src/hotspot/share/runtime/threads.cpp | 2 src/hotspot/share/services/heapDumper.cpp | 5 src/hotspot/share/services/management.cpp | 5 src/hotspot/share/services/threadIdTable.cpp | 25 src/hotspot/share/services/threadIdTable.hpp | 7 src/hotspot/share/services/threadService.cpp | 23 src/hotspot/share/utilities/globalDefinitions.hpp | 6 src/hotspot/share/utilities/ostream.cpp | 12 src/hotspot/share/utilities/ostream.hpp | 2 src/hotspot/share/utilities/vmError.cpp | 3 src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c | 5 src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c | 3 src/java.base/share/classes/com/sun/crypto/provider/ML_KEM.java | 18 src/java.base/share/classes/com/sun/crypto/provider/ML_KEM_Impls.java | 110 src/java.base/share/classes/java/lang/VirtualThread.java | 25 src/java.base/share/classes/java/security/KeyStore.java | 16 src/java.base/share/classes/java/util/jar/JarVerifier.java | 6 src/java.base/share/classes/jdk/internal/foreign/abi/ppc64/CallArranger.java | 7 src/java.base/share/classes/jdk/internal/vm/ThreadDumper.java | 8 src/java.base/share/classes/jdk/internal/vm/ThreadSnapshot.java | 20 src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java | 30 src/java.base/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java | 115 src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java | 80 src/java.base/share/classes/sun/security/pkcs/NamedPKCS8Key.java | 121 src/java.base/share/classes/sun/security/pkcs/SignerInfo.java | 23 src/java.base/share/classes/sun/security/provider/ML_DSA.java | 50 src/java.base/share/classes/sun/security/provider/ML_DSA_Impls.java | 110 src/java.base/share/classes/sun/security/provider/NamedKEM.java | 57 src/java.base/share/classes/sun/security/provider/NamedKeyFactory.java | 177 src/java.base/share/classes/sun/security/provider/NamedKeyPairGenerator.java | 85 src/java.base/share/classes/sun/security/provider/NamedSignature.java | 57 src/java.base/share/classes/sun/security/provider/certpath/URICertStore.java | 89 src/java.base/share/classes/sun/security/ssl/Alert.java | 48 src/java.base/share/classes/sun/security/ssl/HelloCookieManager.java | 24 src/java.base/share/classes/sun/security/timestamp/TSResponse.java | 9 src/java.base/share/classes/sun/security/util/DerValue.java | 15 src/java.base/share/classes/sun/security/util/HostnameChecker.java | 4 src/java.base/share/classes/sun/security/util/KeyChoices.java | 289 src/java.base/share/classes/sun/security/util/SecurityProperties.java | 32 src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java | 15 src/java.base/share/classes/sun/security/x509/DNSName.java | 10 src/java.base/share/classes/sun/security/x509/NamedX509Key.java | 5 src/java.base/share/conf/security/java.security | 41 src/java.base/share/data/cacerts/wisekeyglobalrootgbca | 29 src/java.base/share/data/cacerts/wisekeyglobalrootgcca | 22 src/java.base/share/data/lsrdata/language-subtag-registry.txt | 61 src/java.base/share/data/tzdata/VERSION | 2 src/java.base/share/data/tzdata/northamerica | 56 src/java.base/share/native/libjli/java.c | 7 src/java.base/unix/native/libjava/ProcessImpl_md.c | 57 src/java.base/unix/native/libjava/childproc.h | 9 src/java.base/unix/native/libnio/ch/Net.c | 8 src/java.base/windows/native/libjava/canonicalize_md.c | 19 src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java | 24 src/java.desktop/macosx/native/libawt_lwawt/awt/CDesktopPeer.m | 11 src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m | 8 src/java.desktop/macosx/native/libawt_lwawt/awt/PrinterView.h | 6 src/java.desktop/macosx/native/libawt_lwawt/awt/PrinterView.m | 13 src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_PCM.cpp | 7 src/java.desktop/share/classes/com/sun/java/swing/SwingUtilities3.java | 10 src/java.desktop/share/classes/com/sun/media/sound/Platform.java | 17 src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java | 6 src/java.desktop/share/classes/javax/swing/plaf/basic/BasicPopupMenuUI.java | 3 src/java.desktop/share/classes/javax/swing/plaf/synth/SynthGraphicsUtils.java | 14 src/java.desktop/share/classes/javax/swing/text/DefaultCaret.java | 23 src/java.desktop/share/classes/sun/awt/image/XbmImageDecoder.java | 334 src/java.desktop/share/legal/freetype.md | 42 src/java.desktop/share/legal/giflib.md | 2 src/java.desktop/share/legal/harfbuzz.md | 4 src/java.desktop/share/legal/lcms.md | 5 src/java.desktop/share/legal/libpng.md | 2 src/java.desktop/share/native/libawt/awt/medialib/awt_ImagingLib.c | 39 src/java.desktop/share/native/libfreetype/include/freetype/config/ftconfig.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/config/ftheader.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/config/ftoption.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/config/ftstdlib.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/config/integer-types.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/config/mac-support.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/config/public-macros.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/freetype.h | 4 src/java.desktop/share/native/libfreetype/include/freetype/ftadvanc.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftbbox.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftbdf.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftbitmap.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftcid.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftcolor.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftdriver.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/fterrdef.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/fterrors.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftfntfmt.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftgasp.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftglyph.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftgzip.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftimage.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftincrem.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftlcdfil.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftlist.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftlogging.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftmac.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftmm.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftmodapi.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftmoderr.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftoutln.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftparams.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftrender.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftsizes.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftsnames.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftstroke.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftsynth.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ftsystem.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/fttrigon.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/fttypes.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/autohint.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/cffotypes.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/cfftypes.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/compiler-macros.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftcalc.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftdebug.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftdrv.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftgloadr.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftmemory.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftmmtypes.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftobjs.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftpsprop.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftrfork.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftserv.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftstream.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/fttrace.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/ftvalid.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/psaux.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/pshints.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svbdf.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svcfftl.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svcid.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svfntfmt.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svgldict.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svgxval.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svkern.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svmetric.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svmm.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svotval.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpfr.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpostnm.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svprop.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpscmap.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svpsinfo.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svsfnt.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svttcmap.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svtteng.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svttglyf.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svwinfnt.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/sfnt.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/svginterface.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/t1types.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/tttypes.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/internal/wofftypes.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/otsvg.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/t1tables.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/ttnameid.h | 4 src/java.desktop/share/native/libfreetype/include/freetype/tttables.h | 2 src/java.desktop/share/native/libfreetype/include/freetype/tttags.h | 2 src/java.desktop/share/native/libfreetype/include/ft2build.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afadjust.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afadjust.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afblue.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afblue.cin | 2 src/java.desktop/share/native/libfreetype/src/autofit/afblue.dat | 2 src/java.desktop/share/native/libfreetype/src/autofit/afblue.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afblue.hin | 2 src/java.desktop/share/native/libfreetype/src/autofit/afcjk.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afcjk.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afcover.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afdummy.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afdummy.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/aferrors.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afglobal.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afglobal.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afhints.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afhints.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afindic.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afindic.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/aflatin.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/aflatin.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afloader.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afloader.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afmodule.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afmodule.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afranges.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afranges.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afscript.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afshaper.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/afshaper.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afstyles.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/aftypes.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afws-decl.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/afws-iter.h | 2 src/java.desktop/share/native/libfreetype/src/autofit/ft-hb.c | 2 src/java.desktop/share/native/libfreetype/src/autofit/ft-hb.h | 2 src/java.desktop/share/native/libfreetype/src/base/ftadvanc.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftbase.h | 2 src/java.desktop/share/native/libfreetype/src/base/ftbbox.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftbitmap.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftcalc.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftcid.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftcolor.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftdbgmem.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftdebug.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftfntfmt.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftfstype.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftgasp.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftgloadr.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftglyph.c | 8 src/java.desktop/share/native/libfreetype/src/base/ftinit.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftlcdfil.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftmac.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftmm.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftobjs.c | 43 src/java.desktop/share/native/libfreetype/src/base/ftoutln.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftpatent.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftpsprop.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftrfork.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftsnames.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftstream.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftstroke.c | 11 src/java.desktop/share/native/libfreetype/src/base/ftsynth.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftsystem.c | 2 src/java.desktop/share/native/libfreetype/src/base/fttrigon.c | 2 src/java.desktop/share/native/libfreetype/src/base/fttype1.c | 2 src/java.desktop/share/native/libfreetype/src/base/ftutil.c | 2 src/java.desktop/share/native/libfreetype/src/cff/cffcmap.c | 2 src/java.desktop/share/native/libfreetype/src/cff/cffcmap.h | 2 src/java.desktop/share/native/libfreetype/src/cff/cffdrivr.c | 2 src/java.desktop/share/native/libfreetype/src/cff/cffdrivr.h | 2 src/java.desktop/share/native/libfreetype/src/cff/cfferrs.h | 2 src/java.desktop/share/native/libfreetype/src/cff/cffgload.c | 2 src/java.desktop/share/native/libfreetype/src/cff/cffgload.h | 2 src/java.desktop/share/native/libfreetype/src/cff/cffload.c | 2 src/java.desktop/share/native/libfreetype/src/cff/cffload.h | 2 src/java.desktop/share/native/libfreetype/src/cff/cffobjs.c | 4 src/java.desktop/share/native/libfreetype/src/cff/cffobjs.h | 4 src/java.desktop/share/native/libfreetype/src/cff/cffparse.c | 2 src/java.desktop/share/native/libfreetype/src/cff/cffparse.h | 2 src/java.desktop/share/native/libfreetype/src/cff/cfftoken.h | 2 src/java.desktop/share/native/libfreetype/src/cid/ciderrs.h | 2 src/java.desktop/share/native/libfreetype/src/cid/cidgload.c | 33 src/java.desktop/share/native/libfreetype/src/cid/cidgload.h | 2 src/java.desktop/share/native/libfreetype/src/cid/cidload.c | 2 src/java.desktop/share/native/libfreetype/src/cid/cidload.h | 2 src/java.desktop/share/native/libfreetype/src/cid/cidobjs.c | 2 src/java.desktop/share/native/libfreetype/src/cid/cidobjs.h | 2 src/java.desktop/share/native/libfreetype/src/cid/cidparse.c | 2 src/java.desktop/share/native/libfreetype/src/cid/cidparse.h | 2 src/java.desktop/share/native/libfreetype/src/cid/cidriver.c | 2 src/java.desktop/share/native/libfreetype/src/cid/cidriver.h | 2 src/java.desktop/share/native/libfreetype/src/cid/cidtoken.h | 2 src/java.desktop/share/native/libfreetype/src/psaux/afmparse.c | 2 src/java.desktop/share/native/libfreetype/src/psaux/afmparse.h | 2 src/java.desktop/share/native/libfreetype/src/psaux/cffdecode.c | 2 src/java.desktop/share/native/libfreetype/src/psaux/cffdecode.h | 2 src/java.desktop/share/native/libfreetype/src/psaux/psauxerr.h | 2 src/java.desktop/share/native/libfreetype/src/psaux/psauxmod.c | 2 src/java.desktop/share/native/libfreetype/src/psaux/psauxmod.h | 2 src/java.desktop/share/native/libfreetype/src/psaux/psconv.c | 2 src/java.desktop/share/native/libfreetype/src/psaux/psconv.h | 2 src/java.desktop/share/native/libfreetype/src/psaux/psobjs.c | 2 src/java.desktop/share/native/libfreetype/src/psaux/psobjs.h | 2 src/java.desktop/share/native/libfreetype/src/psaux/t1cmap.c | 2 src/java.desktop/share/native/libfreetype/src/psaux/t1cmap.h | 2 src/java.desktop/share/native/libfreetype/src/psaux/t1decode.c | 39 src/java.desktop/share/native/libfreetype/src/psaux/t1decode.h | 2 src/java.desktop/share/native/libfreetype/src/pshinter/pshalgo.c | 2 src/java.desktop/share/native/libfreetype/src/pshinter/pshalgo.h | 2 src/java.desktop/share/native/libfreetype/src/pshinter/pshglob.c | 2 src/java.desktop/share/native/libfreetype/src/pshinter/pshglob.h | 2 src/java.desktop/share/native/libfreetype/src/pshinter/pshmod.c | 2 src/java.desktop/share/native/libfreetype/src/pshinter/pshmod.h | 2 src/java.desktop/share/native/libfreetype/src/pshinter/pshnterr.h | 2 src/java.desktop/share/native/libfreetype/src/pshinter/pshrec.c | 2 src/java.desktop/share/native/libfreetype/src/pshinter/pshrec.h | 2 src/java.desktop/share/native/libfreetype/src/psnames/psmodule.c | 2 src/java.desktop/share/native/libfreetype/src/psnames/psmodule.h | 2 src/java.desktop/share/native/libfreetype/src/psnames/psnamerr.h | 2 src/java.desktop/share/native/libfreetype/src/psnames/pstables.h | 2 src/java.desktop/share/native/libfreetype/src/raster/ftmisc.h | 2 src/java.desktop/share/native/libfreetype/src/raster/ftraster.c | 54 src/java.desktop/share/native/libfreetype/src/raster/ftraster.h | 2 src/java.desktop/share/native/libfreetype/src/raster/ftrend1.c | 2 src/java.desktop/share/native/libfreetype/src/raster/ftrend1.h | 2 src/java.desktop/share/native/libfreetype/src/raster/rasterrs.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/pngshim.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/pngshim.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/sfdriver.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/sfdriver.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/sferrors.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/sfobjs.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/sfobjs.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff2.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/sfwoff2.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttcmap.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttcmap.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttcmapc.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttcolr.c | 43 src/java.desktop/share/native/libfreetype/src/sfnt/ttcolr.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttcpal.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttcpal.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttkern.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttkern.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttload.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttload.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttmtx.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttmtx.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttpost.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttpost.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttsbit.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/ttsbit.h | 2 src/java.desktop/share/native/libfreetype/src/sfnt/woff2tags.c | 2 src/java.desktop/share/native/libfreetype/src/sfnt/woff2tags.h | 2 src/java.desktop/share/native/libfreetype/src/smooth/ftgrays.c | 2 src/java.desktop/share/native/libfreetype/src/smooth/ftgrays.h | 2 src/java.desktop/share/native/libfreetype/src/smooth/ftsmerrs.h | 2 src/java.desktop/share/native/libfreetype/src/smooth/ftsmooth.c | 2 src/java.desktop/share/native/libfreetype/src/smooth/ftsmooth.h | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttdriver.c | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttdriver.h | 2 src/java.desktop/share/native/libfreetype/src/truetype/tterrors.h | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttgload.c | 14 src/java.desktop/share/native/libfreetype/src/truetype/ttgload.h | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttgxvar.c | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttgxvar.h | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttinterp.c | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttinterp.h | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttobjs.c | 26 src/java.desktop/share/native/libfreetype/src/truetype/ttobjs.h | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttpload.c | 2 src/java.desktop/share/native/libfreetype/src/truetype/ttpload.h | 2 src/java.desktop/share/native/libfreetype/src/type1/t1afm.c | 2 src/java.desktop/share/native/libfreetype/src/type1/t1afm.h | 2 src/java.desktop/share/native/libfreetype/src/type1/t1driver.c | 2 src/java.desktop/share/native/libfreetype/src/type1/t1driver.h | 2 src/java.desktop/share/native/libfreetype/src/type1/t1errors.h | 2 src/java.desktop/share/native/libfreetype/src/type1/t1gload.c | 2 src/java.desktop/share/native/libfreetype/src/type1/t1gload.h | 2 src/java.desktop/share/native/libfreetype/src/type1/t1load.c | 2 src/java.desktop/share/native/libfreetype/src/type1/t1load.h | 2 src/java.desktop/share/native/libfreetype/src/type1/t1objs.c | 2 src/java.desktop/share/native/libfreetype/src/type1/t1objs.h | 2 src/java.desktop/share/native/libfreetype/src/type1/t1parse.c | 2 src/java.desktop/share/native/libfreetype/src/type1/t1parse.h | 2 src/java.desktop/share/native/libfreetype/src/type1/t1tokens.h | 2 src/java.desktop/share/native/libharfbuzz/OT/Color/COLR/COLR.hh | 17 src/java.desktop/share/native/libharfbuzz/OT/Color/CPAL/CPAL.hh | 2 src/java.desktop/share/native/libharfbuzz/OT/Color/sbix/sbix.hh | 2 src/java.desktop/share/native/libharfbuzz/OT/Color/svg/svg.hh | 684 src/java.desktop/share/native/libharfbuzz/OT/Layout/GDEF/GDEF.hh | 4 src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/CursivePosFormat1.hh | 22 src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/PairSet.hh | 6 src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/SinglePosFormat1.hh | 2 src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/SinglePosFormat2.hh | 2 src/java.desktop/share/native/libharfbuzz/OT/Layout/GPOS/ValueFormat.hh | 2 src/java.desktop/share/native/libharfbuzz/OT/Var/VARC/VARC.cc | 68 src/java.desktop/share/native/libharfbuzz/OT/glyf/CompositeGlyph.hh | 2 src/java.desktop/share/native/libharfbuzz/OT/glyf/Glyph.hh | 28 src/java.desktop/share/native/libharfbuzz/OT/glyf/SimpleGlyph.hh | 1 src/java.desktop/share/native/libharfbuzz/OT/glyf/glyf.hh | 4 src/java.desktop/share/native/libharfbuzz/OT/name/name.hh | 2 src/java.desktop/share/native/libharfbuzz/graph/classdef-graph.hh | 6 src/java.desktop/share/native/libharfbuzz/graph/coverage-graph.hh | 6 src/java.desktop/share/native/libharfbuzz/graph/graph.hh | 22 src/java.desktop/share/native/libharfbuzz/graph/gsubgpos-graph.hh | 8 src/java.desktop/share/native/libharfbuzz/graph/markbasepos-graph.hh | 9 src/java.desktop/share/native/libharfbuzz/graph/pairpos-graph.hh | 5 src/java.desktop/share/native/libharfbuzz/graph/serialize.hh | 2 src/java.desktop/share/native/libharfbuzz/hb-aat-layout-kerx-table.hh | 2 src/java.desktop/share/native/libharfbuzz/hb-aat-layout-morx-table.hh | 17 src/java.desktop/share/native/libharfbuzz/hb-algs.hh | 227 src/java.desktop/share/native/libharfbuzz/hb-array.hh | 44 src/java.desktop/share/native/libharfbuzz/hb-atomic.hh | 3 src/java.desktop/share/native/libharfbuzz/hb-bimap.hh | 2 src/java.desktop/share/native/libharfbuzz/hb-bit-set-invertible.hh | 9 src/java.desktop/share/native/libharfbuzz/hb-bit-set.hh | 28 src/java.desktop/share/native/libharfbuzz/hb-blob.cc | 128 src/java.desktop/share/native/libharfbuzz/hb-blob.hh | 158 src/java.desktop/share/native/libharfbuzz/hb-buffer-serialize.cc | 44 src/java.desktop/share/native/libharfbuzz/hb-buffer-verify.cc | 31 src/java.desktop/share/native/libharfbuzz/hb-buffer.cc | 58 src/java.desktop/share/native/libharfbuzz/hb-buffer.h | 14 src/java.desktop/share/native/libharfbuzz/hb-buffer.hh | 39 src/java.desktop/share/native/libharfbuzz/hb-cff-interp-common.hh | 41 src/java.desktop/share/native/libharfbuzz/hb-cff2-interp-cs.hh | 11 src/java.desktop/share/native/libharfbuzz/hb-config.hh | 27 src/java.desktop/share/native/libharfbuzz/hb-cplusplus.hh | 66 src/java.desktop/share/native/libharfbuzz/hb-draw.cc | 278 src/java.desktop/share/native/libharfbuzz/hb-draw.h | 52 src/java.desktop/share/native/libharfbuzz/hb-face-builder.cc | 6 src/java.desktop/share/native/libharfbuzz/hb-font.cc | 41 src/java.desktop/share/native/libharfbuzz/hb-font.hh | 26 src/java.desktop/share/native/libharfbuzz/hb-ft.cc | 20 src/java.desktop/share/native/libharfbuzz/hb-geometry.hh | 52 src/java.desktop/share/native/libharfbuzz/hb-limits.hh | 29 src/java.desktop/share/native/libharfbuzz/hb-machinery.hh | 4 src/java.desktop/share/native/libharfbuzz/hb-map.hh | 6 src/java.desktop/share/native/libharfbuzz/hb-number.cc | 7 src/java.desktop/share/native/libharfbuzz/hb-object.hh | 17 src/java.desktop/share/native/libharfbuzz/hb-open-type.hh | 39 src/java.desktop/share/native/libharfbuzz/hb-ot-cff-common.hh | 6 src/java.desktop/share/native/libharfbuzz/hb-ot-cff1-table.cc | 7 src/java.desktop/share/native/libharfbuzz/hb-ot-cff1-table.hh | 12 src/java.desktop/share/native/libharfbuzz/hb-ot-cff2-table.cc | 7 src/java.desktop/share/native/libharfbuzz/hb-ot-cff2-table.hh | 4 src/java.desktop/share/native/libharfbuzz/hb-ot-cmap-table.hh | 170 src/java.desktop/share/native/libharfbuzz/hb-ot-color.cc | 68 src/java.desktop/share/native/libharfbuzz/hb-ot-color.h | 14 src/java.desktop/share/native/libharfbuzz/hb-ot-face-table-list.hh | 2 src/java.desktop/share/native/libharfbuzz/hb-ot-font.cc | 20 src/java.desktop/share/native/libharfbuzz/hb-ot-hdmx-table.hh | 4 src/java.desktop/share/native/libharfbuzz/hb-ot-kern-table.hh | 2 src/java.desktop/share/native/libharfbuzz/hb-ot-layout-common.hh | 41 src/java.desktop/share/native/libharfbuzz/hb-ot-layout-gsubgpos.hh | 70 src/java.desktop/share/native/libharfbuzz/hb-ot-layout.cc | 12 src/java.desktop/share/native/libharfbuzz/hb-ot-os2-table.hh | 2 src/java.desktop/share/native/libharfbuzz/hb-ot-post-table.hh | 14 src/java.desktop/share/native/libharfbuzz/hb-ot-shape-normalize.cc | 6 src/java.desktop/share/native/libharfbuzz/hb-ot-shape.cc | 24 src/java.desktop/share/native/libharfbuzz/hb-ot-shape.h | 15 src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-arabic-pua.hh | 138 src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-arabic-table.hh | 267 src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-arabic.cc | 48 src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-hangul.cc | 4 src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-indic-table.cc | 484 src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-thai.cc | 12 src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-use-table.hh | 1052 - src/java.desktop/share/native/libharfbuzz/hb-ot-shaper-vowel-constraints.cc | 2 src/java.desktop/share/native/libharfbuzz/hb-ot-tag-table.hh | 1278 - src/java.desktop/share/native/libharfbuzz/hb-ot-tag.cc | 153 src/java.desktop/share/native/libharfbuzz/hb-ot-var-common.hh | 52 src/java.desktop/share/native/libharfbuzz/hb-ot-var-gvar-table.hh | 111 src/java.desktop/share/native/libharfbuzz/hb-ot-var-hvar-table.hh | 2 src/java.desktop/share/native/libharfbuzz/hb-outline.hh | 2 src/java.desktop/share/native/libharfbuzz/hb-paint.cc | 420 src/java.desktop/share/native/libharfbuzz/hb-paint.h | 254 src/java.desktop/share/native/libharfbuzz/hb-paint.hh | 28 src/java.desktop/share/native/libharfbuzz/hb-priority-queue.hh | 2 src/java.desktop/share/native/libharfbuzz/hb-repacker.hh | 7 src/java.desktop/share/native/libharfbuzz/hb-static.cc | 7 src/java.desktop/share/native/libharfbuzz/hb-subset-cff-common.cc | 8 src/java.desktop/share/native/libharfbuzz/hb-subset-cff-common.hh | 26 src/java.desktop/share/native/libharfbuzz/hb-subset-cff1.cc | 6 src/java.desktop/share/native/libharfbuzz/hb-subset-cff2.cc | 596 src/java.desktop/share/native/libharfbuzz/hb-subset-instancer-solver.cc | 35 src/java.desktop/share/native/libharfbuzz/hb-subset.h | 16 src/java.desktop/share/native/libharfbuzz/hb-ucd-table.hh | 8503 +++++----- src/java.desktop/share/native/libharfbuzz/hb-unicode-emoji-table.hh | 61 src/java.desktop/share/native/libharfbuzz/hb-unicode.cc | 12 src/java.desktop/share/native/libharfbuzz/hb-vector.hh | 69 src/java.desktop/share/native/libharfbuzz/hb-version.h | 8 src/java.desktop/share/native/libharfbuzz/hb-zlib.hh | 37 src/java.desktop/share/native/libharfbuzz/hb.hh | 10 src/java.desktop/share/native/libjavajpeg/imageioJPEG.c | 395 src/java.desktop/share/native/libjsound/Platform.c | 43 src/java.desktop/share/native/libjsound/Utilities.c | 11 src/java.desktop/share/native/libjsound/Utilities.h | 6 src/java.desktop/share/native/liblcms/cmsalpha.c | 4 src/java.desktop/share/native/liblcms/cmscam02.c | 41 src/java.desktop/share/native/liblcms/cmscgats.c | 55 src/java.desktop/share/native/liblcms/cmscnvrt.c | 2 src/java.desktop/share/native/liblcms/cmserr.c | 57 src/java.desktop/share/native/liblcms/cmsgamma.c | 3 src/java.desktop/share/native/liblcms/cmsgmt.c | 2 src/java.desktop/share/native/liblcms/cmshalf.c | 2 src/java.desktop/share/native/liblcms/cmsintrp.c | 10 src/java.desktop/share/native/liblcms/cmsio0.c | 257 src/java.desktop/share/native/liblcms/cmsio1.c | 10 src/java.desktop/share/native/liblcms/cmslut.c | 13 src/java.desktop/share/native/liblcms/cmsmd5.c | 2 src/java.desktop/share/native/liblcms/cmsmtrx.c | 2 src/java.desktop/share/native/liblcms/cmsnamed.c | 32 src/java.desktop/share/native/liblcms/cmsopt.c | 28 src/java.desktop/share/native/liblcms/cmspack.c | 2 src/java.desktop/share/native/liblcms/cmspcs.c | 2 src/java.desktop/share/native/liblcms/cmsplugin.c | 4 src/java.desktop/share/native/liblcms/cmsps2.c | 38 src/java.desktop/share/native/liblcms/cmssamp.c | 61 src/java.desktop/share/native/liblcms/cmssm.c | 2 src/java.desktop/share/native/liblcms/cmstypes.c | 54 src/java.desktop/share/native/liblcms/cmsvirt.c | 59 src/java.desktop/share/native/liblcms/cmswtpnt.c | 2 src/java.desktop/share/native/liblcms/cmsxform.c | 42 src/java.desktop/share/native/liblcms/lcms2.h | 40 src/java.desktop/share/native/liblcms/lcms2_internal.h | 3 src/java.desktop/share/native/liblcms/lcms2_plugin.h | 2 src/java.desktop/unix/native/common/awt/utility/rect.h | 4 src/java.desktop/unix/native/common/java2d/opengl/GLXSurfaceData.c | 100 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsBorders.java | 8 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsButtonUI.java | 2 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsCheckBoxMenuItemUI.java | 21 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsCheckBoxUI.java | 2 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsClassicLookAndFeel.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsComboBoxUI.java | 10 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsDesktopIconUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsDesktopManager.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsDesktopPaneUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsEditorPaneUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java | 14 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java | 44 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsInternalFrameTitlePane.java | 8 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsInternalFrameUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsLabelUI.java | 2 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuBarUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUI.java | 59 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuUI.java | 26 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsOptionPaneUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsPasswordFieldUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsPopupMenuSeparatorUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsPopupMenuUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsProgressBarUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonMenuItemUI.java | 21 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsRootPaneUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsScrollBarUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsScrollPaneUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsSeparatorUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsSliderUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsSpinnerUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsSplitPaneDivider.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsSplitPaneUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsTextAreaUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsTextFieldUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsTextPaneUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsToggleButtonUI.java | 2 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsToolBarSeparatorUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsToolBarUI.java | 4 src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsTreeUI.java | 6 src/java.desktop/windows/classes/sun/awt/windows/WPrinterJob.java | 8 src/java.desktop/windows/native/libawt/windows/awt_Desktop.cpp | 4 src/java.management/share/classes/sun/management/VMManagement.java | 5 src/java.management/share/classes/sun/management/VMManagementImpl.java | 5 src/java.management/share/native/libmanagement/VMManagementImpl.c | 7 src/java.naming/share/classes/sun/security/provider/certpath/ldap/LDAPCertStoreImpl.java | 45 src/java.net.http/share/classes/module-info.java | 3 src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp | 12 src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java | 78 src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java | 15 src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/FileServerHandler.java | 22 src/jdk.jcmd/share/man/jcmd.md | 10 src/jdk.jdwp.agent/share/native/libjdwp/EventRequestImpl.c | 6 src/jdk.jdwp.agent/share/native/libjdwp/SDE.c | 15 src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c | 6 src/jdk.jdwp.agent/share/native/libjdwp/error_messages.c | 7 src/jdk.jdwp.agent/share/native/libjdwp/eventFilter.c | 3 src/jdk.jdwp.agent/share/native/libjdwp/inStream.c | 3 src/jdk.jdwp.agent/share/native/libjdwp/log_messages.c | 3 src/jdk.jdwp.agent/share/native/libjdwp/threadControl.c | 6 src/jdk.jdwp.agent/share/native/libjdwp/utf_util.c | 6 src/jdk.jdwp.agent/share/native/libjdwp/util.h | 8 src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ParserFactory.java | 9 src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/Instrumentation.java | 22 src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/Method.java | 2 src/jdk.jfr/share/classes/jdk/jfr/internal/tracing/Transform.java | 197 src/jdk.management/share/classes/com/sun/management/doc-files/threadDump.schema.json | 8 src/jdk.management/share/classes/com/sun/management/internal/HotSpotAOTCacheImpl.java | 55 src/jdk.management/share/classes/com/sun/management/internal/PlatformMBeanProviderImpl.java | 38 src/jdk.management/share/classes/jdk/management/HotSpotAOTCacheMXBean.java | 94 test/docs/jdk/javadoc/doccheck/DocCheck.java | 5 test/docs/jdk/javadoc/doccheck/checks/jdkCheckHtml.java | 4 test/docs/jdk/javadoc/doccheck/doccheckutils/checkers/TidyChecker.java | 6 test/hotspot/gtest/gc/shenandoah/test_shenandoahMarkBitMap.cpp | 6 test/hotspot/gtest/x86/x86-asmtest.py | 12 test/hotspot/jtreg/ProblemList.txt | 5 test/hotspot/jtreg/compiler/arraycopy/TestCloneUnknownClassAtParseTime.java | 92 test/hotspot/jtreg/compiler/c2/TestMergeStores.java | 3 test/hotspot/jtreg/compiler/c2/TestMergeStoresMemorySegment.java | 12 test/hotspot/jtreg/compiler/c2/TestMinMaxSubword.java | 1 test/hotspot/jtreg/compiler/c2/TestUnlockNodeNullMemprof.java | 53 test/hotspot/jtreg/compiler/c2/irTests/ModDNodeTests.java | 1 test/hotspot/jtreg/compiler/c2/irTests/ModFNodeTests.java | 1 test/hotspot/jtreg/compiler/c2/irTests/ModINodeIdealizationTests.java | 1 test/hotspot/jtreg/compiler/c2/irTests/ModLNodeIdealizationTests.java | 1 test/hotspot/jtreg/compiler/c2/irTests/TestIfMinMax.java | 38 test/hotspot/jtreg/compiler/c2/irTests/TestMulNodeIdealization.java | 3 test/hotspot/jtreg/compiler/c2/irTests/TestShiftAndMask.java | 1 test/hotspot/jtreg/compiler/c2/irTests/UDivINodeIdealizationTests.java | 3 test/hotspot/jtreg/compiler/c2/irTests/UDivLNodeIdealizationTests.java | 3 test/hotspot/jtreg/compiler/c2/irTests/UModINodeIdealizationTests.java | 3 test/hotspot/jtreg/compiler/c2/irTests/UModLNodeIdealizationTests.java | 3 test/hotspot/jtreg/compiler/controldependency/TestDivDependentOnMainLoopGuard.java | 1 test/hotspot/jtreg/compiler/debug/TestStress.java | 12 test/hotspot/jtreg/compiler/debug/TestStressDistinctSeed.java | 118 test/hotspot/jtreg/compiler/escapeAnalysis/TestReduceAllocationNotReducibleAnymore.java | 63 test/hotspot/jtreg/compiler/gcbarriers/TestMinMaxLongLoopBarrier.java | 86 test/hotspot/jtreg/compiler/igvn/ExpressionFuzzer.java | 350 test/hotspot/jtreg/compiler/inlining/TestLateMHClonedCallNode.java | 110 test/hotspot/jtreg/compiler/intrinsics/float16/TestFloat16MaxMinSpecialValues.java | 1 test/hotspot/jtreg/compiler/lib/template_framework/AddNameToken.java | 4 test/hotspot/jtreg/compiler/lib/template_framework/CodeFrame.java | 123 test/hotspot/jtreg/compiler/lib/template_framework/DataName.java | 205 test/hotspot/jtreg/compiler/lib/template_framework/Hook.java | 92 test/hotspot/jtreg/compiler/lib/template_framework/HookAnchorToken.java | 5 test/hotspot/jtreg/compiler/lib/template_framework/HookInsertToken.java | 6 test/hotspot/jtreg/compiler/lib/template_framework/HookIsAnchoredToken.java | 37 test/hotspot/jtreg/compiler/lib/template_framework/LetToken.java | 38 test/hotspot/jtreg/compiler/lib/template_framework/NameCountToken.java | 39 test/hotspot/jtreg/compiler/lib/template_framework/NameForEachToken.java | 41 test/hotspot/jtreg/compiler/lib/template_framework/NameHasAnyToken.java | 39 test/hotspot/jtreg/compiler/lib/template_framework/NameSampleToken.java | 43 test/hotspot/jtreg/compiler/lib/template_framework/NameSet.java | 1 test/hotspot/jtreg/compiler/lib/template_framework/NamesToListToken.java | 41 test/hotspot/jtreg/compiler/lib/template_framework/NothingToken.java | 26 test/hotspot/jtreg/compiler/lib/template_framework/Renderer.java | 187 test/hotspot/jtreg/compiler/lib/template_framework/ScopeToken.java | 30 test/hotspot/jtreg/compiler/lib/template_framework/ScopeTokenImpl.java | 42 test/hotspot/jtreg/compiler/lib/template_framework/SetFuelCostToken.java | 29 test/hotspot/jtreg/compiler/lib/template_framework/StructuralName.java | 147 test/hotspot/jtreg/compiler/lib/template_framework/Template.java | 510 test/hotspot/jtreg/compiler/lib/template_framework/TemplateBody.java | 34 test/hotspot/jtreg/compiler/lib/template_framework/TemplateFrame.java | 109 test/hotspot/jtreg/compiler/lib/template_framework/TemplateToken.java | 10 test/hotspot/jtreg/compiler/lib/template_framework/Token.java | 72 test/hotspot/jtreg/compiler/lib/template_framework/TokenParser.java | 71 test/hotspot/jtreg/compiler/lib/template_framework/library/CodeGenerationDataNameType.java | 157 test/hotspot/jtreg/compiler/lib/template_framework/library/Expression.java | 474 test/hotspot/jtreg/compiler/lib/template_framework/library/Operations.java | 253 test/hotspot/jtreg/compiler/lib/template_framework/library/PrimitiveType.java | 241 test/hotspot/jtreg/compiler/lib/template_framework/library/TestFrameworkClass.java | 119 test/hotspot/jtreg/compiler/loopopts/InvariantCodeMotionReassociateAddSub.java | 1 test/hotspot/jtreg/compiler/loopopts/InvariantCodeMotionReassociateCmp.java | 1 test/hotspot/jtreg/compiler/loopopts/parallel_iv/TestParallelIvInIntCountedLoop.java | 1 test/hotspot/jtreg/compiler/loopopts/superword/MinMaxRed_Int.java | 1 test/hotspot/jtreg/compiler/loopopts/superword/ReductionPerf.java | 3 test/hotspot/jtreg/compiler/loopopts/superword/TestAlignVector.java | 1 test/hotspot/jtreg/compiler/loopopts/superword/TestCompatibleUseDefTypeSize.java | 3 test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java | 36 test/hotspot/jtreg/compiler/loopopts/superword/TestEquivalentInvariants.java | 1 test/hotspot/jtreg/compiler/loopopts/superword/TestMemorySegment.java | 1 test/hotspot/jtreg/compiler/loopopts/superword/TestMemorySegmentUnalignedAddress.java | 1 test/hotspot/jtreg/compiler/loopopts/superword/TestSplitPacks.java | 1 test/hotspot/jtreg/compiler/vectorapi/Test8278948.java | 3 test/hotspot/jtreg/compiler/vectorapi/TestVectorAddMulReduction.java | 1 test/hotspot/jtreg/compiler/vectorapi/TestVectorCompressExpandBits.java | 1 test/hotspot/jtreg/compiler/vectorapi/TestVectorReallocation.java | 414 test/hotspot/jtreg/compiler/vectorapi/VectorMultiplyOpt.java | 3 test/hotspot/jtreg/compiler/vectorapi/VectorSaturatedOperationsTest.java | 1 test/hotspot/jtreg/compiler/vectorization/TestAutoVecIntMinMax.java | 1 test/hotspot/jtreg/compiler/vectorization/TestEor3AArch64.java | 1 test/hotspot/jtreg/compiler/vectorization/TestMacroLogicVector.java | 3 test/hotspot/jtreg/compiler/vectorization/TestVectorZeroCount.java | 12 test/hotspot/jtreg/containers/docker/DockerBasicTest.java | 4 test/hotspot/jtreg/containers/docker/ShareTmpDir.java | 4 test/hotspot/jtreg/containers/docker/TestCPUAwareness.java | 4 test/hotspot/jtreg/containers/docker/TestJcmd.java | 8 test/hotspot/jtreg/containers/docker/TestLimitsUpdating.java | 4 test/hotspot/jtreg/containers/docker/TestMemoryAwareness.java | 4 test/hotspot/jtreg/containers/docker/TestMemoryWithSubgroups.java | 74 test/hotspot/jtreg/containers/docker/TestPids.java | 4 test/hotspot/jtreg/gc/arguments/TestParallelRefProc.java | 85 test/hotspot/jtreg/gc/arguments/TestSelectDefaultGC.java | 4 test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryDataRunner.java | 1 test/hotspot/jtreg/gc/shenandoah/TestAllocObjects.java | 4 test/hotspot/jtreg/gc/shenandoah/TestLargeObjectAlignment.java | 19 test/hotspot/jtreg/gc/shenandoah/TestRegionSamplingLogging.java | 4 test/hotspot/jtreg/gc/shenandoah/TestShenandoahRegionLogging.java | 4 test/hotspot/jtreg/gc/shenandoah/TestSieveObjects.java | 4 test/hotspot/jtreg/gc/shenandoah/compiler/TestLinkToNativeRBP.java | 5 test/hotspot/jtreg/gc/shenandoah/generational/TestOldGrowthTriggers.java | 2 test/hotspot/jtreg/gc/shenandoah/jni/TestJNIGlobalRefs.java | 8 test/hotspot/jtreg/gc/shenandoah/mxbeans/TestPauseNotifications.java | 30 test/hotspot/jtreg/gc/shenandoah/options/TestGenerationalHeuristics.java | 84 test/hotspot/jtreg/gc/shenandoah/options/TestRegionSizeArgs.java | 11 test/hotspot/jtreg/gc/stress/TestReclaimStringsLeaksMemory.java | 55 test/hotspot/jtreg/runtime/ErrorHandling/StackWalkNativeToJava.java | 2 test/hotspot/jtreg/runtime/ErrorHandling/TestDwarf.java | 1 test/hotspot/jtreg/runtime/ErrorHandling/VeryEarlyAssertTest.java | 5 test/hotspot/jtreg/runtime/Metaspace/DefineClass.java | 2 test/hotspot/jtreg/runtime/Monitor/MonitorWithDeadObjectTest.java | 7 test/hotspot/jtreg/runtime/cds/appcds/aotCache/ChangedJarFile.java | 110 test/hotspot/jtreg/runtime/cds/appcds/aotCache/ExcludedClasses.java | 48 test/hotspot/jtreg/runtime/cds/appcds/aotCache/HotSpotAOTCacheMXBeanTest.java | 118 test/hotspot/jtreg/runtime/cds/appcds/aotCache/RedefineCriticalClasses.java | 83 test/hotspot/jtreg/runtime/cds/appcds/aotCache/TransformCriticalClasses.java | 72 test/hotspot/jtreg/runtime/os/AvailableProcessors.java | 49 test/hotspot/jtreg/runtime/vthread/RedefineClass.java | 2 test/hotspot/jtreg/serviceability/sa/ClhsdbCDSCore.java | 1 test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java | 2 test/hotspot/jtreg/serviceability/sa/ClhsdbPmap.java | 1 test/hotspot/jtreg/serviceability/sa/ClhsdbPstack.java | 1 test/hotspot/jtreg/serviceability/threads/ThreadInfoTest.java | 187 test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestAdvanced.java | 6 test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestExpressions.java | 139 test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestPrimitiveTypes.java | 253 test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestSimple.java | 4 test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestTutorial.java | 836 test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestWithTestFrameworkClass.java | 163 test/hotspot/jtreg/testlibrary_tests/template_framework/tests/TestExpression.java | 282 test/hotspot/jtreg/testlibrary_tests/template_framework/tests/TestFormat.java | 6 test/hotspot/jtreg/testlibrary_tests/template_framework/tests/TestTemplate.java | 2207 ++ test/hotspot/jtreg/vmTestbase/gc/vector/CircularListLow/TestDescription.java | 1 test/hotspot/jtreg/vmTestbase/gc/vector/LinearListLow/TestDescription.java | 1 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001.java | 6 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/tc03t001.cpp | 64 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002.java | 7 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/tc03t002.cpp | 65 test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles/lexical.xml | 24 test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles/out/doctypeGF.out | 21 test/jaxp/javax/xml/jaxp/functional/javax/xml/transform/xmlfiles/publish2.xml | 23 test/jaxp/javax/xml/jaxp/functional/org/xml/sax/xmlfiles/out/DTDHandlerGF.out | 2 test/jdk/ProblemList.txt | 12 test/jdk/TEST.groups | 1 test/jdk/build/AbsPathsInImage.java | 203 test/jdk/com/sun/java/swing/SwingUtilities3/ApplyInsetsTest.java | 65 test/jdk/com/sun/java/swing/plaf/windows/MenuItem/MenuItemAcceleratorColor.java | 193 test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpThreads.java | 22 test/jdk/com/sun/net/httpserver/BasicAuthenticatorRealm.java | 44 test/jdk/com/sun/net/httpserver/CreateHttpServerTest.java | 8 test/jdk/com/sun/net/httpserver/DateFormatterTest.java | 25 test/jdk/com/sun/net/httpserver/FilterTest.java | 124 test/jdk/com/sun/net/httpserver/HeadersTest.java | 175 test/jdk/com/sun/net/httpserver/HttpContextTest.java | 19 test/jdk/com/sun/net/httpserver/HttpPrincipalTest.java | 18 test/jdk/com/sun/net/httpserver/HttpServerProviderTest.java | 57 test/jdk/com/sun/net/httpserver/InputNotRead.java | 7 test/jdk/com/sun/net/httpserver/UnmodifiableHeadersTest.java | 70 test/jdk/com/sun/net/httpserver/bugs/BasicAuthenticatorExceptionCheck.java | 34 test/jdk/com/sun/net/httpserver/simpleserver/CommandLineNegativeTest.java | 72 test/jdk/com/sun/net/httpserver/simpleserver/CommandLinePortNotSpecifiedTest.java | 17 test/jdk/com/sun/net/httpserver/simpleserver/CommandLinePositiveTest.java | 67 test/jdk/com/sun/net/httpserver/simpleserver/CustomFileSystemTest.java | 172 test/jdk/com/sun/net/httpserver/simpleserver/FileServerHandlerTest.java | 50 test/jdk/com/sun/net/httpserver/simpleserver/HttpHandlersTest.java | 92 test/jdk/com/sun/net/httpserver/simpleserver/HttpsServerAlertTest.java | 12 test/jdk/com/sun/net/httpserver/simpleserver/HttpsServerTest.java | 30 test/jdk/com/sun/net/httpserver/simpleserver/IdempotencyAndCommutativityTest.java | 33 test/jdk/com/sun/net/httpserver/simpleserver/MapToPathTest.java | 141 test/jdk/com/sun/net/httpserver/simpleserver/OutputFilterTest.java | 50 test/jdk/com/sun/net/httpserver/simpleserver/RequestTest.java | 35 test/jdk/com/sun/net/httpserver/simpleserver/ServerMimeTypesResolutionTest.java | 25 test/jdk/com/sun/net/httpserver/simpleserver/SimpleFileServerTest.java | 212 test/jdk/com/sun/net/httpserver/simpleserver/StressDirListings.java | 25 test/jdk/com/sun/net/httpserver/simpleserver/ZipFileSystemTest.java | 108 test/jdk/com/sun/net/httpserver/simpleserver/jwebserver/CommandLineNegativeTest.java | 72 test/jdk/com/sun/net/httpserver/simpleserver/jwebserver/CommandLinePortNotSpecifiedTest.java | 17 test/jdk/com/sun/net/httpserver/simpleserver/jwebserver/CommandLinePositiveTest.java | 67 test/jdk/com/sun/net/httpserver/simpleserver/jwebserver/MaxRequestTimeTest.java | 25 test/jdk/java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java | 176 test/jdk/java/awt/Choice/PaintArtefacts.java | 122 test/jdk/java/awt/Choice/SelectBetweenPressRelease.java | 146 test/jdk/java/awt/Focus/KeyStrokeTest.java | 79 test/jdk/java/awt/Frame/DisposeTest.java | 7 test/jdk/java/awt/FullScreen/DisplayModeNoRefreshTest.java | 115 test/jdk/java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.java | 4 test/jdk/java/awt/MenuBar/8007006/bug8007006.java | 134 test/jdk/java/awt/Mouse/EnterExitEvents/DragWindowTest.java | 113 test/jdk/java/awt/PrintJob/TestPrintNoException.java | 61 test/jdk/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java | 185 test/jdk/java/awt/print/PrinterJob/ImagePrinting/BitmaskImage.java | 142 test/jdk/java/awt/print/PrinterJob/PageRanges.java | 4 test/jdk/java/awt/print/PrinterJob/PageRangesAuto.java | 199 test/jdk/java/io/File/EmptyPath.java | 3 test/jdk/java/io/File/GetXSpace.java | 39 test/jdk/java/io/FileDescriptor/Sharing.java | 76 test/jdk/java/io/Serializable/GetField/ReadFieldsCNF.java | 34 test/jdk/java/io/Serializable/class/NonSerializableTest.java | 76 test/jdk/java/io/Serializable/records/RecordClassTest.java | 10 test/jdk/java/io/Serializable/records/SerialVersionUIDTest.java | 12 test/jdk/java/io/Serializable/serialFilter/CheckArrayTest.java | 28 test/jdk/java/io/Serializable/serialFilter/CheckInputOrderTest.java | 23 test/jdk/java/io/Serializable/serialFilter/GlobalFilterTest.java | 71 test/jdk/java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java | 40 test/jdk/java/io/Serializable/serialFilter/MixedFiltersTest.java | 52 test/jdk/java/io/Serializable/serialFilter/SerialFactoryExample.java | 33 test/jdk/java/io/Serializable/serialFilter/SerialFactoryFaults.java | 52 test/jdk/java/io/Serializable/serialFilter/SerialFilterFactoryTest.java | 76 test/jdk/java/io/Serializable/serialFilter/SerialFilterFunctionTest.java | 51 test/jdk/java/io/Serializable/serialFilter/SerialFilterTest.java | 151 test/jdk/java/lang/Character/Latin1CaseConversion.java | 47 test/jdk/java/lang/Character/UnicodeBlock/NumberEntities.java | 17 test/jdk/java/lang/Math/WorstCaseTests.java | 39 test/jdk/java/lang/ProcessBuilder/Basic.java | 32 test/jdk/java/lang/ProcessBuilder/ConcNativeForkTest/ConcNativeForkTest.java | 118 test/jdk/java/lang/ProcessBuilder/ConcNativeForkTest/libConcNativeFork.c | 147 test/jdk/java/lang/ProcessBuilder/NonPipelineLeaksFD.java | 179 test/jdk/java/lang/ProcessBuilder/PipesCloseOnExecTest/PipesCloseOnExecTest.java | 106 test/jdk/java/lang/ProcessBuilder/PipesCloseOnExecTest/libPipesCloseOnExec.c | 198 test/jdk/java/lang/StrictMath/CubeRootTests.java | 3 test/jdk/java/lang/StrictMath/HyperbolicTests.java | 14 test/jdk/java/lang/StrictMath/Log10Tests.java | 5 test/jdk/java/lang/StrictMath/Log1pTests.java | 3 test/jdk/java/lang/StrictMath/TrigTests.java | 6 test/jdk/java/lang/Thread/virtual/stress/NotifiedThenTimedOutWait.java | 134 test/jdk/java/lang/instrument/RetransformRecordTypeAnn/MyRecord.java | 47 test/jdk/java/lang/instrument/RetransformRecordTypeAnn/TestRetransformRecord.java | 94 test/jdk/java/lang/instrument/RetransformRecordTypeAnn/altered/MyRecord.jcod | 421 test/jdk/java/lang/management/MemoryMXBean/LowMemoryTest2.java | 26 test/jdk/java/net/httpclient/ALPNProxyFailureTest.java | 11 test/jdk/java/net/httpclient/AbstractNoBody.java | 5 test/jdk/java/net/httpclient/AbstractThrowingPublishers.java | 179 test/jdk/java/net/httpclient/AbstractThrowingPushPromises.java | 7 test/jdk/java/net/httpclient/AbstractThrowingSubscribers.java | 145 test/jdk/java/net/httpclient/AggregateRequestBodyTest.java | 6 test/jdk/java/net/httpclient/AsFileDownloadTest.java | 6 test/jdk/java/net/httpclient/AsyncExecutorShutdown.java | 5 test/jdk/java/net/httpclient/AsyncShutdownNow.java | 5 test/jdk/java/net/httpclient/AuthFilterCacheTest.java | 9 test/jdk/java/net/httpclient/BasicAuthTest.java | 2 test/jdk/java/net/httpclient/BasicRedirectTest.java | 6 test/jdk/java/net/httpclient/CancelRequestTest.java | 6 test/jdk/java/net/httpclient/CancelStreamedBodyTest.java | 6 test/jdk/java/net/httpclient/CancelledResponse.java | 3 test/jdk/java/net/httpclient/CancelledResponse2.java | 3 test/jdk/java/net/httpclient/ConcurrentResponses.java | 6 test/jdk/java/net/httpclient/ContentLengthHeaderTest.java | 3 test/jdk/java/net/httpclient/CookieHeaderTest.java | 6 test/jdk/java/net/httpclient/CustomRequestPublisher.java | 8 test/jdk/java/net/httpclient/CustomResponseSubscriber.java | 8 test/jdk/java/net/httpclient/DependentActionsTest.java | 6 test/jdk/java/net/httpclient/DependentPromiseActionsTest.java | 6 test/jdk/java/net/httpclient/DigestEchoClient.java | 9 test/jdk/java/net/httpclient/EmptyAuthenticate.java | 10 test/jdk/java/net/httpclient/EncodedCharsInURI.java | 6 test/jdk/java/net/httpclient/EscapedOctetsInURI.java | 6 test/jdk/java/net/httpclient/ExecutorShutdown.java | 6 test/jdk/java/net/httpclient/ExpectContinue.java | 8 test/jdk/java/net/httpclient/FilePublisher/FilePublisherPermsTest.java | 255 test/jdk/java/net/httpclient/FilePublisher/FilePublisherTest.java | 241 test/jdk/java/net/httpclient/FilePublisher/SecureZipFSProvider.java | 446 test/jdk/java/net/httpclient/FilePublisherTest.java | 237 test/jdk/java/net/httpclient/FlowAdapterPublisherTest.java | 6 test/jdk/java/net/httpclient/FlowAdapterSubscriberTest.java | 6 test/jdk/java/net/httpclient/ForbiddenHeadTest.java | 7 test/jdk/java/net/httpclient/GZIPInputStreamTest.java | 6 test/jdk/java/net/httpclient/HeadTest.java | 6 test/jdk/java/net/httpclient/HttpClientAuthRetryLimitTest.java | 126 test/jdk/java/net/httpclient/HttpClientBuilderTest.java | 6 test/jdk/java/net/httpclient/HttpClientClose.java | 5 test/jdk/java/net/httpclient/HttpClientLocalAddrTest.java | 5 test/jdk/java/net/httpclient/HttpClientSNITest.java | 6 test/jdk/java/net/httpclient/HttpClientShutdown.java | 5 test/jdk/java/net/httpclient/HttpGetInCancelledFuture.java | 6 test/jdk/java/net/httpclient/HttpRedirectTest.java | 9 test/jdk/java/net/httpclient/HttpResponseConnectionLabelTest.java | 10 test/jdk/java/net/httpclient/HttpResponseLimitingTest.java | 10 test/jdk/java/net/httpclient/HttpSlowServerTest.java | 9 test/jdk/java/net/httpclient/HttpVersionsTest.java | 8 test/jdk/java/net/httpclient/HttpsTunnelAuthTest.java | 9 test/jdk/java/net/httpclient/HttpsTunnelTest.java | 11 test/jdk/java/net/httpclient/ISO_8859_1_Test.java | 6 test/jdk/java/net/httpclient/ImmutableFlowItems.java | 8 test/jdk/java/net/httpclient/InvalidInputStreamSubscriptionRequest.java | 6 test/jdk/java/net/httpclient/InvalidSSLContextTest.java | 8 test/jdk/java/net/httpclient/InvalidSubscriptionRequest.java | 6 test/jdk/java/net/httpclient/LargeResponseTest.java | 9 test/jdk/java/net/httpclient/LightWeightHttpServer.java | 5 test/jdk/java/net/httpclient/LineBodyHandlerTest.java | 6 test/jdk/java/net/httpclient/ManyRequests.java | 2 test/jdk/java/net/httpclient/ManyRequestsLegacy.java | 4 test/jdk/java/net/httpclient/MappingResponseSubscriber.java | 8 test/jdk/java/net/httpclient/MaxStreams.java | 5 test/jdk/java/net/httpclient/NonAsciiCharsInURI.java | 6 test/jdk/java/net/httpclient/PathSubscriber/BodyHandlerOfFileDownloadTest.java | 6 test/jdk/java/net/httpclient/PathSubscriber/BodyHandlerOfFileTest.java | 6 test/jdk/java/net/httpclient/PathSubscriber/BodySubscriberOfFileTest.java | 6 test/jdk/java/net/httpclient/ProxySelectorTest.java | 8 test/jdk/java/net/httpclient/ProxyTest.java | 18 test/jdk/java/net/httpclient/RedirectMethodChange.java | 6 test/jdk/java/net/httpclient/RedirectTimeoutTest.java | 2 test/jdk/java/net/httpclient/RedirectWithCookie.java | 6 test/jdk/java/net/httpclient/Response1xxTest.java | 6 test/jdk/java/net/httpclient/Response204V2Test.java | 6 test/jdk/java/net/httpclient/ResponseBodyBeforeError.java | 7 test/jdk/java/net/httpclient/ResponsePublisher.java | 6 test/jdk/java/net/httpclient/RetryWithCookie.java | 6 test/jdk/java/net/httpclient/ServerCloseTest.java | 8 test/jdk/java/net/httpclient/ShortResponseBody.java | 7 test/jdk/java/net/httpclient/ShutdownNow.java | 6 test/jdk/java/net/httpclient/SmokeTest.java | 5 test/jdk/java/net/httpclient/SpecialHeadersTest.java | 5 test/jdk/java/net/httpclient/SplitResponse.java | 5 test/jdk/java/net/httpclient/StreamingBody.java | 6 test/jdk/java/net/httpclient/ThrowingPublishersCustomAfterCancel.java | 10 test/jdk/java/net/httpclient/ThrowingPublishersCustomBeforeCancel.java | 10 test/jdk/java/net/httpclient/ThrowingPublishersIOAfterCancel.java | 10 test/jdk/java/net/httpclient/ThrowingPublishersIOBeforeCancel.java | 10 test/jdk/java/net/httpclient/ThrowingPublishersInNextRequest.java | 10 test/jdk/java/net/httpclient/ThrowingPublishersInRequest.java | 10 test/jdk/java/net/httpclient/ThrowingPublishersInSubscribe.java | 10 test/jdk/java/net/httpclient/ThrowingPublishersSanity.java | 10 test/jdk/java/net/httpclient/ThrowingSubscribersAsInputStream.java | 10 test/jdk/java/net/httpclient/ThrowingSubscribersAsInputStreamAsync.java | 10 test/jdk/java/net/httpclient/ThrowingSubscribersAsLimiting.java | 8 test/jdk/java/net/httpclient/ThrowingSubscribersAsLimitingAsync.java | 8 test/jdk/java/net/httpclient/ThrowingSubscribersAsLines.java | 10 test/jdk/java/net/httpclient/ThrowingSubscribersAsLinesAsync.java | 10 test/jdk/java/net/httpclient/ThrowingSubscribersAsString.java | 10 test/jdk/java/net/httpclient/ThrowingSubscribersAsStringAsync.java | 10 test/jdk/java/net/httpclient/ThrowingSubscribersSanity.java | 10 test/jdk/java/net/httpclient/TimeoutBasic.java | 6 test/jdk/java/net/httpclient/TlsContextTest.java | 10 test/jdk/java/net/httpclient/UnauthorizedTest.java | 6 test/jdk/java/net/httpclient/UnknownBodyLengthTest.java | 5 test/jdk/java/net/httpclient/UserAuthWithAuthenticator.java | 2 test/jdk/java/net/httpclient/UserCookieTest.java | 6 test/jdk/java/net/httpclient/http2/BadHeadersTest.java | 6 test/jdk/java/net/httpclient/http2/BasicTest.java | 4 test/jdk/java/net/httpclient/http2/ConnectionFlowControlTest.java | 6 test/jdk/java/net/httpclient/http2/ConnectionReuseTest.java | 6 test/jdk/java/net/httpclient/http2/ContinuationFrameTest.java | 6 test/jdk/java/net/httpclient/http2/ErrorTest.java | 4 test/jdk/java/net/httpclient/http2/FixedThreadPoolTest.java | 4 test/jdk/java/net/httpclient/http2/H2GoAwayTest.java | 4 test/jdk/java/net/httpclient/http2/NoBodyTest.java | 6 test/jdk/java/net/httpclient/http2/ProxyTest2.java | 18 test/jdk/java/net/httpclient/http2/StreamFlowControlTest.java | 6 test/jdk/java/net/httpclient/http2/UserInfoTest.java | 5 test/jdk/java/net/httpclient/websocket/HandshakeUrlEncodingTest.java | 9 test/jdk/java/net/httpclient/websocket/WSHandshakeExceptionTest.java | 8 test/jdk/java/net/httpclient/websocket/WebSocketProxyTest.java | 8 test/jdk/java/net/httpclient/whitebox/FlowTestDriver.java | 1 test/jdk/java/net/httpclient/whitebox/SSLEchoTubeTestDriver.java | 3 test/jdk/java/net/httpclient/whitebox/SSLFlowDelegateTestDriver.java | 3 test/jdk/java/net/httpclient/whitebox/SSLTubeTestDriver.java | 3 test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/AbstractSSLTubeTest.java | 6 test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/FlowTest.java | 4 test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/SSLFlowDelegateTest.java | 9 test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/SSLTubeTest.java | 4 test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/SimpleSSLContext.java | 95 test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/SimpleSSLContextWhiteboxAdapter.java | 48 test/jdk/java/nio/channels/AsynchronousSocketChannel/CompletionHandlerRelease.java | 28 test/jdk/java/nio/file/spi/testapp/testapp/Main.java | 4 test/jdk/java/security/KeyStore/DisabledKnownType.java | 53 test/jdk/java/security/SecureRandom/TestStrong.java | 44 test/jdk/java/text/Format/NumberFormat/NumberRoundTrip.java | 284 test/jdk/java/util/Locale/LanguageSubtagRegistryTest.java | 4 test/jdk/java/util/TimeZone/TimeZoneData/VERSION | 2 test/jdk/javax/imageio/ReadAbortTest.java | 11 test/jdk/javax/imageio/WriteAbortTest.java | 15 test/jdk/javax/net/ssl/HttpsURLConnection/SubjectAltNameIP.java | 384 test/jdk/javax/sound/sampled/Clip/bug5070081.java | 5 test/jdk/javax/swing/JColorChooser/Test4234761.java | 14 test/jdk/javax/swing/JFileChooser/4966171/bug4966171.java | 6 test/jdk/javax/swing/JFrame/ClientDecoratedIcon/ClientDecoratedIconTest.java | 186 test/jdk/javax/swing/JFrame/ClientDecoratedIcon/DialogIconTest.java | 173 test/jdk/javax/swing/JFrame/ClientDecoratedIcon/DialogInheritIcon.java | 71 test/jdk/javax/swing/JMenuItem/LargeMenuTextArrowIconPosition.java | 92 test/jdk/javax/swing/JMenuItem/MenuItemTest/bug6197830.java | 1 test/jdk/javax/swing/JTabbedPane/4624207/bug4624207.java | 67 test/jdk/javax/swing/plaf/motif/bug4150591.java | 6 test/jdk/javax/swing/plaf/windows/bug4991587.java | 4 test/jdk/javax/swing/text/JTextComponent/bug4532590.java | 147 test/jdk/jdk/internal/misc/VM/RuntimeArguments.java | 1 test/jdk/jdk/internal/platform/docker/TestDockerMemoryMetrics.java | 4 test/jdk/jdk/internal/platform/docker/TestGetFreeSwapSpaceSize.java | 4 test/jdk/jdk/internal/platform/docker/TestLimitsUpdating.java | 4 test/jdk/jdk/internal/platform/docker/TestPidsLimit.java | 4 test/jdk/jdk/jfr/api/consumer/streaming/TestMetadataReconstructionWithRetainedStringPool.java | 106 test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetEvent.java | 5 test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.java | 4 test/jdk/jdk/jfr/event/gc/stacktrace/TestG1OldAllocationPendingStackTrace.java | 4 test/jdk/jdk/jfr/event/oldobject/OldObjects.java | 14 test/jdk/jdk/jfr/event/oldobject/TestDFSWithSmallStack.java | 101 test/jdk/jdk/jfr/event/tracing/TestConstructors.java | 167 test/jdk/jdk/jfr/event/tracing/TestInstrumentation.java | 4 test/jdk/security/infra/java/security/cert/CertPathValidator/certification/CAInterop.java | 37 test/jdk/sun/java2d/OpenGL/FlipCoexistTest.java | 134 test/jdk/sun/java2d/OpenGL/MultiWindowFillTest.java | 122 test/jdk/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java | 106 test/jdk/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh | 3 test/jdk/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java | 2 test/jdk/sun/net/www/protocol/http/NTLMHeadTest.java | 16 test/jdk/sun/net/www/protocol/http/TestTransparentNTLM.java | 3 test/jdk/sun/net/www/protocol/https/HttpsURLConnection/GetServerCertificates.java | 307 test/jdk/sun/security/krb5/auto/ReplayCacheTestProc.java | 18 test/jdk/sun/security/krb5/auto/UserIterCount.java | 22 test/jdk/sun/security/krb5/config/ConfPlusProp.java | 9 test/jdk/sun/security/lib/cacerts/VerifyCACerts.java | 12 test/jdk/sun/security/pkcs11/Cipher/KeyWrap/NISTWrapKAT.java | 18 test/jdk/sun/security/pkcs11/Cipher/KeyWrap/TestGeneral.java | 1 test/jdk/sun/security/pkcs11/Config/ReadConfInUTF16Env.java | 6 test/jdk/sun/security/pkcs11/PKCS11Test.java | 2 test/jdk/sun/security/pkcs11/Secmod/AddPrivateKey.java | 6 test/jdk/sun/security/pkcs11/Secmod/AddTrustedCert.java | 5 test/jdk/sun/security/pkcs11/Secmod/Crypto.java | 7 test/jdk/sun/security/pkcs11/Secmod/GetPrivateKey.java | 7 test/jdk/sun/security/pkcs11/Secmod/JksSetPrivateKey.java | 7 test/jdk/sun/security/pkcs11/Secmod/LoadKeystore.java | 7 test/jdk/sun/security/pkcs11/Secmod/TestNssDbSqlite.java | 20 test/jdk/sun/security/pkcs11/Secmod/TrustAnchors.java | 7 test/jdk/sun/security/pkcs11/SecmodTest.java | 5 test/jdk/sun/security/pkcs11/ec/ReadCertificates.java | 4 test/jdk/sun/security/pkcs11/ec/ReadPKCS12.java | 4 test/jdk/sun/security/pkcs11/ec/TestKeyFactory.java | 7 test/jdk/sun/security/pkcs11/rsa/KeyWrap.java | 10 test/jdk/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java | 4 test/jdk/sun/security/pkcs11/tls/TestKeyMaterial.java | 7 test/jdk/sun/security/pkcs11/tls/TestKeyMaterialChaCha20.java | 11 test/jdk/sun/security/pkcs11/tls/TestMasterSecret.java | 7 test/jdk/sun/security/pkcs11/tls/TestPRF.java | 7 test/jdk/sun/security/pkcs11/tls/TestPremaster.java | 10 test/jdk/sun/security/pkcs11/tls/tls12/FipsModeTLS12.java | 14 test/jdk/sun/security/provider/NamedEdDSA.java | 239 test/jdk/sun/security/provider/NamedKeyFactoryTest.java | 261 test/jdk/sun/security/provider/acvp/Launcher.java | 8 test/jdk/sun/security/provider/acvp/ML_DSA_Test.java | 14 test/jdk/sun/security/provider/acvp/ML_KEM_Test.java | 19 test/jdk/sun/security/provider/named/NamedEdDSA.java | 256 test/jdk/sun/security/provider/named/NamedKeyFactoryTest.java | 283 test/jdk/sun/security/provider/named/NamedKeys.java | 103 test/jdk/sun/security/provider/pqc/PrivateKeyEncodings.java | 227 test/jdk/sun/security/provider/pqc/SeedOrExpanded.java | 194 test/jdk/sun/security/ssl/CertPathRestrictions/TLSRestrictions.java | 6 test/jdk/sun/security/ssl/X509KeyManager/PreferredKey.java | 150 test/jdk/sun/security/ssl/X509KeyManager/SelectOneKeyOutOfMany.java | 297 test/jdk/sun/security/util/Resources/Usages.java | 7 test/jdk/sun/util/resources/cldr/TimeZoneNamesTest.java | 360 test/lib-test/jdk/test/lib/security/DerUtilsTest.java | 116 test/lib/RedefineClassHelper.java | 2 test/lib/jdk/test/lib/containers/docker/DockerTestUtils.java | 2 test/lib/jdk/test/lib/process/Proc.java | 11 test/lib/jdk/test/lib/process/ProcessTools.java | 4 test/lib/jdk/test/lib/security/CertificateBuilder.java | 127 test/lib/jdk/test/lib/security/DerUtils.java | 83 test/lib/jdk/test/lib/security/RepositoryFileReader.java | 160 test/lib/jdk/test/lib/security/timestamp/TsaHandler.java | 9 test/lib/jdk/test/lib/security/timestamp/TsaParam.java | 26 test/lib/jdk/test/lib/security/timestamp/TsaSigner.java | 41 test/lib/jdk/test/lib/threaddump/ThreadDump.java | 10 test/lib/native/testlib_thread_barriers.h | 83 test/micro/org/openjdk/bench/javax/imageio/plugins/jpeg/LargeJpegReadWithProgressBench.java | 166 test/micro/org/openjdk/bench/javax/imageio/plugins/jpeg/LargeJpegReadWriteBench.java | 141 test/micro/org/openjdk/bench/jdk/incubator/vector/Float16OperationsBenchmark.java | 2 test/micro/org/openjdk/bench/sun/net/httpserver/HeaderNormalization.java | 120 1248 files changed, 38243 insertions(+), 20154 deletions(-) dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmp3_otou4s/openjdk-25_25.0.3+9-2~deb13u1.dsc: no acceptable signature found dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmp3_otou4s/openjdk-25_25.0.4+7-1~deb13u1.dsc: no acceptable signature found diff -Nru openjdk-25-25.0.3+9/.gitignore openjdk-25-25.0.4+7/.gitignore --- openjdk-25-25.0.3+9/.gitignore 2026-04-17 19:08:13.000000000 +0000 +++ openjdk-25-25.0.4+7/.gitignore 2026-07-13 06:56:01.000000000 +0000 @@ -23,5 +23,3 @@ /.gdbinit /.lldbinit **/core.[0-9]* -*.rej -*.orig diff -Nru openjdk-25-25.0.3+9/.jcheck/conf openjdk-25-25.0.4+7/.jcheck/conf --- openjdk-25-25.0.3+9/.jcheck/conf 2026-04-17 19:08:13.000000000 +0000 +++ openjdk-25-25.0.4+7/.jcheck/conf 2026-07-13 06:56:01.000000000 +0000 @@ -1,7 +1,7 @@ [general] project=jdk-updates jbs=JDK -version=25.0.3 +version=25.0.4 [checks] error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists,copyright diff -Nru openjdk-25-25.0.3+9/debian/changelog openjdk-25-25.0.4+7/debian/changelog --- openjdk-25-25.0.3+9/debian/changelog 2026-04-29 16:35:30.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/changelog 2026-08-10 11:41:21.000000000 +0000 @@ -1,8 +1,56 @@ -openjdk-25 (25.0.3+9-2~deb13u1) trixie-security; urgency=medium +openjdk-25 (25.0.4+7-1~deb13u1) trixie-security; urgency=medium * Rebuild for trixie - -- Moritz Muehlenhoff Wed, 29 Apr 2026 18:35:30 +0200 + -- Moritz Muehlenhoff Mon, 10 Aug 2026 13:41:21 +0200 + +openjdk-25 (25.0.4+7-1) unstable; urgency=medium + + * OpenJDK 25.0.4 release, build 7. + - CVEs: + + CVE-2026-46968 + + CVE-2026-46917 + + CVE-2026-47010 + + CVE-2026-47021 + + CVE-2026-47027 + + CVE-2026-60147 + + CVE-2026-47059 + + CVE-2026-47063 + + CVE-2026-41254 + - Release notes: https://bit.ly/openjdk2504 + * d/{man, watch}: Regenerate. + + -- Vladimir Petko Wed, 22 Jul 2026 12:23:02 +1200 + +openjdk-25 (25.0.4~6ea-1) unstable; urgency=medium + + * OpenJDK 25.0.4 snapshot, build 6. + * d/t/problems.csv: Add openjdk-28, remove obsolete versions, + add new exclusions. + * d/p/jdk-8387580.diff: Apply upstream patch to resolve S390x + ftbfs (JDK-8387580). + * d/p/jdk-8377035.diff: Cherry-pick upstream patch to disable + failing JSR166 S390x tests (JDK-8377035). + * d/t/jdk-8388170-proposed.diff: Apply patch to resolve + deoptimization crash on S390x (JDK-8388170). + * Regenerate files. + + -- Vladimir Petko Thu, 16 Jul 2026 15:06:30 +1200 + +openjdk-25 (25.0.4~4ea-1) unstable; urgency=medium + + * OpenJDK 25.0.4 snapshot, build 4. + * d/rules: Do not perform copyright validation for old releases. + * d/rules: Check DEB_BUILD_PROFILES in addition to DEB_BUILD_OPTIONS + to set up with_check variable. Do not check control files if + with_check is disabled (Closes: #1137499). + * d/p/jdk-8385738.diff: Cherry-pick upstream patch to generate + reproducible javadoc snippet ids (JDK-8385738). + * d/p/jdk-8369817.diff: Drop patch applied upstream. + * d/control.in: Add myself to uploaders. + * Regenerate files. + + -- Vladimir Petko Mon, 08 Jun 2026 11:04:06 +1200 openjdk-25 (25.0.3+9-2) unstable; urgency=medium @@ -76,7 +124,7 @@ This should be resolved upstream. [ Matthias Klose ] - * d/t/jtreg-autopkgtest.in: Increase the timeout from 10 to 30 seconds + * d/t/jtreg-autopkgtest.in: Increase the timeout from 10 to 30 seconds on loong64 (zero VM). -- Matthias Klose Sun, 29 Mar 2026 11:53:45 +0200 diff -Nru openjdk-25-25.0.3+9/debian/control openjdk-25-25.0.4+7/debian/control --- openjdk-25-25.0.3+9/debian/control 2026-04-29 16:35:18.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/control 2026-08-10 11:41:05.000000000 +0000 @@ -2,7 +2,7 @@ Section: java Priority: optional Maintainer: OpenJDK Team -Uploaders: Matthias Klose +Uploaders: Matthias Klose , Vladimir Petko Build-Depends: debhelper (>= 11), m4, lsb-release, zip, unzip, sharutils, gawk, cpio, procps, wdiff, pkgconf, fastjar (>= 2:0.96-0ubuntu2), diff -Nru openjdk-25-25.0.3+9/debian/control.in openjdk-25-25.0.4+7/debian/control.in --- openjdk-25-25.0.3+9/debian/control.in 2026-04-29 16:35:09.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/control.in 2026-08-10 11:41:00.000000000 +0000 @@ -2,7 +2,7 @@ Section: java Priority: optional Maintainer: OpenJDK Team <@basename@@packages.debian.org> -Uploaders: Matthias Klose +Uploaders: Matthias Klose , Vladimir Petko Build-Depends: @bd_debhelper@ m4, lsb-release, zip, unzip, sharutils, gawk, cpio, procps, wdiff, @bd_pkgconf@ @bd_fastjar@ diff -Nru openjdk-25-25.0.3+9/debian/copyright openjdk-25-25.0.4+7/debian/copyright --- openjdk-25-25.0.3+9/debian/copyright 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/copyright 2026-07-22 00:22:43.000000000 +0000 @@ -2646,7 +2646,7 @@ --- end of LICENSE --- . ------------------------------------------------------------------------------ - %% This notice is provided with respect to The FreeType Project: Freetype v2.14.2, + %% This notice is provided with respect to The FreeType Project: Freetype v2.14.3, which may be included with JRE 25, JDK 25 and OpenJDK 25 . --- begin of LICENSE --- @@ -2672,24 +2672,24 @@ FreeType License . . - Copyright (C) 1996-2025 by David Turner, Robert Wilhelm, and Werner Lemberg. - Copyright (C) 2007-2025 by Dereg Clegg and Michael Toftdal. - Copyright (C) 1996-2025 by Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. - Copyright (C) 2022-2025 by David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and - Copyright (C) 2004-2025 by Masatake YAMATO and Redhat K.K. - Copyright (C) 2007-2025 by Derek Clegg and Michael Toftdal. - Copyright (C) 2003-2025 by Masatake YAMATO, Red Hat K.K., - Copyright (C) 1996-2025 by David Turner, Robert Wilhelm, Werner Lemberg, and Dominik Röttsches. - Copyright (C) 2007-2025 by David Turner. - Copyright (C) 2022-2025 by David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. - Copyright (C) 2007-2025 by Rahul Bhalerao , . - Copyright (C) 2025 by Behdad Esfahbod. - Copyright (C) 2008-2025 by David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya. - Copyright (C) 2013-2025 by Google, Inc. - Copyright (C) 2019-2025 by Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg. - Copyright (C) 2009-2025 by Oran Agra and Mickey Gabel. - Copyright (C) 2018-2025 by David Turner, Robert Wilhelm, Dominik Röttsches, and Werner Lemberg. - Copyright (C) 2004-2025 by David Turner, Robert Wilhelm, Werner Lemberg, and George Williams. + Copyright (C) 1996-2026 by David Turner, Robert Wilhelm, and Werner Lemberg. + Copyright (C) 2007-2026 by Dereg Clegg and Michael Toftdal. + Copyright (C) 1996-2026 by Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. + Copyright (C) 2022-2026 by David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and + Copyright (C) 2004-2026 by Masatake YAMATO and Redhat K.K. + Copyright (C) 2007-2026 by Derek Clegg and Michael Toftdal. + Copyright (C) 2003-2026 by Masatake YAMATO, Red Hat K.K., + Copyright (C) 1996-2026 by David Turner, Robert Wilhelm, Werner Lemberg, and Dominik Röttsches. + Copyright (C) 2007-2026 by David Turner. + Copyright (C) 2022-2026 by David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. + Copyright (C) 2007-2026 by Rahul Bhalerao , . + Copyright (C) 2025-2026 by Behdad Esfahbod. + Copyright (C) 2008-2026 by David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya. + Copyright (C) 2013-2026 by Google, Inc. + Copyright (C) 2019-2026 by Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg. + Copyright (C) 2009-2026 by Oran Agra and Mickey Gabel. + Copyright (C) 2018-2026 by David Turner, Robert Wilhelm, Dominik Röttsches, and Werner Lemberg. + Copyright (C) 2004-2026 by David Turner, Robert Wilhelm, Werner Lemberg, and George Williams. The FreeType Project LICENSE ---------------------------- . @@ -2741,7 +2741,7 @@ . """ Portions of this software are copyright © The FreeType - Project (www.freetype.org). All rights reserved. + Project (https://freetype.org). All rights reserved. """ . Please replace with the value from the FreeType version you @@ -2855,7 +2855,7 @@ . Our home page can be found at . - https://www.freetype.org + https://freetype.org . . . @@ -2958,7 +2958,7 @@ --- end of LICENSE --- . ------------------------------------------------------------------------------ - %% This notice is provided with respect to Harfbuzz 12.3.2, + %% This notice is provided with respect to Harfbuzz v14.2.0, which may be included with JRE 25, JDK 25 and OpenJDK 25 . --- begin of LICENSE --- @@ -3038,7 +3038,7 @@ The below applies to the following file(s): libharfbuzz/hb-unicode-emoji-table.hh . - © 2024 Unicode®, Inc. + © 2025 Unicode®, Inc. . Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. @@ -3069,7 +3069,7 @@ --- end of LICENSE --- . ------------------------------------------------------------------------------ - %% This notice is provided with respect to Little Color Management System (LCMS) v2.17, + %% This notice is provided with respect to Little Color Management System (LCMS) v2.19.1, which may be included with JRE 25, JDK 25 and OpenJDK 25 . --- begin of LICENSE --- @@ -3079,7 +3079,7 @@ . MIT License . - Copyright (C) 1998-2025 Marti Maria Saguer + Copyright (C) 1998-2026 Marti Maria Saguer . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -3160,6 +3160,7 @@ Lovell Fuller Eli Schwartz Diogo Teles Sant'Anna + Vlad Erium . Special Thanks -------------- diff -Nru openjdk-25-25.0.3+9/debian/man/jar.1 openjdk-25-25.0.4+7/debian/man/jar.1 --- openjdk-25-25.0.3+9/debian/man/jar.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jar.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JAR" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JAR" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jar \- create an archive for classes and resources, and manipulate or restore individual classes or resources from an archive @@ -15,7 +15,7 @@ applets (not supported since JDK 11) or applications; however, beginning with JDK 9, users can use the \f[CR]jar\f[R] command to create modular JARs. -For transportation and deployment, it\[aq]s usually more convenient to +For transportation and deployment, it\(aqs usually more convenient to package modules as modular JARs. .PP The syntax for the \f[CR]jar\f[R] command resembles the syntax for the @@ -34,7 +34,7 @@ download time. The \f[CR]jar\f[R] command also enables individual entries in a file to be signed so that their origin can be authenticated. -A JAR file can be used as a class path entry, whether or not it\[aq]s +A JAR file can be used as a class path entry, whether or not it\(aqs compressed. .PP An archive becomes a modular JAR when you include a module descriptor, @@ -43,11 +43,11 @@ The following operations described in \f[B]Operation Modifiers Valid Only in Create and Update Modes\f[R] are valid only when creating or updating a modular jar or updating an existing non\-modular jar: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-module\-version\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-hash\-modules\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-module\-path\f[R] .PP \f[B]Note:\f[R] @@ -97,11 +97,9 @@ directory and includes the \f[I]files\f[R] specified at the end of the command line. .RS -.PP \f[CR]jar\f[R] [\f[I]OPTION\f[R] ...] [ [\f[CR]\-\-release\f[R] \f[I]VERSION\f[R]] [\f[CR]\-C\f[R] \f[I]dir\f[R]] \f[I]files\f[R]] -.PP When used with the extract operation mode, specifies the destination directory where the JAR file will be extracted. Unlike with the create operation mode, this option can be specified only @@ -119,11 +117,10 @@ \f[I]VERSION\f[R] must be must be a positive integer whose value is 9 or greater. .RS -.PP At run time, where more than one version of a class exists in the JAR, the JDK will use the first one it finds, searching initially in the -directory tree whose \f[I]VERSION\f[R] number matches the JDK\[aq]s -major version number. +directory tree whose \f[I]VERSION\f[R] number matches the JDK\(aqs major +version number. It will then look in directories with successively lower \f[I]VERSION\f[R] numbers, and finally look in the root of the JAR. .RE @@ -142,7 +139,7 @@ Includes the manifest information from the given manifest file. .TP \f[CR]\-M\f[R] or \f[CR]\-\-no\-manifest\f[R] -Doesn\[aq]t create a manifest file for the entries. +Doesn\(aqt create a manifest file for the entries. .TP \f[CR]\-\-module\-version=\f[R]\f[I]VERSION\f[R] Specifies the module version, when creating or updating a modular JAR @@ -156,7 +153,7 @@ \f[CR]\-p\f[R] or \f[CR]\-\-module\-path\f[R] Specifies the location of module dependence for generating the hash. .TP -\f[CR]\[at]\f[R]\f[I]file\f[R] +\f[CR]\(at\f[R]\f[I]file\f[R] Reads \f[CR]jar\f[R] options and file names from a text file as if they were supplied on the command line .SH OPERATION MODIFIERS VALID ONLY IN CREATE, UPDATE, AND GENERATE\-INDEX MODES @@ -171,7 +168,7 @@ \f[CR]\-\-date=\f[R]\f[I]TIMESTAMP\f[R] The timestamp in ISO\-8601 extended offset date\-time with optional time\-zone format, to use for the timestamp of the entries, e.g. -\[dq]2022\-02\-12T12:30:00\-05:00\[dq]. +\(dq2022\-02\-12T12:30:00\-05:00\(dq. .SH OPERATION MODIFIERS VALID ONLY IN EXTRACT MODE .TP \f[CR]\-\-dir\f[R] \f[I]DIR\f[R] @@ -202,23 +199,23 @@ file using tools other than the \f[CR]jar\f[R] command. The \-\-validate option may be used to perform the following integrity checks against a JAR file: -.IP \[bu] 2 +.IP \(bu 2 That there are no duplicate Zip entry file names -.IP \[bu] 2 +.IP \(bu 2 Verify that the Zip entry file name: .RS 2 -.IP \[bu] 2 +.IP \(bu 2 is not an absolute path -.IP \[bu] 2 -the file name is not \[aq].\[aq] or \[aq]..\[aq] -.IP \[bu] 2 -does not contain a backslash, \[aq]\[rs]\[aq] -.IP \[bu] 2 +.IP \(bu 2 +the file name is not \(aq.\(aq or \(aq..\(aq +.IP \(bu 2 +does not contain a backslash, \(aq\(rs\(aq +.IP \(bu 2 does not contain a drive letter -.IP \[bu] 2 -path element does not include \[aq].\[aq] or \[aq].. +.IP \(bu 2 +path element does not include \(aq.\(aq or \(aq.. .RE -.IP \[bu] 2 +.IP \(bu 2 The API exported by a multi\-release jar archive is consistent across all different release versions. .PP @@ -228,7 +225,7 @@ When an integrity issue is reported, it will often require that the JAR file is re\-created by the original source of the JAR file. .SH EXAMPLES OF JAR COMMAND SYNTAX -.IP \[bu] 2 +.IP \(bu 2 Create an archive, \f[CR]classes.jar\f[R], that contains two class files, \f[CR]Foo.class\f[R] and \f[CR]Bar.class\f[R]. .RS 2 @@ -237,17 +234,17 @@ \f[CR]jar \-\-create \-\-file classes.jar Foo.class Bar.class\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 Create an archive, \f[CR]classes.jar\f[R], that contains two class files, \f[CR]Foo.class\f[R] and \f[CR]Bar.class\f[R] setting the last modified date and time to \f[CR]2021 Jan 6 12:36:00\f[R]. .RS 2 .RS .PP -\f[CR]jar \-\-create \-\-date=\[dq]2021\-01\-06T14:36:00+02:00\[dq] \-\-file=classes.jar Foo.class Bar.class\f[R] +\f[CR]jar \-\-create \-\-date=\(dq2021\-01\-06T14:36:00+02:00\(dq \-\-file=classes.jar Foo.class Bar.class\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 Create an archive, \f[CR]classes.jar\f[R], by using an existing manifest, \f[CR]mymanifest\f[R], that contains all of the files in the directory \f[CR]foo/\f[R]. @@ -257,7 +254,7 @@ \f[CR]jar \-\-create \-\-file classes.jar \-\-manifest mymanifest \-C foo/\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 Create a modular JAR archive,\f[CR]foo.jar\f[R], where the module descriptor is located in \f[CR]classes/module\-info.class\f[R]. .RS 2 @@ -266,7 +263,7 @@ \f[CR]jar \-\-create \-\-file foo.jar \-\-main\-class com.foo.Main \-\-module\-version 1.0 \-C foo/classes resources\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 Update an existing non\-modular JAR, \f[CR]foo.jar\f[R], to a modular JAR file. .RS 2 @@ -275,7 +272,7 @@ \f[CR]jar \-\-update \-\-file foo.jar \-\-main\-class com.foo.Main \-\-module\-version 1.0 \-C foo/module\-info.class\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 Create a versioned or multi\-release JAR, \f[CR]foo.jar\f[R], that places the files in the \f[CR]classes\f[R] directory at the root of the JAR, and the files in the \f[CR]classes\-10\f[R] directory in the @@ -331,7 +328,7 @@ \f[CR]com.foo.NameProvider\f[R] class is the one at the root of the JAR, in \f[CR]com/foo\f[R]. .RE -.IP \[bu] 2 +.IP \(bu 2 Create an archive, \f[CR]my.jar\f[R], by reading options and lists of class files from the file \f[CR]classes.list\f[R]. .RS 2 @@ -340,17 +337,17 @@ .PP To shorten or simplify the \f[CR]jar\f[R] command, you can provide an arg file that lists the files to include in the JAR file and pass it to -the \f[CR]jar\f[R] command with the at sign (\f[CR]\[at]\f[R]) as a +the \f[CR]jar\f[R] command with the at sign (\f[CR]\(at\f[R]) as a prefix. .RS .PP -\f[CR]jar \-\-create \-\-file my.jar \[at]classes.list\f[R] +\f[CR]jar \-\-create \-\-file my.jar \(atclasses.list\f[R] .RE .PP If one or more entries in the arg file cannot be found then the jar command fails without creating the JAR file. .RE -.IP \[bu] 2 +.IP \(bu 2 Extract the JAR file \f[CR]foo.jar\f[R] to \f[CR]/tmp/bar/\f[R] directory: .RS 2 diff -Nru openjdk-25-25.0.3+9/debian/man/jarsigner.1 openjdk-25-25.0.4+7/debian/man/jarsigner.1 --- openjdk-25-25.0.3+9/debian/man/jarsigner.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jarsigner.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,7 +1,7 @@ '\" t -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JARSIGNER" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JARSIGNER" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jarsigner \- sign and verify Java Archive (JAR) files .SH SYNOPSIS @@ -26,19 +26,17 @@ The aliases are defined in the keystore specified by \f[CR]\-keystore\f[R] or the default keystore. .RS -.PP If you also specify the \f[CR]\-strict\f[R] option, and the \f[CR]jarsigner\f[R] command detects severe warnings, the message, -\[dq]jar verified, with signer errors\[dq] is displayed. +\(dqjar verified, with signer errors\(dq is displayed. .RE .TP \f[I]jar\-file\f[R] The JAR file to be signed. .RS -.PP If you also specified the \f[CR]\-strict\f[R] option, and the \f[CR]jarsigner\f[R] command detected severe warnings, the message, -\[dq]jar signed, with signer errors\[dq] is displayed. +\(dqjar signed, with signer errors\(dq is displayed. .RE .TP \f[I]alias\f[R] @@ -50,9 +48,9 @@ \f[CR]jarsigner\f[R]. .SH DESCRIPTION The \f[CR]jarsigner\f[R] tool has two purposes: -.IP \[bu] 2 +.IP \(bu 2 To sign Java Archive (JAR) files. -.IP \[bu] 2 +.IP \(bu 2 To verify the signatures and integrity of signed JAR files. .PP The JAR feature enables the packaging of class files, images, sounds, @@ -69,20 +67,20 @@ company, and so on). Similar to a handwritten signature, a digital signature has many useful characteristics: -.IP \[bu] 2 +.IP \(bu 2 Its authenticity can be verified by a computation that uses the public key corresponding to the private key used to generate the signature. -.IP \[bu] 2 -It can\[aq]t be forged, assuming the private key is kept secret. -.IP \[bu] 2 -It is a function of the data signed and thus can\[aq]t be claimed to be +.IP \(bu 2 +It can\(aqt be forged, assuming the private key is kept secret. +.IP \(bu 2 +It is a function of the data signed and thus can\(aqt be claimed to be the signature for other data as well. -.IP \[bu] 2 -The signed data can\[aq]t be changed. -If the data is changed, then the signature can\[aq]t be verified as +.IP \(bu 2 +The signed data can\(aqt be changed. +If the data is changed, then the signature can\(aqt be verified as authentic. .PP -To generate an entity\[aq]s signature for a file, the entity must first +To generate an entity\(aqs signature for a file, the entity must first have a public/private key pair associated with it and one or more certificates that authenticate its public key. A certificate is a digitally signed statement from one entity that says @@ -95,7 +93,7 @@ The \f[CR]keytool\f[R] command is used to create and administer keystores. .PP -The \f[CR]jarsigner\f[R] command uses an entity\[aq]s private key to +The \f[CR]jarsigner\f[R] command uses an entity\(aqs private key to generate a signature. The signed JAR file contains, among other things, a copy of the certificate from the keystore for the public key corresponding to the @@ -123,9 +121,9 @@ Use the \f[CR]\-verify\f[R] option to verify a signed JAR file. .PP The \f[CR]jarsigner\f[R] command also attempts to validate the -signer\[aq]s certificate after signing or verifying. +signer\(aqs certificate after signing or verifying. During validation, it checks the revocation status of each certificate -in the signer\[aq]s certificate chain when the \f[CR]\-revCheck\f[R] +in the signer\(aqs certificate chain when the \f[CR]\-revCheck\f[R] option is specified. If there is a validation error or any other problem, the command generates warning messages. @@ -143,28 +141,28 @@ .PP Keystores are protected with a password, so the store password must be specified. -You are prompted for it when you don\[aq]t specify it on the command +You are prompted for it when you don\(aqt specify it on the command line. Similarly, private keys are protected in a keystore with a password, so -the private key\[aq]s password must be specified, and you are prompted -for the password when you don\[aq]t specify it on the command line and -it isn\[aq]t the same as the store password. +the private key\(aqs password must be specified, and you are prompted +for the password when you don\(aqt specify it on the command line and it +isn\(aqt the same as the store password. .SH KEYSTORE LOCATION The \f[CR]jarsigner\f[R] command has a \f[CR]\-keystore\f[R] option for specifying the URL of the keystore to be used. The keystore is by default stored in a file named \f[CR].keystore\f[R] -in the user\[aq]s home directory, as determined by the +in the user\(aqs home directory, as determined by the \f[CR]user.home\f[R] system property. .PP \f[B]Linux and macOS:\f[R] \f[CR]user.home\f[R] defaults to the -user\[aq]s home directory. +user\(aqs home directory. .PP The input stream from the \f[CR]\-keystore\f[R] option is passed to the \f[CR]KeyStore.load\f[R] method. If \f[CR]NONE\f[R] is specified as the URL, then a null stream is passed to the \f[CR]KeyStore.load\f[R] method. \f[CR]NONE\f[R] should be specified when the \f[CR]KeyStore\f[R] class -isn\[aq]t file based, for example, when it resides on a hardware token +isn\(aqt file based, for example, when it resides on a hardware token device. .SH KEYSTORE IMPLEMENTATION The \f[CR]KeyStore\f[R] class provided in the \f[CR]java.security\f[R] @@ -179,8 +177,8 @@ The default keystore implementation is \f[CR]PKCS12\f[R]. This is a cross platform keystore based on the RSA PKCS12 Personal Information Exchange Syntax Standard. -This standard is primarily meant for storing or transporting a -user\[aq]s private keys, certificates, and miscellaneous secrets. +This standard is primarily meant for storing or transporting a user\(aqs +private keys, certificates, and miscellaneous secrets. There is another built\-in implementation, provided by Oracle. It implements the keystore as a file with a proprietary keystore type (format) named \f[CR]JKS\f[R]. @@ -209,7 +207,7 @@ A keystore type defines the storage and data format of the keystore information and the algorithms used to protect private keys in the keystore and the integrity of the keystore itself. -Keystore implementations of different types aren\[aq]t compatible. +Keystore implementations of different types aren\(aqt compatible. .PP The \f[CR]jarsigner\f[R] commands can read file\-based keystores from any location that can be specified using a URL. @@ -220,7 +218,7 @@ specify a keystore type at the command line with the \f[CR]\-storetype\f[R] option. .PP -If you don\[aq]t explicitly specify a keystore type, then the tools +If you don\(aqt explicitly specify a keystore type, then the tools choose a keystore implementation based on the value of the \f[CR]keystore.type\f[R] property specified in the security properties file. @@ -252,12 +250,12 @@ \f[CR]keystore.type=pkcs12\f[R] .RE .PP -Case doesn\[aq]t matter in keystore type designations. +Case doesn\(aqt matter in keystore type designations. For example, \f[CR]JKS\f[R] is the same as \f[CR]jks\f[R]. .PP To have the tools utilize a keystore implementation other than the default, you can change that line to specify a different keystore type. -For example, if you want to use the Oracle\[aq]s \f[CR]jks\f[R] keystore +For example, if you want to use the Oracle\(aqs \f[CR]jks\f[R] keystore implementation, then change the line to the following: .RS .PP @@ -370,14 +368,14 @@ T}@T{ T} .TE -.IP \[bu] 2 +.IP \(bu 2 If an RSASSA\-PSS key is encoded with parameters, then jarsigner will use the same parameters in the signature. Otherwise, jarsigner will use parameters that are determined by the size of the key as specified in the table above. For example, an 3072\-bit RSASSA\-PSS key will use RSASSA\-PSS as the signature algorithm and SHA\-384 as the hash and MGF1 algorithms. -.IP \[bu] 2 +.IP \(bu 2 If a key algorithm is not listed in this table, the \f[CR].DSA\f[R] extension is used when signing a JAR file. .PP @@ -397,7 +395,7 @@ \f[CR]\-J\-Djava.security.debug=jar\f[R]. The \f[CR]jdk.jar.disabledAlgorithms\f[R] and \f[CR]jdk.security.legacyAlgorithms\f[R] security properties are defined -in the \f[CR]java.security\f[R] file (located in the JDK\[aq]s +in the \f[CR]java.security\f[R] file (located in the JDK\(aqs \f[CR]$JAVA_HOME/conf/security\f[R] directory). .PP \f[B]Note:\f[R] @@ -413,9 +411,9 @@ When the \f[CR]jarsigner\f[R] command is used to sign a JAR file, the output signed JAR file is exactly the same as the input JAR file, except that it has two additional files placed in the META\-INF directory: -.IP \[bu] 2 +.IP \(bu 2 A signature file with an \f[CR].SF\f[R] extension -.IP \[bu] 2 +.IP \(bu 2 A signature block file with a \f[CR].DSA\f[R], \f[CR].RSA\f[R], or \f[CR].EC\f[R] extension .PP @@ -431,7 +429,7 @@ all converted to uppercase. If the alias name has fewer than 8 characters, then the full alias name is used. -If the alias name contains any characters that aren\[aq]t allowed in a +If the alias name contains any characters that aren\(aqt allowed in a signature file name, then each such character is converted to an underscore (_) character in forming the file name. Valid characters include letters, digits, underscores, and hyphens. @@ -441,11 +439,11 @@ command is used to sign the file. For each source file included in the JAR file, the \f[CR].SF\f[R] file has two lines, such as in the manifest file, that list the following: -.IP \[bu] 2 +.IP \(bu 2 File name -.IP \[bu] 2 +.IP \(bu 2 Name of the digest algorithm (SHA) -.IP \[bu] 2 +.IP \(bu 2 SHA digest value .PP \f[B]Note:\f[R] @@ -475,13 +473,13 @@ .SH SIGNATURE TIME STAMP The \f[CR]jarsigner\f[R] command used with the following options generates and stores a signature time stamp when signing a JAR file: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-tsa\f[R] \f[I]url\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-tsacert\f[R] \f[I]alias\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-tsapolicyid\f[R] \f[I]policyid\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-tsadigestalg\f[R] \f[I]algorithm\f[R] .PP See \f[B]Options for jarsigner\f[R]. @@ -500,7 +498,7 @@ signature block file. It also ensures that the signature is a valid signature of the corresponding signature (\f[CR].SF\f[R]) file, and thus the -\f[CR].SF\f[R] file wasn\[aq]t tampered with. +\f[CR].SF\f[R] file wasn\(aqt tampered with. .RE .IP "2." 3 Verify the digest listed in each entry in the \f[CR].SF\f[R] file with @@ -540,7 +538,7 @@ .IP "3." 3 Read each file in the JAR file that has an entry in the \f[CR].SF\f[R] file. -While reading, compute the file\[aq]s digest and compare the result with +While reading, compute the file\(aqs digest and compare the result with the digest for this file in the manifest section. The digests should be the same or verification fails. .RS 4 @@ -585,18 +583,18 @@ The following sections describe the options for the \f[CR]jarsigner\f[R]. Be aware of the following standards: -.IP \[bu] 2 +.IP \(bu 2 All option names are preceded by a hyphen sign (\-). -.IP \[bu] 2 +.IP \(bu 2 The options can be provided in any order. -.IP \[bu] 2 +.IP \(bu 2 Items that are in italics or underlined (option values) represent the actual values that must be supplied. -.IP \[bu] 2 +.IP \(bu 2 The \f[CR]\-storepass\f[R], \f[CR]\-keypass\f[R], \f[CR]\-sigfile\f[R], \f[CR]\-sigalg\f[R], \f[CR]\-digestalg\f[R], \f[CR]\-signedjar\f[R], and TSA\-related options are only relevant when signing a JAR file; they -aren\[aq]t relevant when verifying a signed JAR file. +aren\(aqt relevant when verifying a signed JAR file. The \f[CR]\-keystore\f[R] option is relevant for signing and verifying a JAR file. In addition, aliases are specified when signing and verifying a JAR @@ -604,38 +602,33 @@ .TP \f[CR]\-keystore\f[R] \f[I]url\f[R] Specifies the URL that tells the keystore location. -This defaults to the file \f[CR].keystore\f[R] in the user\[aq]s home +This defaults to the file \f[CR].keystore\f[R] in the user\(aqs home directory, as determined by the \f[CR]user.home\f[R] system property. .RS -.PP A keystore is required when signing. You must explicitly specify a keystore when the default keystore -doesn\[aq]t exist or if you want to use one other than the default. -.PP -A keystore isn\[aq]t required when verifying, but if one is specified or +doesn\(aqt exist or if you want to use one other than the default. +A keystore isn\(aqt required when verifying, but if one is specified or the default exists and the \f[CR]\-verbose\f[R] option was also specified, then additional information is output regarding whether or not any of the certificates used to verify the JAR file are contained in that keystore. -.PP The \f[CR]\-keystore\f[R] argument can be a file name and path specification rather than a URL, in which case it is treated the same as a file: URL, for example, the following are equivalent: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-keystore\f[R] \f[I]filePathAndName\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-keystore file:\f[R]\f[I]filePathAndName\f[R] -.PP If the Sun PKCS #11 provider was configured in the \f[CR]java.security\f[R] security properties file (located in the -JDK\[aq]s \f[CR]$JAVA_HOME/conf/security\f[R] directory), then the +JDK\(aqs \f[CR]$JAVA_HOME/conf/security\f[R] directory), then the \f[CR]keytool\f[R] and \f[CR]jarsigner\f[R] tools can operate on the PKCS #11 token by specifying these options: .RS .PP \f[CR]\-keystore NONE \-storetype PKCS11\f[R] .RE -.PP For example, the following command lists the contents of the configured PKCS#11 token: .RS @@ -647,23 +640,20 @@ \f[CR]\-storepass\f[R] [\f[CR]:env\f[R] | \f[CR]:file\f[R]] \f[I]argument\f[R] Specifies the password that is required to access the keystore. This is only needed when signing (not verifying) a JAR file. -In that case, if a \f[CR]\-storepass\f[R] option isn\[aq]t provided at +In that case, if a \f[CR]\-storepass\f[R] option isn\(aqt provided at the command line, then the user is prompted for the password. .RS -.PP -If the modifier \f[CR]env\f[R] or \f[CR]file\f[R] isn\[aq]t specified, +If the modifier \f[CR]env\f[R] or \f[CR]file\f[R] isn\(aqt specified, then the password has the value \f[CR]argument\f[R]. Otherwise, the password is retrieved as follows: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]env\f[R]: Retrieve the password from the environment variable named \f[I]argument\f[R]. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]file\f[R]: Retrieve the password from the file named \f[I]argument\f[R]. -.PP \f[B]Note:\f[R] -.PP -The password shouldn\[aq]t be specified on the command line or in a +The password shouldn\(aqt be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. .RE .TP @@ -674,7 +664,6 @@ which is returned by the static \f[CR]getDefaultType\f[R] method in \f[CR]java.security.KeyStore\f[R]. .RS -.PP The PIN for a PKCS #11 token can also be specified with the \f[CR]\-storepass\f[R] option. If none is specified, then the \f[CR]keytool\f[R] and @@ -693,29 +682,26 @@ password is different from the store password, then the user is prompted for it. .RS -.PP -If the modifier \f[CR]env\f[R] or \f[CR]file\f[R] isn\[aq]t specified, +If the modifier \f[CR]env\f[R] or \f[CR]file\f[R] isn\(aqt specified, then the password has the value \f[CR]argument\f[R]. Otherwise, the password is retrieved as follows: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]env\f[R]: Retrieve the password from the environment variable named \f[I]argument\f[R]. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]file\f[R]: Retrieve the password from the file named \f[I]argument\f[R]. -.PP \f[B]Note:\f[R] -.PP -The password shouldn\[aq]t be specified on the command line or in a +The password shouldn\(aqt be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. .RE .TP \f[CR]\-certchain\f[R] \f[I]file\f[R] Specifies the certificate chain to be used when the certificate chain associated with the private key of the keystore entry that is addressed -by the alias specified on the command line isn\[aq]t complete. +by the alias specified on the command line isn\(aqt complete. This can happen when the keystore is located on a hardware token where -there isn\[aq]t enough capacity to hold a complete certificate chain. +there isn\(aqt enough capacity to hold a complete certificate chain. The file can be a sequence of concatenated X.509 certificates, or a single PKCS#7 formatted data block, either in binary encoding format or in printable encoding format (also known as Base64 encoding) as defined @@ -730,20 +716,18 @@ \f[CR]DUKESIGN.SF\f[R] and \f[CR]DUKESIGN.RSA\f[R], and placed in the \f[CR]META\-INF\f[R] directory of the signed JAR file. .RS -.PP The characters in the file must come from the set \f[CR]a\-zA\-Z0\-9_\-\f[R]. Only letters, numbers, underscore, and hyphen characters are allowed. All lowercase characters are converted to uppercase for the \f[CR].SF\f[R] and signature block file names. -.PP If no \f[CR]\-sigfile\f[R] option appears on the command line, then the base file name for the \f[CR].SF\f[R] and signature block files is the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, then the full alias name is used. -If the alias name contains any characters that aren\[aq]t valid in a +If the alias name contains any characters that aren\(aqt valid in a signature file name, then each such character is converted to an underscore (_) character to form the file name. .RE @@ -755,11 +739,9 @@ Specifies the name of the message digest algorithm to use when digesting the entries of a JAR file. .RS -.PP For a list of standard message digest algorithm names, see the Java Security Standard Algorithm Names Specification. -.PP -If this option isn\[aq]t specified, then \f[CR]SHA\-384\f[R] is used. +If this option isn\(aqt specified, then \f[CR]SHA\-384\f[R] is used. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f[CR]\-addprovider\f[R] or \f[CR]\-providerClass\f[R] options; @@ -770,17 +752,15 @@ Specifies the name of the signature algorithm to use to sign the JAR file. .RS -.PP This algorithm must be compatible with the private key used to sign the JAR file. -If this option isn\[aq]t specified, then use a default algorithm -matching the private key as described in the \f[B]Supported -Algorithms\f[R] section. +If this option isn\(aqt specified, then use a default algorithm matching +the private key as described in the \f[B]Supported Algorithms\f[R] +section. There must either be a statically installed provider supplying an implementation of the specified algorithm or you must specify one with the \f[CR]\-addprovider\f[R] or \f[CR]\-providerClass\f[R] option; -otherwise, the command doesn\[aq]t succeed. -.PP +otherwise, the command doesn\(aqt succeed. For a list of standard signature algorithm names, see the Java Security Standard Algorithm Names Specification. .RE @@ -798,20 +778,16 @@ The \f[I]suboptions\f[R] can be \f[CR]all\f[R], \f[CR]grouped\f[R], or \f[CR]summary\f[R]. .RS -.PP If the \f[CR]\-certs\f[R] option is also specified, then the default mode (or suboption \f[CR]all\f[R]) displays each entry as it is being processed, and after that, the certificate information for each signer of the JAR file. -.PP If the \f[CR]\-certs\f[R] and the \f[CR]\-verbose:grouped\f[R] suboptions are specified, then entries with the same signer info are grouped and displayed together with their certificate information. -.PP If \f[CR]\-certs\f[R] and the \f[CR]\-verbose:summary\f[R] suboptions are specified, then entries with the same signer information are grouped and displayed together with their certificate information. -.PP Details about each entry are summarized and displayed as \f[I]one entry (and more)\f[R]. See \f[B]Example of Verifying a Signed JAR File\f[R] and \f[B]Example of @@ -823,12 +799,11 @@ \f[CR]\-verify\f[R] and \f[CR]\-verbose\f[R] options, then the output includes certificate information for each signer of the JAR file. This information includes the name of the type of certificate (stored in -the signature block file) that certifies the signer\[aq]s public key, -and if the certificate is an X.509 certificate (an instance of the +the signature block file) that certifies the signer\(aqs public key, and +if the certificate is an X.509 certificate (an instance of the \f[CR]java.security.cert.X509Certificate\f[R]), then the distinguished name of the signer. .RS -.PP The keystore is also examined. If no keystore value is specified on the command line, then the default keystore file (if any) is checked. @@ -853,10 +828,9 @@ The URL, \f[CR]http://example.tsa.url\f[R], identifies the location of the Time Stamping Authority (TSA) and overrides any URL found with the \f[CR]\-tsacert\f[R] option. -The \f[CR]\-tsa\f[R] option doesn\[aq]t require the TSA public key +The \f[CR]\-tsa\f[R] option doesn\(aqt require the TSA public key certificate to be present in the keystore. .RS -.PP To generate the time stamp, \f[CR]jarsigner\f[R] communicates with the TSA with the Time\-Stamp Protocol (TSP) defined in RFC 3161. When successful, the time stamp token returned by the TSA is stored with @@ -868,10 +842,9 @@ when signing a JAR file, a time stamp is generated for the signature. The alias identifies the TSA public key certificate in the keystore that is in effect. -The entry\[aq]s certificate is examined for a Subject Information Access +The entry\(aqs certificate is examined for a Subject Information Access extension that contains a URL identifying the location of the TSA. .RS -.PP The TSA public key certificate must be present in the keystore when using the \f[CR]\-tsacert\f[R] option. .RE @@ -879,10 +852,9 @@ \f[CR]\-tsapolicyid\f[R] \f[I]policyid\f[R] Specifies the object identifier (OID) that identifies the policy ID to be sent to the TSA server. -If this option isn\[aq]t specified, no policy ID is sent and the TSA +If this option isn\(aqt specified, no policy ID is sent and the TSA server will choose a default policy ID. .RS -.PP Object identifiers are defined by X.696, which is an ITU Telecommunication Standardization Sector (ITU\-T) standard. These identifiers are typically period\-separated sets of non\-negative @@ -892,11 +864,9 @@ \f[CR]\-tsadigestalg\f[R] \f[I]algorithm\f[R] Specifies the message digest algorithm that is used to generate the message imprint to be sent to the TSA server. -If this option isn\[aq]t specified, SHA\-384 will be used. +If this option isn\(aqt specified, SHA\-384 will be used. .RS -.PP See \f[B]Supported Algorithms\f[R]. -.PP For a list of standard message digest algorithm names, see the Java Security Standard Algorithm Names Specification. .RE @@ -907,24 +877,23 @@ (signature file) also generated. This behavior has been changed. To reduce the overall size of the output JAR file, the signature block -file by default doesn\[aq]t contain a copy of the \f[CR].SF\f[R] file +file by default doesn\(aqt contain a copy of the \f[CR].SF\f[R] file anymore. If \f[CR]\-internalsf\f[R] appears on the command line, then the old behavior is utilized. This option is useful for testing. -In practice, don\[aq]t use the \f[CR]\-internalsf\f[R] option because it +In practice, don\(aqt use the \f[CR]\-internalsf\f[R] option because it incurs higher overhead. .TP \f[CR]\-sectionsonly\f[R] If the \f[CR]\-sectionsonly\f[R] option appears on the command line, then the \f[CR].SF\f[R] file (signature file) generated when a JAR file -is signed doesn\[aq]t include a header that contains a hash of the whole +is signed doesn\(aqt include a header that contains a hash of the whole manifest file. It contains only the information and hashes related to each individual source file included in the JAR file. See Signature File. .RS -.PP By default, this header is added, as an optimization. When the header is present, whenever the JAR file is verified, the verification can first check to see whether the hash in the header @@ -935,9 +904,8 @@ the \f[CR].SF\f[R] file equals the hash of its corresponding section in the manifest file. See \f[B]JAR File Verification\f[R]. -.PP The \f[CR]\-sectionsonly\f[R] option is primarily used for testing. -It shouldn\[aq]t be used other than for testing because using it incurs +It shouldn\(aqt be used other than for testing because using it incurs higher overhead. .RE .TP @@ -952,7 +920,6 @@ option to target a specific provider instance. The argument to this option is the name of the provider. .RS -.PP For the Oracle PKCS #11 provider, \f[I]providerName\f[R] is of the form \f[CR]SunPKCS11\-\f[R]\f[I]TokenName\f[R], where \f[I]TokenName\f[R] is the name suffix that the provider instance has been configured with, as @@ -972,13 +939,12 @@ The value of the security provider is the name of a security provider that is defined in a module. .RS -.PP Used with the \f[CR]\-providerArg ConfigFilePath\f[R] option, the \f[CR]keytool\f[R] and \f[CR]jarsigner\f[R] tools install the provider dynamically and use \f[CR]ConfigFilePath\f[R] for the path to the token configuration file. The following example shows a command to list a \f[CR]PKCS #11\f[R] -keystore when the Oracle PKCS #11 provider wasn\[aq]t configured in the +keystore when the Oracle PKCS #11 provider wasn\(aqt configured in the security properties file. .RS .PP @@ -987,15 +953,13 @@ .RE .TP \f[CR]\-providerClass\f[R] \f[I]provider\-class\-name\f[R] [\f[CR]\-providerArg\f[R] \f[I]arg\f[R]] -Used to specify the name of cryptographic service provider\[aq]s master -class file when the service provider isn\[aq]t listed in the +Used to specify the name of cryptographic service provider\(aqs master +class file when the service provider isn\(aqt listed in the \f[CR]java.security\f[R] security properties file. Adds a security provider by fully\-qualified class name and an optional configure argument. .RS -.PP \f[B]Note:\f[R] -.PP The preferred way to load PKCS11 is by using modules. See \f[CR]\-addprovider\f[R]. .RE @@ -1010,7 +974,7 @@ Passes through the specified \f[I]javaoption\f[R] string directly to the Java interpreter. The \f[CR]jarsigner\f[R] command is a wrapper around the interpreter. -This option shouldn\[aq]t contain any spaces. +This option shouldn\(aqt contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f[CR]java \-h\f[R] or \f[CR]java \-X\f[R] at the command line. @@ -1025,8 +989,8 @@ \f[CR]\-conf\f[R] \f[I]url\f[R] Specifies a pre\-configured options file. Read the \f[B]keytool documentation\f[R] for details. -The property keys supported are \[dq]jarsigner.all\[dq] for all actions, -\[dq]jarsigner.sign\[dq] for signing, and \[dq]jarsigner.verify\[dq] for +The property keys supported are \(dqjarsigner.all\(dq for all actions, +\(dqjarsigner.sign\(dq for signing, and \(dqjarsigner.verify\(dq for verification. \f[CR]jarsigner\f[R] arguments including the JAR file name and alias name(s) cannot be set in this file. @@ -1048,7 +1012,7 @@ command always exits with code 0. .PP For example, if a certificate used to sign an entry is expired and has a -KeyUsage extension that doesn\[aq]t allow it to sign a file, the +KeyUsage extension that doesn\(aqt allow it to sign a file, the \f[CR]jarsigner\f[R] command exits with code 12 (=4+8) when the \f[CR]\-strict\f[R] option is specified. .PP @@ -1059,7 +1023,7 @@ the errors and warnings that the \f[CR]jarsigner\f[R] command can issue. .SH FAILURE Reasons why the \f[CR]jarsigner\f[R] command fails include (but -aren\[aq]t limited to) a command line parsing error, the inability to +aren\(aqt limited to) a command line parsing error, the inability to find a keypair to sign the JAR file, or the verification of a signed JAR fails. .TP @@ -1086,11 +1050,11 @@ .TP notYetValidCert Code 4. -This JAR contains entries whose signer certificate isn\[aq]t yet valid. +This JAR contains entries whose signer certificate isn\(aqt yet valid. .TP chainNotValidated Code 4. -This JAR contains entries whose certificate chain isn\[aq]t validated. +This JAR contains entries whose certificate chain isn\(aqt validated. .TP tsaChainNotValidated Code 64. @@ -1106,41 +1070,41 @@ .TP badKeyUsage Code 8. -This JAR contains entries whose signer certificate\[aq]s KeyUsage -extension doesn\[aq]t allow code signing. +This JAR contains entries whose signer certificate\(aqs KeyUsage +extension doesn\(aqt allow code signing. .TP badExtendedKeyUsage Code 8. -This JAR contains entries whose signer certificate\[aq]s -ExtendedKeyUsage extension doesn\[aq]t allow code signing. +This JAR contains entries whose signer certificate\(aqs ExtendedKeyUsage +extension doesn\(aqt allow code signing. .TP badNetscapeCertType Code 8. -This JAR contains entries whose signer certificate\[aq]s -NetscapeCertType extension doesn\[aq]t allow code signing. +This JAR contains entries whose signer certificate\(aqs NetscapeCertType +extension doesn\(aqt allow code signing. .TP hasUnsignedEntry Code 16. -This JAR contains unsigned entries which haven\[aq]t been +This JAR contains unsigned entries which haven\(aqt been integrity\-checked. .TP notSignedByAlias Code 32. -This JAR contains signed entries which aren\[aq]t signed by the -specified alias(es). +This JAR contains signed entries which aren\(aqt signed by the specified +alias(es). .TP aliasNotInStore Code 32. -This JAR contains signed entries that aren\[aq]t signed by alias in this +This JAR contains signed entries that aren\(aqt signed by alias in this keystore. .TP tsaChainNotValidated Code 64. This JAR contains entries whose TSA certificate chain is invalid. .SH INFORMATIONAL WARNINGS -Informational warnings include those that aren\[aq]t errors but regarded +Informational warnings include those that aren\(aqt errors but regarded as bad practice. -They don\[aq]t have a code. +They don\(aqt have a code. .TP extraAttributesDetected The POSIX file permissions and/or symlink attributes are detected during @@ -1173,9 +1137,9 @@ An algorithm used is considered a security risk but not disabled. .TP noTimestamp -This JAR contains signatures that doesn\[aq]t include a timestamp. +This JAR contains signatures that doesn\(aqt include a timestamp. Without a timestamp, users may not be able to validate this JAR file -after the signer certificate\[aq]s expiration date +after the signer certificate\(aqs expiration date (\f[CR]YYYY\-MM\-DD\f[R]) or after any future revocation date. .SH EXAMPLE OF SIGNING A JAR FILE Use the following command to sign \f[CR]bundle.jar\f[R] with the private @@ -1203,15 +1167,15 @@ .RE .PP If the \f[CR]keystore\f[R] is the default \f[CR]keystore\f[R] -(\f[CR].keystore\f[R] in your home directory), then you don\[aq]t need -to specify a \f[CR]keystore\f[R], as follows: +(\f[CR].keystore\f[R] in your home directory), then you don\(aqt need to +specify a \f[CR]keystore\f[R], as follows: .RS .PP \f[CR]jarsigner \-signedjar sbundle.jar bundle.jar jane\f[R] .RE .PP If you want the signed JAR file to overwrite the input JAR file -(\f[CR]bundle.jar\f[R]), then you don\[aq]t need to specify a +(\f[CR]bundle.jar\f[R]), then you don\(aqt need to specify a \f[CR]\-signedjar\f[R] option, as follows: .RS .PP @@ -1219,7 +1183,7 @@ .RE .SH EXAMPLE OF VERIFYING A SIGNED JAR FILE To verify a signed JAR file to ensure that the signature is valid and -the JAR file wasn\[aq]t been tampered with, use a command such as the +the JAR file wasn\(aqt been tampered with, use a command such as the following: .RS .PP @@ -1254,10 +1218,10 @@ m = entry is listed in manifest k = at least one certificate was found in keystore -\- Signed by \[dq]CN=\[dq]Oracle America, Inc.\[dq], OU=Software Engineering, O=\[dq]Oracle America, Inc.\[dq], L=Redwood City, ST=California, C=US\[dq] +\- Signed by \(dqCN=\(dqOracle America, Inc.\(dq, OU=Software Engineering, O=\(dqOracle America, Inc.\(dq, L=Redwood City, ST=California, C=US\(dq Digest algorithm: SHA\-256 Signature algorithm: SHA256withRSA, 2048\-bit key - Timestamped by \[dq]CN=Symantec Time Stamping Services Signer \- G4, O=Symantec Corporation, C=US\[dq] on Tue Sep 12 20:08:49 UTC 2017 + Timestamped by \(dqCN=Symantec Time Stamping Services Signer \- G4, O=Symantec Corporation, C=US\(dq on Tue Sep 12 20:08:49 UTC 2017 Timestamp digest algorithm: SHA\-1 Timestamp signature algorithm: SHA1withRSA, 2048\-bit key @@ -1280,11 +1244,11 @@ s k 866 Tue Sep 12 20:08:48 EDT 2017 META\-INF/MANIFEST.MF >>> Signer - X.509, CN=\[dq]Oracle America, Inc.\[dq], OU=Software Engineering, O=\[dq]Oracle America, Inc.\[dq], L=Redwood City, ST=California, C=US + X.509, CN=\(dqOracle America, Inc.\(dq, OU=Software Engineering, O=\(dqOracle America, Inc.\(dq, L=Redwood City, ST=California, C=US [certificate is valid from 2017\-01\-30, 7:00 PM to 2018\-02\-01, 6:59 PM] X.509, CN=Symantec Class 3 SHA256 Code Signing CA, OU=Symantec Trust Network, O=Symantec Corporation, C=US [certificate is valid from 2013\-12\-09, 7:00 PM to 2023\-12\-09, 6:59 PM] - X.509, CN=VeriSign Class 3 Public Primary Certification Authority \- G5, OU=\[dq](c) 2006 VeriSign, Inc. \- For authorized use only\[dq], OU=VeriSign Trust Network, O=\[dq]VeriSign, Inc.\[dq], C=US (verisignclass3g5ca [jdk]) + X.509, CN=VeriSign Class 3 Public Primary Certification Authority \- G5, OU=\(dq(c) 2006 VeriSign, Inc. \- For authorized use only\(dq, OU=VeriSign Trust Network, O=\(dqVeriSign, Inc.\(dq, C=US (verisignclass3g5ca [jdk]) [trusted certificate] >>> TSA X.509, CN=Symantec Time Stamping Services Signer \- G4, O=Symantec Corporation, C=US @@ -1301,11 +1265,11 @@ [entry was signed on 2017\-09\-12, 4:08 PM] >>> Signer - X.509, CN=\[dq]Oracle America, Inc.\[dq], OU=Software Engineering, O=\[dq]Oracle America, Inc.\[dq], L=Redwood City, ST=California, C=US + X.509, CN=\(dqOracle America, Inc.\(dq, OU=Software Engineering, O=\(dqOracle America, Inc.\(dq, L=Redwood City, ST=California, C=US [certificate is valid from 2017\-01\-30, 7:00 PM to 2018\-02\-01, 6:59 PM] X.509, CN=Symantec Class 3 SHA256 Code Signing CA, OU=Symantec Trust Network, O=Symantec Corporation, C=US [certificate is valid from 2013\-12\-09, 7:00 PM to 2023\-12\-09, 6:59 PM] - X.509, CN=VeriSign Class 3 Public Primary Certification Authority \- G5, OU=\[dq](c) 2006 VeriSign, Inc. \- For authorized use only\[dq], OU=VeriSign Trust Network, O=\[dq]VeriSign, Inc.\[dq], C=US (verisignclass3g5ca [jdk]) + X.509, CN=VeriSign Class 3 Public Primary Certification Authority \- G5, OU=\(dq(c) 2006 VeriSign, Inc. \- For authorized use only\(dq, OU=VeriSign Trust Network, O=\(dqVeriSign, Inc.\(dq, C=US (verisignclass3g5ca [jdk]) [trusted certificate] >>> TSA X.509, CN=Symantec Time Stamping Services Signer \- G4, O=Symantec Corporation, C=US @@ -1328,10 +1292,10 @@ m = entry is listed in manifest k = at least one certificate was found in keystore -\- Signed by \[dq]CN=\[dq]Oracle America, Inc.\[dq], OU=Software Engineering, O=\[dq]Oracle America, Inc.\[dq], L=Redwood City, ST=California, C=US\[dq] +\- Signed by \(dqCN=\(dqOracle America, Inc.\(dq, OU=Software Engineering, O=\(dqOracle America, Inc.\(dq, L=Redwood City, ST=California, C=US\(dq Digest algorithm: SHA\-256 Signature algorithm: SHA256withRSA, 2048\-bit key - Timestamped by \[dq]CN=Symantec Time Stamping Services Signer \- G4, O=Symantec Corporation, C=US\[dq] on Tue Sep 12 20:08:49 UTC 2017 + Timestamped by \(dqCN=Symantec Time Stamping Services Signer \- G4, O=Symantec Corporation, C=US\(dq on Tue Sep 12 20:08:49 UTC 2017 Timestamp digest algorithm: SHA\-1 Timestamp signature algorithm: SHA1withRSA, 2048\-bit key @@ -1340,7 +1304,7 @@ The signer certificate expired on 2018\-02\-01. However, the JAR will be valid until the timestamp expires on 2020\-12\-29. .EE .PP -If the certificate for a signer isn\[aq]t an X.509 certificate, then +If the certificate for a signer isn\(aqt an X.509 certificate, then there is no distinguished name information. In that case, just the certificate type and the alias are shown. For example, if the certificate is a PGP certificate, and the alias is diff -Nru openjdk-25-25.0.3+9/debian/man/java.1 openjdk-25-25.0.4+7/debian/man/java.1 --- openjdk-25-25.0.3+9/debian/man/java.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/java.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,7 +1,7 @@ '\" t -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JAVA" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JAVA" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME java \- launch a Java application .SH SYNOPSIS @@ -46,10 +46,10 @@ that contains a line in the form \f[CR]Main\-Class:\f[R]\f[I]classname\f[R] that defines the class with the \f[CR]public static void main(String[] args)\f[R] method that serves -as your application\[aq]s starting point. +as your application\(aqs starting point. When you use \f[CR]\-jar\f[R], the specified JAR file is the source of all user classes, and other class path settings are ignored. -If you\[aq]re using JAR files, then see \f[B]jar\f[R]. +If you\(aqre using JAR files, then see \f[B]jar\f[R]. .TP \f[CR]\-m\f[R] or \f[CR]\-\-module\f[R] \f[I]module\f[R][\f[CR]/\f[R]\f[I]mainclass\f[R]] Executes the main class in a module specified by \f[I]mainclass\f[R] if @@ -57,7 +57,6 @@ In other words, \f[I]mainclass\f[R] can be used when it is not specified by the module, or to override the value when it is specified. .RS -.PP See \f[B]Standard Options for Java\f[R]. .RE .TP @@ -76,7 +75,7 @@ .SH DESCRIPTION The \f[CR]java\f[R] command starts a Java application. It does this by starting the Java Virtual Machine (JVM), loading the -specified class, and calling that class\[aq]s \f[CR]main()\f[R] method. +specified class, and calling that class\(aqs \f[CR]main()\f[R] method. The method must be declared \f[CR]public\f[R] and \f[CR]static\f[R], it must not return any value, and it must accept a \f[CR]String\f[R] array as a parameter. @@ -98,7 +97,7 @@ See \f[B]Using the JDK_JAVA_OPTIONS Launcher Environment Variable\f[R]. .RE .PP -By default, the first argument that isn\[aq]t an option of the +By default, the first argument that isn\(aqt an option of the \f[CR]java\f[R] command is the fully qualified name of the class to be called. If \f[CR]\-jar\f[R] is specified, then its argument is the name of the @@ -110,9 +109,9 @@ the \f[CR]main()\f[R] method. .SS \f[CR]javaw\f[R] \f[B]Windows:\f[R] The \f[CR]javaw\f[R] command is identical to -\f[CR]java\f[R], except that with \f[CR]javaw\f[R] there\[aq]s no +\f[CR]java\f[R], except that with \f[CR]javaw\f[R] there\(aqs no associated console window. -Use \f[CR]javaw\f[R] when you don\[aq]t want a command prompt window to +Use \f[CR]javaw\f[R] when you don\(aqt want a command prompt window to appear. The \f[CR]javaw\f[R] launcher will, however, display a dialog box with error information if a launch fails. @@ -121,12 +120,12 @@ launcher in source\-file mode. Entering source\-file mode is determined by two items on the \f[CR]java\f[R] command line: -.IP \[bu] 2 +.IP \(bu 2 The first item on the command line that is not an option or part of an option. In other words, the item in the command line that would otherwise be the main class name. -.IP \[bu] 2 +.IP \(bu 2 The \f[CR]\-\-source\f[R] \f[I]version\f[R] option, if present. .PP If the class identifies an existing file that has a \f[CR].java\f[R] @@ -142,8 +141,8 @@ .PP \f[B]Note:\f[R] The valid values of \f[I]N\f[R] change for each release, with new values added and old values removed. -You\[aq]ll get an error message if you use a value of \f[I]N\f[R] that -is no longer supported. +You\(aqll get an error message if you use a value of \f[I]N\f[R] that is +no longer supported. The supported values of \f[I]N\f[R] are the current Java SE release (\f[CR]25\f[R]) and a limited number of previous releases, detailed in the command\-line help for \f[CR]javac\f[R], under the @@ -154,8 +153,8 @@ \f[CR]\-\-source\f[R] option must be used to tell the \f[CR]java\f[R] command to use the source\-file mode. The \f[CR]\-\-source\f[R] option is used for cases when the source file -is a \[dq]script\[dq] to be executed and the name of the source file -does not follow the normal naming conventions for Java source files. +is a \(dqscript\(dq to be executed and the name of the source file does +not follow the normal naming conventions for Java source files. .PP In source\-file mode, the effect is as though the source file is compiled into memory, and the first class found in the source file is @@ -183,7 +182,7 @@ .PP \f[B]In source\-file mode, any additional command\-line options are processed as follows:\f[R] -.IP \[bu] 2 +.IP \(bu 2 The launcher scans the options specified before the source file for any that are relevant in order to compile the source file. .RS 2 @@ -196,18 +195,18 @@ It also includes the new \f[CR]\-\-enable\-preview\f[R] option, described in JEP 12. .RE -.IP \[bu] 2 +.IP \(bu 2 No provision is made to pass any additional options to the compiler, such as \f[CR]\-processor\f[R] or \f[CR]\-Werror\f[R]. -.IP \[bu] 2 -Command\-line argument files (\f[CR]\[at]\f[R]\-files) may be used in -the standard way. +.IP \(bu 2 +Command\-line argument files (\f[CR]\(at\f[R]\-files) may be used in the +standard way. Long lists of arguments for either the VM or the program being invoked may be placed in files specified on the command\-line by prefixing the -filename with an \f[CR]\[at]\f[R] character. +filename with an \f[CR]\(at\f[R] character. .PP \f[B]In source\-file mode, compilation proceeds as follows:\f[R] -.IP \[bu] 2 +.IP \(bu 2 Any command\-line options that are relevant to the compilation environment are taken into account. These include: @@ -216,7 +215,7 @@ \f[CR]\-\-add\-modules\f[R], \f[CR]\-\-limit\-modules\f[R], \f[CR]\-\-patch\-module\f[R], \f[CR]\-\-upgrade\-module\-path\f[R], \f[CR]\-\-enable\-preview\f[R]. -.IP \[bu] 2 +.IP \(bu 2 The root of the source tree, \f[CR]\f[R] is computed from the package of the class being launched. For example, if \f[CR]HelloWorld.java\f[R] declared its classes to be in @@ -224,55 +223,55 @@ is expected to reside in the directory \f[CR]somedir/hello/\f[R]. In this case, \f[CR]somedir\f[R] is computed to be the root of the source tree. -.IP \[bu] 2 +.IP \(bu 2 The root of the source tree serves as the source\-path for compilation, so that other source files found in that tree and are needed by \f[CR]HelloWorld\f[R] could be compiled. -.IP \[bu] 2 +.IP \(bu 2 Annotation processing is disabled, as if \f[CR]\-proc:none\f[R] is in effect. -.IP \[bu] 2 +.IP \(bu 2 If a version is specified, via the \f[CR]\-\-source\f[R] option, the value is used as the argument for an implicit \f[CR]\-\-release\f[R] option for the compilation. This sets both the source version accepted by compiler and the system API that may be used by the code in the source file. -.IP \[bu] 2 +.IP \(bu 2 If \f[CR]\-\-enable\-preview\f[R] is specified, the \f[CR]\-\-source N\f[R] arguments can be omitted. If the Java runtime version is \f[CR]N\f[R], then \f[CR]\-\-release N\f[R] is implied when compiling source files. -.IP \[bu] 2 +.IP \(bu 2 If a \f[CR]module\-info.java\f[R] file exists in the \f[CR]\f[R] directory, its module declaration is used to define a named module that will contain all the classes compiled from \f[CR].java\f[R] files in the source tree. If \f[CR]module\-info.java\f[R] does not exist, all the classes compiled from source files will be compiled in the context of the unnamed module. -.IP \[bu] 2 +.IP \(bu 2 The source file that is launched should contain one or more top\-level classes, the first of which is taken as the class to be executed. -.IP \[bu] 2 +.IP \(bu 2 For the source file that is launched, the compiler does not enforce the optional restriction defined at the end of JLS 7.6, that a type in a named package should exist in a file whose name is composed from the type name followed by the \f[CR].java\f[R] extension. -.IP \[bu] 2 +.IP \(bu 2 If a source file contains errors, appropriate error messages are written to the standard error stream, and the launcher exits with a non\-zero exit code. .PP \f[B]In source\-file mode, execution proceeds as follows:\f[R] -.IP \[bu] 2 +.IP \(bu 2 The class to be executed is the first top\-level class found in the source file. It must contain a declaration of an entry \f[CR]main\f[R] method. -.IP \[bu] 2 +.IP \(bu 2 The compiled classes are loaded by a custom class loader, that delegates to the application class loader. This implies that classes appearing on the application class path cannot refer to any classes declared in source files. -.IP \[bu] 2 +.IP \(bu 2 If a \f[CR]module\-info.java\f[R] file exists in the \f[CR]\f[R] directory, then all the classes compiled from \f[CR].java\f[R] files in the source tree will be in that module, which @@ -282,10 +281,10 @@ \f[CR]\-\-add\-modules=ALL\-DEFAULT\f[R] is in effect. This is in addition to any other \f[CR]\-\-add\-module\f[R] options that may be have been specified on the command line. -.IP \[bu] 2 +.IP \(bu 2 Any arguments appearing after the name of the file on the command line are passed to the main method in the obvious way. -.IP \[bu] 2 +.IP \(bu 2 It is an error if there is a class on the application class path whose name is the same as that of the class to be executed. .PP @@ -304,16 +303,16 @@ \f[CR]JDK_JAVA_OPTIONS\f[R] environment variable content is treated in the same manner as that specified in the command line. .PP -Single (\f[CR]\[aq]\f[R]) or double (\f[CR]\[dq]\f[R]) quotes can be -used to enclose arguments that contain whitespace characters. +Single (\f[CR]\(aq\f[R]) or double (\f[CR]\(dq\f[R]) quotes can be used +to enclose arguments that contain whitespace characters. All content between the open quote and the first matching close quote are preserved by simply removing the pair of quotes. In case a matching quote is not found, the launcher will abort with an error message. -\f[CR]\[at]\f[R]\-files are supported as they are specified in the +\f[CR]\(at\f[R]\-files are supported as they are specified in the command line. Any wildcard literal \f[CR]*\f[R] in the \f[CR]JDK_JAVA_OPTIONS\f[R] -environment variable content isn\[aq]t expanded and is passed as\-is to +environment variable content isn\(aqt expanded and is passed as\-is to the starting VM. In order to mitigate potential misuse of \f[CR]JDK_JAVA_OPTIONS\f[R] behavior, options that specify the main class (such as \f[CR]\-jar\f[R]) @@ -328,56 +327,56 @@ \f[B]Example:\f[R] .IP .EX -$ export JDK_JAVA_OPTIONS=\[aq]\-g \[at]file1 \-Dprop=value \[at]file2 \-Dws.prop=\[dq]white spaces\[dq]\[aq] -$ java \-Xint \[at]file3 +$ export JDK_JAVA_OPTIONS=\(aq\-g \(atfile1 \-Dprop=value \(atfile2 \-Dws.prop=\(dqwhite spaces\(dq\(aq +$ java \-Xint \(atfile3 .EE .PP is equivalent to the command line: .IP .EX -java \-g \[at]file1 \-Dprop=value \[at]file2 \-Dws.prop=\[dq]white spaces\[dq] \-Xint \[at]file3 +java \-g \(atfile1 \-Dprop=value \(atfile2 \-Dws.prop=\(dqwhite spaces\(dq \-Xint \(atfile3 .EE .SH OVERVIEW OF JAVA OPTIONS The \f[CR]java\f[R] command supports a wide range of options in the following categories: -.IP \[bu] 2 +.IP \(bu 2 \f[B]Standard Options for Java\f[R]: Options guaranteed to be supported by all implementations of the Java Virtual Machine (JVM). -They\[aq]re used for common actions, such as checking the version of the +They\(aqre used for common actions, such as checking the version of the JRE, setting the class path, enabling verbose output, and so on. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Extra Options for Java\f[R]: General purpose options that are specific to the Java HotSpot Virtual Machine. -They aren\[aq]t guaranteed to be supported by all JVM implementations, +They aren\(aqt guaranteed to be supported by all JVM implementations, and are subject to change. These options start with \f[CR]\-X\f[R]. .PP -The advanced options aren\[aq]t recommended for casual use. +The advanced options aren\(aqt recommended for casual use. These are developer options used for tuning specific areas of the Java HotSpot Virtual Machine operation that often have specific system requirements and may require privileged access to system configuration parameters. Several examples of performance tuning are provided in \f[B]Performance Tuning Examples\f[R]. -These options aren\[aq]t guaranteed to be supported by all JVM +These options aren\(aqt guaranteed to be supported by all JVM implementations and are subject to change. Advanced options start with \f[CR]\-XX\f[R]. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Advanced Runtime Options for Java\f[R]: Control the runtime behavior of the Java HotSpot VM. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Advanced JIT Compiler Options for java\f[R]: Control the dynamic just\-in\-time (JIT) compilation performed by the Java HotSpot VM. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Advanced Serviceability Options for Java\f[R]: Enable gathering system information and performing extensive debugging. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Advanced Garbage Collection Options for Java\f[R]: Control how garbage collection (GC) is performed by the Java HotSpot .PP -Boolean options are used to either enable a feature that\[aq]s disabled -by default or disable a feature that\[aq]s enabled by default. -Such options don\[aq]t require a parameter. +Boolean options are used to either enable a feature that\(aqs disabled +by default or disable a feature that\(aqs enabled by default. +Such options don\(aqt require a parameter. Boolean \f[CR]\-XX\f[R] options are enabled using the plus sign (\f[CR]\-XX:+\f[R]\f[I]OptionName\f[R]) and disabled using the minus sign (\f[CR]\-XX:\-\f[R]\f[I]OptionName\f[R]). @@ -386,7 +385,7 @@ the option name by a space, a colon (:), or an equal sign (=), or the argument may directly follow the option (the exact syntax differs for each option). -If you\[aq]re expected to specify the size in bytes, then you can use no +If you\(aqre expected to specify the size in bytes, then you can use no suffix, or use the suffix \f[CR]k\f[R] or \f[CR]K\f[R] for kilobytes (KB), \f[CR]m\f[R] or \f[CR]M\f[R] for megabytes (MB), or \f[CR]g\f[R] or \f[CR]G\f[R] for gigabytes (GB). @@ -399,13 +398,13 @@ .PP The following sections describe the options that are deprecated, obsolete, and removed: -.IP \[bu] 2 +.IP \(bu 2 \f[B]Deprecated Java Options\f[R]: Accepted and acted upon \-\-\- a -warning is issued when they\[aq]re used. -.IP \[bu] 2 +warning is issued when they\(aqre used. +.IP \(bu 2 \f[B]Obsolete Java Options\f[R]: Accepted but ignored \-\-\- a warning -is issued when they\[aq]re used. -.IP \[bu] 2 +is issued when they\(aqre used. +.IP \(bu 2 \f[B]Removed Java Options\f[R]: Removed \-\-\- using them results in an error. .SH STANDARD OPTIONS FOR JAVA @@ -426,15 +425,15 @@ attempts to load the library named \f[CR]foo\f[R] using the platform specific naming conventions and locations: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[B]Linux and other POSIX\-like platforms:\f[R] The JVM attempts to load the library named \f[CR]libfoo.so\f[R] in the location specified by the \f[CR]LD_LIBRARY_PATH\f[R] system variable. -.IP \[bu] 2 +.IP \(bu 2 \f[B]macOS:\f[R] The JVM attempts to load the library named \f[CR]libfoo.dylib\f[R] in the location specified by the \f[CR]DYLD_LIBRARY_PATH\f[R] system variable. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] The JVM attempts to load the library named \f[CR]foo.dll\f[R] in the location specified by the \f[CR]PATH\f[R] system variable. @@ -459,22 +458,17 @@ Specifies a list of directories, JAR files, and ZIP archives to search for class files. .RS -.PP On Windows, semicolons (\f[CR];\f[R]) separate entities in this list; on other platforms it is a colon (\f[CR]:\f[R]). -.PP Specifying \f[I]classpath\f[R] overrides any setting of the \f[CR]CLASSPATH\f[R] environment variable. -If the class path option isn\[aq]t used and \f[I]classpath\f[R] -isn\[aq]t set, then the user class path consists of the current -directory (.). -.PP +If the class path option isn\(aqt used and \f[I]classpath\f[R] isn\(aqt +set, then the user class path consists of the current directory (.). As a special convenience, a class path element that contains a base name of an asterisk (*) is considered equivalent to specifying a list of all the files in the directory with the extension \f[CR].jar\f[R] or \f[CR].JAR\f[R] . -A Java program can\[aq]t tell the difference between the two -invocations. +A Java program can\(aqt tell the difference between the two invocations. For example, if the directory mydir contains \f[CR]a.jar\f[R] and \f[CR]b.JAR\f[R], then the class path element mydir/* is expanded to \f[CR]A.jar:b.JAR\f[R], except that the order of JAR files is @@ -487,15 +481,15 @@ similarly expanded. Any class path wildcard expansion that occurs before the Java VM is started. -Java programs never see wildcards that aren\[aq]t expanded except by +Java programs never see wildcards that aren\(aqt expanded except by querying the environment, such as by calling -\f[CR]System.getenv(\[dq]CLASSPATH\[dq])\f[R]. +\f[CR]System.getenv(\(dqCLASSPATH\(dq)\f[R]. .RE .TP -\f[CR]\-\-disable\-\[at]files\f[R] +\f[CR]\-\-disable\-\(atfiles\f[R] Can be used anywhere on the command line, including in an argument file, -to prevent further \f[CR]\[at]filename\f[R] expansion. -This option stops expanding \f[CR]\[at]\f[R]\-argfiles after the option. +to prevent further \f[CR]\(atfilename\f[R] expansion. +This option stops expanding \f[CR]\(at\f[R]\-argfiles after the option. .TP \f[CR]\-\-enable\-preview\f[R] Allows classes to depend on \f[B]preview features\f[R] @@ -514,7 +508,6 @@ Native access occurring in a module that has not been explicitly enabled is deemed \f[I]illegal\f[R]. .RS -.PP \f[I]module\f[R] can be a module name, or \f[CR]ALL\-UNNAMED\f[R] to indicate code on the class path. .RE @@ -526,21 +519,20 @@ .PP \f[B]Note:\f[R] This option will be removed in a future release. .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]allow\f[R]: This mode allows illegal native access in all modules, without any warings. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]warn\f[R]: This mode is identical to \f[CR]allow\f[R] except that a warning message is issued for the first illegal native access found in a module. This mode is the default for the current JDK but will change in a future release. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]deny\f[R]: This mode disables illegal native access. That is, any illegal native access causes an \f[CR]IllegalCallerException\f[R]. This mode will become the default in a future release. -.PP To verify that your application is ready for a future version of the JDK, run it with \f[CR]\-\-illegal\-native\-access=deny\f[R] along with any necessary \f[CR]\-\-enable\-native\-access\f[R] options. @@ -548,11 +540,11 @@ .TP \f[CR]\-\-finalization=\f[R]\f[I]value\f[R] Controls whether the JVM performs finalization of objects. -Valid values are \[dq]enabled\[dq] and \[dq]disabled\[dq]. -Finalization is enabled by default, so the value \[dq]enabled\[dq] does +Valid values are \(dqenabled\(dq and \(dqdisabled\(dq. +Finalization is enabled by default, so the value \(dqenabled\(dq does nothing. -The value \[dq]disabled\[dq] disables finalization, so that no -finalizers are invoked. +The value \(dqdisabled\(dq disables finalization, so that no finalizers +are invoked. .TP \f[CR]\-\-module\-path\f[R] \f[I]modulepath\f[R]... or \f[CR]\-p\f[R] \f[I]modulepath\f[R] Specifies where to find application modules with a list of path @@ -561,7 +553,6 @@ directory containing modules. Each module is either a modular JAR or an exploded\-module directory. .RS -.PP On Windows, semicolons (\f[CR];\f[R]) separate path elements in this list; on other platforms it is a colon (\f[CR]:\f[R]). .RE @@ -573,7 +564,6 @@ directory containing modules. Each module is either a modular JAR or an exploded\-module directory. .RS -.PP On Windows, semicolons (\f[CR];\f[R]) separate path elements in this list; on other platforms it is a colon (\f[CR]:\f[R]). .RE @@ -590,7 +580,7 @@ Describes a specified module and then exits. .TP \f[CR]\-\-dry\-run\f[R] -Creates the VM but doesn\[aq]t execute the main method. +Creates the VM but doesn\(aqt execute the main method. This \f[CR]\-\-dry\-run\f[R] option might be useful for validating the command\-line options such as the module system configuration. .TP @@ -606,7 +596,7 @@ The \f[I]value\f[R] variable is a string that represents the value of the property. If \f[I]value\f[R] is a string with spaces, then enclose it in quotation -marks (for example \f[CR]\-Dfoo=\[dq]foo bar\[dq]\f[R]). +marks (for example \f[CR]\-Dfoo=\(dqfoo bar\(dq\f[R]). .TP \f[CR]\-disableassertions\f[R][\f[CR]:\f[R][\f[I]packagename\f[R]]...|\f[CR]:\f[R]\f[I]classname\f[R]] or \f[CR]\-da\f[R][\f[CR]:\f[R][\f[I]packagename\f[R]]...|\f[CR]:\f[R]\f[I]classname\f[R]] Disables assertions. @@ -620,12 +610,11 @@ With the \f[I]classname\f[R] argument, the switch disables assertions in the specified class. .RS -.PP The \f[CR]\-disableassertions\f[R] (\f[CR]\-da\f[R]) option applies to -all class loaders and to system classes (which don\[aq]t have a class +all class loaders and to system classes (which don\(aqt have a class loader). -There\[aq]s one exception to this rule: If the option is provided with -no arguments, then it doesn\[aq]t apply to system classes. +There\(aqs one exception to this rule: If the option is provided with no +arguments, then it doesn\(aqt apply to system classes. This makes it easy to disable assertions in all classes except for system classes. The \f[CR]\-disablesystemassertions\f[R] option enables you to disable @@ -658,12 +647,11 @@ With the \f[I]classname\f[R] argument, the switch enables assertions in the specified class. .RS -.PP The \f[CR]\-enableassertions\f[R] (\f[CR]\-ea\f[R]) option applies to -all class loaders and to system classes (which don\[aq]t have a class +all class loaders and to system classes (which don\(aqt have a class loader). -There\[aq]s one exception to this rule: If the option is provided with -no arguments, then it doesn\[aq]t apply to system classes. +There\(aqs one exception to this rule: If the option is provided with no +arguments, then it doesn\(aqt apply to system classes. This makes it easy to enable assertions in all classes except for system classes. The \f[CR]\-enablesystemassertions\f[R] option provides a separate @@ -671,7 +659,7 @@ To explicitly disable assertions in specific packages or classes, use the \f[CR]\-disableassertions\f[R] (\f[CR]\-da\f[R]) option. If a single command contains multiple instances of these switches, then -they\[aq]re processed in order, before loading any classes. +they\(aqre processed in order, before loading any classes. For example, to run the \f[CR]MyClass\f[R] application with assertions enabled only in the package \f[CR]com.wombat.fruitbat\f[R] (and any subpackages) but disabled in the class @@ -711,7 +699,6 @@ always be passed as the argument to the \f[CR]\-splash\f[R] option. The most appropriate scaled image provided is picked up automatically. .RS -.PP For example, to show the \f[CR]splash.gif\f[R] file from the \f[CR]images\f[R] directory when starting your application, use the following option: @@ -719,7 +706,6 @@ .PP \f[CR]\-splash:images/splash.gif\f[R] .RE -.PP See the SplashScreen API documentation for more information. .RE .TP @@ -748,29 +734,27 @@ \f[CR]\-\-help\-extra\f[R] Prints the help on extra options to the output stream. .TP -\f[CR]\[at]\f[R]\f[I]argfile\f[R] -Specifies one or more argument files prefixed by \f[CR]\[at]\f[R] used -by the \f[CR]java\f[R] command. -It isn\[aq]t uncommon for the \f[CR]java\f[R] command line to be very +\f[CR]\(at\f[R]\f[I]argfile\f[R] +Specifies one or more argument files prefixed by \f[CR]\(at\f[R] used by +the \f[CR]java\f[R] command. +It isn\(aqt uncommon for the \f[CR]java\f[R] command line to be very long because of the \f[CR].jar\f[R] files needed in the classpath. -The \f[CR]\[at]\f[R]\f[I]argfile\f[R] option overcomes command\-line +The \f[CR]\(at\f[R]\f[I]argfile\f[R] option overcomes command\-line length limitations by enabling the launcher to expand the contents of argument files after shell expansion, but before argument processing. Contents in the argument files are expanded because otherwise, they would be specified on the command line until the -\f[CR]\-\-disable\-\[at]files\f[R] option was encountered. +\f[CR]\-\-disable\-\(atfiles\f[R] option was encountered. .RS -.PP The argument files can also contain the main class name and all options. If an argument file contains all of the options required by the \f[CR]java\f[R] command, then the command line could simply be: .RS .PP -\f[CR]java \[at]\f[R]\f[I]argfile\f[R] +\f[CR]java \(at\f[R]\f[I]argfile\f[R] .RE -.PP See \f[B]java Command\-Line Argument Files\f[R] for a description and -examples of using \f[CR]\[at]\f[R]\-argfiles. +examples of using \f[CR]\(at\f[R]\-argfiles. .RE .SH EXTRA OPTIONS FOR JAVA The following \f[CR]java\f[R] options are general purpose options that @@ -790,7 +774,6 @@ Specifies a list of directories, JAR files, and ZIP archives to append to the end of the default bootstrap class path. .RS -.PP On Windows, semicolons (\f[CR];\f[R]) separate entities in this list; on other platforms it is a colon (\f[CR]:\f[R]). .RE @@ -798,63 +781,60 @@ \f[CR]\-Xcheck:jni\f[R] Performs additional checks for Java Native Interface (JNI) functions. .RS -.PP The following checks are considered indicative of significant problems with the native code, and the JVM terminates with an irrecoverable error in such cases: -.IP \[bu] 2 +.IP \(bu 2 The thread doing the call is not attached to the JVM. -.IP \[bu] 2 +.IP \(bu 2 The thread doing the call is using the \f[CR]JNIEnv\f[R] belonging to another thread. -.IP \[bu] 2 +.IP \(bu 2 A parameter validation check fails: .RS 2 -.IP \[bu] 2 +.IP \(bu 2 A \f[CR]jfieldID\f[R], or \f[CR]jmethodID\f[R], is detected as being invalid. For example: .RS 2 -.IP \[bu] 2 +.IP \(bu 2 Of the wrong type -.IP \[bu] 2 +.IP \(bu 2 Associated with the wrong class .RE -.IP \[bu] 2 +.IP \(bu 2 A parameter of the wrong type is detected. -.IP \[bu] 2 +.IP \(bu 2 An invalid parameter value is detected. For example: .RS 2 -.IP \[bu] 2 +.IP \(bu 2 NULL where not permitted -.IP \[bu] 2 +.IP \(bu 2 An out\-of\-bounds array index, or frame capacity -.IP \[bu] 2 +.IP \(bu 2 A non\-UTF\-8 string -.IP \[bu] 2 +.IP \(bu 2 An invalid JNI reference -.IP \[bu] 2 +.IP \(bu 2 An attempt to use a \f[CR]ReleaseXXX\f[R] function on a parameter not produced by the corresponding \f[CR]GetXXX\f[R] function .RE .RE -.PP The following checks only result in warnings being printed: -.IP \[bu] 2 +.IP \(bu 2 A JNI call was made without checking for a pending exception from a previous JNI call, and the current call is not safe when an exception may be pending. -.IP \[bu] 2 +.IP \(bu 2 A class descriptor is in decorated format (\f[CR]Lname;\f[R]) when it should not be. -.IP \[bu] 2 +.IP \(bu 2 A \f[CR]NULL\f[R] parameter is allowed, but its use is questionable. -.IP \[bu] 2 +.IP \(bu 2 Calling other JNI functions in the scope of \f[CR]Get/ReleasePrimitiveArrayCritical\f[R] or \f[CR]Get/ReleaseStringCritical\f[R] -.PP Expect a performance degradation when this option is used. .RE .TP @@ -873,7 +853,7 @@ Compilation to native code is disabled, and all bytecode is executed by the interpreter. The performance benefits offered by the just\-in\-time (JIT) compiler -aren\[aq]t present in this mode. +aren\(aqt present in this mode. .TP \f[CR]\-Xinternalversion\f[R] Displays more detailed JVM version information than the @@ -915,7 +895,6 @@ \-Xmn262144k \-Xmn268435456 .EE -.PP Instead of the \f[CR]\-Xmn\f[R] option to set both the initial and maximum size of the heap for the young generation, you can use \f[CR]\-XX:NewSize\f[R] to set the initial size and @@ -937,13 +916,11 @@ \-Xms6144k \-Xms6m .EE -.PP If you do not set this option, then the initial size will be set as the sum of the sizes allocated for the old generation and the young generation. The initial size of the heap for the young generation can be set using the \f[CR]\-Xmn\f[R] option or the \f[CR]\-XX:NewSize\f[R] option. -.PP Note that the \f[CR]\-XX:InitialHeapSize\f[R] option can also be used to set the initial heap size. If it appears after \f[CR]\-Xms\f[R] on the command line, then the @@ -969,7 +946,6 @@ \-Xmx81920k \-Xmx80m .EE -.PP The \f[CR]\-Xmx\f[R] option is equivalent to \f[CR]\-XX:MaxHeapSize\f[R]. .RE @@ -990,58 +966,56 @@ running user cleanup code (such as closing database connections) at shutdown, even if the JVM terminates abruptly. .RS -.IP \[bu] 2 +.IP \(bu 2 \f[B]Non\-Windows:\f[R] .RS 2 -.IP \[bu] 2 +.IP \(bu 2 The JVM catches signals to implement shutdown hooks for unexpected termination. The JVM uses \f[CR]SIGHUP\f[R], \f[CR]SIGINT\f[R], and \f[CR]SIGTERM\f[R] to initiate the running of shutdown hooks. -.IP \[bu] 2 +.IP \(bu 2 Applications embedding the JVM frequently need to trap signals such as \f[CR]SIGINT\f[R] or \f[CR]SIGTERM\f[R], which can lead to interference with the JVM signal handlers. The \f[CR]\-Xrs\f[R] option is available to address this issue. When \f[CR]\-Xrs\f[R] is used, the signal masks for \f[CR]SIGINT\f[R], -\f[CR]SIGTERM\f[R], \f[CR]SIGHUP\f[R], and \f[CR]SIGQUIT\f[R] aren\[aq]t -changed by the JVM, and signal handlers for these signals aren\[aq]t +\f[CR]SIGTERM\f[R], \f[CR]SIGHUP\f[R], and \f[CR]SIGQUIT\f[R] aren\(aqt +changed by the JVM, and signal handlers for these signals aren\(aqt installed. .RE -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] .RS 2 -.IP \[bu] 2 +.IP \(bu 2 The JVM watches for console control events to implement shutdown hooks for unexpected termination. Specifically, the JVM registers a console control handler that begins shutdown\-hook processing and returns \f[CR]TRUE\f[R] for \f[CR]CTRL_C_EVENT\f[R], \f[CR]CTRL_CLOSE_EVENT\f[R], \f[CR]CTRL_LOGOFF_EVENT\f[R], and \f[CR]CTRL_SHUTDOWN_EVENT\f[R]. -.IP \[bu] 2 +.IP \(bu 2 The JVM uses a similar mechanism to implement the feature of dumping thread stacks for debugging purposes. The JVM uses \f[CR]CTRL_BREAK_EVENT\f[R] to perform thread dumps. -.IP \[bu] 2 +.IP \(bu 2 If the JVM is run as a service (for example, as a servlet engine for a web server), then it can receive \f[CR]CTRL_LOGOFF_EVENT\f[R] but -shouldn\[aq]t initiate shutdown because the operating system doesn\[aq]t +shouldn\(aqt initiate shutdown because the operating system doesn\(aqt actually terminate the process. To avoid possible interference such as this, the \f[CR]\-Xrs\f[R] option can be used. -When the \f[CR]\-Xrs\f[R] option is used, the JVM doesn\[aq]t install a -console control handler, implying that it doesn\[aq]t watch for or +When the \f[CR]\-Xrs\f[R] option is used, the JVM doesn\(aqt install a +console control handler, implying that it doesn\(aqt watch for or process \f[CR]CTRL_C_EVENT\f[R], \f[CR]CTRL_CLOSE_EVENT\f[R], \f[CR]CTRL_LOGOFF_EVENT\f[R], or \f[CR]CTRL_SHUTDOWN_EVENT\f[R]. .RE -.PP There are two consequences of specifying \f[CR]\-Xrs\f[R]: -.IP \[bu] 2 -\f[B]Non\-Windows:\f[R] \f[CR]SIGQUIT\f[R] thread dumps aren\[aq]t +.IP \(bu 2 +\f[B]Non\-Windows:\f[R] \f[CR]SIGQUIT\f[R] thread dumps aren\(aqt available. -.IP \[bu] 2 -\f[B]Windows:\f[R] Ctrl + Break thread dumps aren\[aq]t available. -.PP +.IP \(bu 2 +\f[B]Windows:\f[R] Ctrl + Break thread dumps aren\(aqt available. User code is responsible for causing shutdown hooks to run, for example, by calling \f[CR]System.exit()\f[R] when the JVM is to be terminated. .RE @@ -1049,7 +1023,6 @@ \f[CR]\-Xshare:\f[R]\f[I]mode\f[R] Sets the class data sharing (CDS) mode. .RS -.PP Possible \f[I]mode\f[R] arguments for this option include the following: .TP \f[CR]auto\f[R] @@ -1092,15 +1065,14 @@ \f[CR]security\f[R] Shows all settings related to security. .RS -.PP sub\-category arguments for \f[CR]security\f[R] include the following: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]security:all\f[R] : shows all security settings -.IP \[bu] 2 +.IP \(bu 2 \f[CR]security:properties\f[R] : shows security properties -.IP \[bu] 2 +.IP \(bu 2 \f[CR]security:providers\f[R] : shows static security provider settings -.IP \[bu] 2 +.IP \(bu 2 \f[CR]security:tls\f[R] : shows TLS related security settings .RE .TP @@ -1122,17 +1094,16 @@ The default value depends on the platform. For example: .RS -.IP \[bu] 2 +.IP \(bu 2 Linux/x64: 1024 KB -.IP \[bu] 2 +.IP \(bu 2 Linux/Aarch64: 2048 KB -.IP \[bu] 2 +.IP \(bu 2 macOS/x64: 1024 KB -.IP \[bu] 2 +.IP \(bu 2 macOS/Aarch64: 2048 KB -.IP \[bu] 2 +.IP \(bu 2 Windows: The default value depends on virtual memory -.PP The following examples set the thread stack size to 1024 KB in different units: .IP @@ -1141,7 +1112,6 @@ \-Xss1024k \-Xss1048576 .EE -.PP This option is similar to \f[CR]\-XX:ThreadStackSize\f[R]. .RE .TP @@ -1191,7 +1161,6 @@ \f[CR]deny\f[R] Disallow use of the memory\-access methods by throwing an \f[CR]UnsupportedOperationException\f[R] on every usage. -.PP The default value when the option is not specified is \f[CR]warn\f[R]. .RE .SH EXTRA OPTIONS FOR MACOS @@ -1211,10 +1180,9 @@ .TP \f[CR]\-XX:+UnlockDiagnosticVMOptions\f[R] Unlocks the options intended for diagnosing the JVM. -By default, this option is disabled and diagnostic options aren\[aq]t +By default, this option is disabled and diagnostic options aren\(aqt available. .RS -.PP Command line options that are enabled with the use of this option are not supported. If you encounter issues while using any of these options, it is very @@ -1227,7 +1195,7 @@ .TP \f[CR]\-XX:+UnlockExperimentalVMOptions\f[R] Unlocks the options that provide experimental features in the JVM. -By default, this option is disabled and experimental features aren\[aq]t +By default, this option is disabled and experimental features aren\(aqt available. .SH ADVANCED RUNTIME OPTIONS FOR JAVA These \f[CR]java\f[R] options control the runtime behavior of the Java @@ -1238,7 +1206,6 @@ of thread pools it will use for various operations such as Garbage Collection and ForkJoinPool. .RS -.PP The VM normally determines the number of available processors from the operating system. This flag can be useful for partitioning CPU resources when running @@ -1256,13 +1223,11 @@ heap on an alternative memory device, such as an NV\-DIMM, specified by the user. .RS -.PP Alternative memory devices that have the same semantics as DRAM, including the semantics of atomic operations, can be used instead of DRAM for the object heap without changing the existing application code. All other memory structures (such as the code heap, metaspace, and thread stacks) continue to reside in DRAM. -.PP Some operating systems expose non\-DRAM memory through the file system. Memory\-mapped files in these file systems bypass the page cache and provide a direct mapping of virtual memory to the physical memory on the @@ -1286,17 +1251,15 @@ Disabling the Compact Strings feature forces the use of UTF\-16 encoding as the internal representation for all Java Strings. .RS -.PP Cases where it may be beneficial to disable Compact Strings include the following: -.IP \[bu] 2 -When it\[aq]s known that an application overwhelmingly will be -allocating multibyte character Strings -.IP \[bu] 2 +.IP \(bu 2 +When it\(aqs known that an application overwhelmingly will be allocating +multibyte character Strings +.IP \(bu 2 In the unexpected event where a performance regression is observed in migrating from Java SE 8 to Java SE 9 and an analysis shows that Compact Strings introduces the regression -.PP In both of these scenarios, disabling Compact Strings makes sense. .RE .TP @@ -1308,14 +1271,13 @@ \f[I]pid\f[R] is the identifier of the process that encountered the error. .RS -.PP The following example shows how to set the default log file (note that the identifier of the process is specified as \f[CR]%p\f[R]): .RS .PP \f[CR]\-XX:ErrorFile=./hs_err_pid%p.log\f[R] .RE -.IP \[bu] 2 +.IP \(bu 2 \f[B]Non\-Windows:\f[R] The following example shows how to set the error log to \f[CR]/var/log/java/java_error.log\f[R]: .RS 2 @@ -1324,7 +1286,7 @@ \f[CR]\-XX:ErrorFile=/var/log/java/java_error.log\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] The following example shows how to set the error log file to \f[CR]C:/log/java/java_error.log\f[R]: .RS 2 @@ -1333,17 +1295,16 @@ \f[CR]\-XX:ErrorFile=C:/log/java/java_error.log\f[R] .RE .RE -.PP If the file exists, and is writeable, then it will be overwritten. -Otherwise, if the file can\[aq]t be created in the specified directory +Otherwise, if the file can\(aqt be created in the specified directory (due to insufficient space, permission problem, or another issue), then the file is created in the temporary directory for the operating system: -.IP \[bu] 2 +.IP \(bu 2 \f[B]Non\-Windows:\f[R] The temporary directory is \f[CR]/tmp\f[R]. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] The temporary directory is specified by the value of the \f[CR]TMP\f[R] environment variable; if that environment variable -isn\[aq]t defined, then the value of the \f[CR]TEMP\f[R] environment +isn\(aqt defined, then the value of the \f[CR]TEMP\f[R] environment variable is used. .RE .TP @@ -1361,7 +1322,6 @@ Sets the parameters that control the behavior of JFR. Multiple parameters can be specified by separating them with a comma. .RS -.PP The following list contains the available JFR \f[I]parameter\f[R]\f[CR]=\f[R]\f[I]value\f[R] entries: .TP @@ -1407,7 +1367,7 @@ .TP \f[CR]repository=\f[R]\f[I]path\f[R] Specifies the repository (a directory) for temporary disk storage. -By default, the system\[aq]s temporary directory is used. +By default, the system\(aqs temporary directory is used. .TP \f[CR]retransform=\f[R]{\f[CR]true\f[R]|\f[CR]false\f[R]} Specifies whether event classes should be retransformed using JVMTI. @@ -1441,7 +1401,6 @@ large pages. See \f[B]Large Pages\f[R]. .RS -.PP The following example describes how to set the large page size to 1 gigabyte (GB): .RS @@ -1459,7 +1418,6 @@ If not set, the flag is ignored and the JVM chooses the size for NIO direct\-buffer allocations automatically. .RS -.PP The following examples illustrate how to set the NIO size to 1024 KB in different units: .IP @@ -1486,7 +1444,7 @@ .TP \f[CR]off\f[R] Instructs not to track JVM native memory usage. -This is the default behavior if you don\[aq]t specify the +This is the default behavior if you don\(aqt specify the \f[CR]\-XX:NativeMemoryTracking\f[R] option. .TP \f[CR]summary\f[R] @@ -1506,23 +1464,19 @@ A value of 0 (default) disables native heap trimming. Native heap trimming is performed in a dedicated thread. .RS -.PP This option is only supported on Linux with GNU C Library (glibc). .RE .TP \f[CR]\-XX:+NeverActAsServerClassMachine\f[R] -Enable the \[dq]Client VM emulation\[dq] mode which only uses the C1 JIT +Enable the \(dqClient VM emulation\(dq mode which only uses the C1 JIT compiler, a 32Mb CodeCache and the Serial GC. The maximum amount of memory that the JVM may use (controlled by the \f[CR]\-XX:MaxRAM=n\f[R] flag) is set to 1GB by default. -The string \[dq]emulated\-client\[dq] is added to the JVM version -string. +The string \(dqemulated\-client\(dq is added to the JVM version string. .RS -.PP By default the flag is set to \f[CR]true\f[R] only on Windows in 32\-bit mode and \f[CR]false\f[R] in all other cases. -.PP -The \[dq]Client VM emulation\[dq] mode will not be enabled if any of the +The \(dqClient VM emulation\(dq mode will not be enabled if any of the following flags are used on the command line: .IP .EX @@ -1542,7 +1496,6 @@ This option makes it possible to use compressed pointers with large Java heap sizes. .RS -.PP The heap size limit in bytes is calculated as: .RS .PP @@ -1563,7 +1516,7 @@ If the string contains spaces, then it must be enclosed in quotation marks. .RS -.IP \[bu] 2 +.IP \(bu 2 \f[B]Non\-Windows:\f[R] The following example shows how the \f[CR]\-XX:OnError\f[R] option can be used to run the \f[CR]gcore\f[R] command to create a core image, and start the \f[CR]gdb\f[R] debugger to @@ -1572,10 +1525,10 @@ .RS 2 .RS .PP -\f[CR]\-XX:OnError=\[dq]gcore %p;gdb \-p %p\[dq]\f[R] +\f[CR]\-XX:OnError=\(dqgcore %p;gdb \-p %p\(dq\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] The following example shows how the \f[CR]\-XX:OnError\f[R] option can be used to run the \f[CR]userdump.exe\f[R] utility to obtain a crash dump in case of an @@ -1586,7 +1539,7 @@ .RS 2 .RS .PP -\f[CR]\-XX:OnError=\[dq]userdump.exe %p\[dq]\f[R] +\f[CR]\-XX:OnError=\(dquserdump.exe %p\(dq\f[R] .RE .RE .RE @@ -1609,7 +1562,7 @@ the command line. It can be useful to know the ergonomic values set by the JVM, such as the heap space size and the selected garbage collector. -By default, this option is disabled and flags aren\[aq]t printed. +By default, this option is disabled and flags aren\(aqt printed. .TP \f[CR]\-XX:+PreserveFramePointer\f[R] Selects between using the RBP register as a general purpose register @@ -1624,12 +1577,11 @@ when native memory tracking is enabled (see \f[CR]\-XX:NativeMemoryTracking\f[R]). By default, this option is disabled and native memory tracking data -isn\[aq]t printed. +isn\(aqt printed. .TP \f[CR]\-XX:SharedArchiveFile=\f[R]\f[I]path\f[R] Specifies the path and name of the class data sharing (CDS) archive file .RS -.PP See \f[B]Application Class Data Sharing\f[R]. .RE .TP @@ -1659,19 +1611,17 @@ java/lang/Object hello/Main .EE -.PP The classes that you specify in this text file should include the classes that are commonly used by the application. They may include any classes from the application, extension, or bootstrap class paths. -.PP See \f[B]Application Class Data Sharing\f[R]. .RE .TP \f[CR]\-XX:+ShowCodeDetailsInExceptionMessages\f[R] Enables printing of improved \f[CR]NullPointerException\f[R] messages. When an application throws a \f[CR]NullPointerException\f[R], the option -enables the JVM to analyze the program\[aq]s bytecode instructions to +enables the JVM to analyze the program\(aqs bytecode instructions to determine precisely which reference is \f[CR]null\f[R], and describes the source with a null\-detail message. The null\-detail message is calculated and returned by @@ -1702,7 +1652,7 @@ Append \f[CR]s\f[R] to specify the time in seconds, \f[CR]m\f[R] for minutes, \f[CR]h\f[R] for hours, or \f[CR]d\f[R] for days (for example, specifying \f[CR]10m\f[R] means 10 minutes). -By default, there\[aq]s no delay, and this parameter is set to 0. +By default, there\(aqs no delay, and this parameter is set to 0. .TP \f[CR]disk=\f[R]{\f[CR]true\f[R]|\f[CR]false\f[R]} Specifies whether to write data to disk while recording. @@ -1722,22 +1672,21 @@ Append \f[CR]s\f[R] to specify the time in seconds, \f[CR]m\f[R] for minutes, \f[CR]h\f[R] for hours, or \f[CR]d\f[R] for days (for example, specifying \f[CR]5h\f[R] means 5 hours). -By default, the duration isn\[aq]t limited, and this parameter is set to +By default, the duration isn\(aqt limited, and this parameter is set to 0. .TP \f[CR]filename=\f[R]\f[I]path\f[R] Specifies the path and name of the file to which the recording is written when the recording is stopped, for example: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]recording.jfr\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]/home/user/recordings/recording.jfr\f[R] -.IP \[bu] 2 -\f[CR]c:\[rs]recordings\[rs]recording.jfr\f[R] -.PP -If %p and/or %t is specified in the filename, it expands to the -JVM\[aq]s PID and the current timestamp, respectively. +.IP \(bu 2 +\f[CR]c:\(rsrecordings\(rsrecording.jfr\f[R] +If %p and/or %t is specified in the filename, it expands to the JVM\(aqs +PID and the current timestamp, respectively. The filename may also be a directory in which case, the filename is generated from the PID and the current date in the specified directory. .RE @@ -1752,7 +1701,7 @@ Append \f[CR]s\f[R] to specify the time in seconds, \f[CR]m\f[R] for minutes, \f[CR]h\f[R] for hours, or \f[CR]d\f[R] for days (for example, specifying \f[CR]30s\f[R] means 30 seconds). -By default, the maximum age isn\[aq]t limited, and this parameter is set +By default, the maximum age isn\(aqt limited, and this parameter is set to \f[CR]0s\f[R]. .TP \f[CR]maxsize=\f[R]\f[I]size\f[R] @@ -1765,7 +1714,7 @@ \f[CR]\-XX:FlightRecorderOptions\f[R]. Append \f[CR]m\f[R] or \f[CR]M\f[R] to specify the size in megabytes, or \f[CR]g\f[R] or \f[CR]G\f[R] to specify the size in gigabytes. -By default, the maximum size of disk data isn\[aq]t limited, and this +By default, the maximum size of disk data isn\(aqt limited, and this parameter is set to \f[CR]0\f[R]. .TP \f[CR]path\-to\-gc\-roots=\f[R]{\f[CR]true\f[R]|\f[CR]false\f[R]} @@ -1773,7 +1722,6 @@ at the end of a recording. By default, this parameter is disabled. .RS -.PP The path to GC roots is useful for finding memory leaks, but collecting it is time\-consuming. Enable this option only when you start a recording for an application @@ -1800,14 +1748,12 @@ low overhead, so it has minimal impact on performance and can be used with recordings that run continuously. .RS -.PP A second settings file is also provided, profile.jfc, which provides more data than the default configuration, but can have more overhead and impact performance. Use this configuration for short periods of time when more information is needed. .RE -.PP You can specify values for multiple parameters by separating them with a comma. Event settings and .jfc options can be specified using the following @@ -1820,8 +1766,7 @@ \f[CR]event\-setting=\f[R]\f[I]value\f[R] Specifies the event setting value to modify. Use the form: \f[CR]#=\f[R]. -To add a new event setting, prefix the event name with \[aq]+\[aq]. -.PP +To add a new event setting, prefix the event name with \(aq+\(aq. You can specify values for multiple event settings and .jfc options by separating them with a comma. In case of a conflict between a parameter and a .jfc option, the @@ -1830,7 +1775,6 @@ 20ms. For more information about the settings syntax, see Javadoc of the jdk.jfr package. -.PP To only see warnings and errors from JFR during startup set \-Xlog:jfr+startup=warning. .RE @@ -1843,17 +1787,16 @@ The default value depends on the platform. For example: .RS -.IP \[bu] 2 +.IP \(bu 2 Linux/x64: 1024 KB -.IP \[bu] 2 +.IP \(bu 2 Linux/Aarch64: 2048 KB -.IP \[bu] 2 +.IP \(bu 2 macOS/x64: 1024 KB -.IP \[bu] 2 +.IP \(bu 2 macOS/Aarch64: 2048 KB -.IP \[bu] 2 +.IP \(bu 2 Windows: The default value depends on virtual memory -.PP The following examples show how to set the thread stack size to 1 megabyte in different units: .IP @@ -1861,7 +1804,6 @@ \-XX:ThreadStackSize=1k \-XX:ThreadStackSize=1024 .EE -.PP This option is similar to \f[CR]\-Xss\f[R]. .RE .TP @@ -1871,7 +1813,6 @@ Enabling this option reduces memory footprint in the Java heap by 4 bytes per object (on average) and often improves performance. .RS -.PP The feature remains disabled by default while it continues to be evaluated. In a future release it is expected to be enabled by default, and @@ -1886,15 +1827,13 @@ compressed pointers. By default this range is 32 GB. .RS -.PP With compressed oops enabled, object references are represented as 32\-bit offsets instead of 64\-bit pointers, which typically increases performance when running the application with Java heap sizes smaller than the compressed oops pointer range. This option works only for 64\-bit JVMs. -.PP -It\[aq]s possible to use compressed pointers with Java heap sizes -greater than 32 GB. +It\(aqs possible to use compressed pointers with Java heap sizes greater +than 32 GB. See the \f[CR]\-XX:ObjectAlignmentInBytes\f[R] option. .RE .TP @@ -1908,10 +1847,8 @@ enabled by default. It can be disabled with \f[CR]\-XX:\-UseContainerSupport\f[R]. .RS -.PP Unified Logging is available to help to diagnose issues related to this support. -.PP Use \f[CR]\-Xlog:os+container=trace\f[R] for maximum logging of container information. See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R] for @@ -1920,10 +1857,8 @@ .TP \f[CR]\-XX:+UseLargePages\f[R] Enables the use of large page memory. -By default, this option is disabled and large page memory isn\[aq]t -used. +By default, this option is disabled and large page memory isn\(aqt used. .RS -.PP See \f[B]Large Pages\f[R]. .RE .TP @@ -1938,8 +1873,8 @@ \f[CR]\-XX:+AllowUserSignalHandlers\f[R] \f[B]Non\-Windows:\f[R] Enables installation of signal handlers by the application. -By default, this option is disabled and the application isn\[aq]t -allowed to install signal handlers. +By default, this option is disabled and the application isn\(aqt allowed +to install signal handlers. .TP \f[CR]\-XX:VMOptionsFile=\f[R]\f[I]filename\f[R] Allows user to specify VM options in a file, for example, @@ -1952,7 +1887,6 @@ In addition, for full protection, any native libraries provided by applications should be compiled with the same level of protection. .RS -.PP Possible \f[I]mode\f[R] arguments for this option include the following: .TP \f[CR]none\f[R] @@ -1988,7 +1922,6 @@ object. Each Java thread has its own allocation point. .RS -.PP Negative values denote that prefetch distance is chosen based on the platform. Positive values are bytes to prefetch. @@ -1996,7 +1929,6 @@ \f[CR]m\f[R] or \f[CR]M\f[R] to indicate megabytes, or \f[CR]g\f[R] or \f[CR]G\f[R] to indicate gigabytes. The default value is set to \-1. -.PP The following example shows how to set the prefetch distance to 1024 bytes: .RS @@ -2024,7 +1956,6 @@ The default value is 1 if the last allocated object was an instance, and 3 if it was an array. .RS -.PP The following example shows how to set the number of loaded cache lines to 5: .RS @@ -2052,7 +1983,7 @@ .RS .TP \f[CR]0\f[R] -Don\[aq]t generate prefetch instructions. +Don\(aqt generate prefetch instructions. .TP \f[CR]1\f[R] Execute prefetch instructions after each allocation. @@ -2099,17 +2030,15 @@ .PP \f[CR]\-XX:CompileCommand=exclude,java/lang/String.indexOf\f[R] .RE -.PP Note that the full class name is specified, including all packages and subpackages separated by a slash (\f[CR]/\f[R]). -For easier cut\-and\-paste operations, it\[aq]s also possible to use the +For easier cut\-and\-paste operations, it\(aqs also possible to use the method name format produced by the \f[CR]\-XX:+PrintCompilation\f[R] and \f[CR]\-XX:+LogCompilation\f[R] options: .RS .PP \f[CR]\-XX:CompileCommand=exclude,java.lang.String::indexOf\f[R] .RE -.PP If the method is specified without the signature, then the command is applied to all methods with the specified name. However, you can also specify the signature of the method in the class @@ -2121,9 +2050,8 @@ following: .RS .PP -\f[CR]\-XX:CompileCommand=\[dq]exclude,java/lang/String.indexOf,(Ljava/lang/String;)I\[dq]\f[R] +\f[CR]\-XX:CompileCommand=\(dqexclude,java/lang/String.indexOf,(Ljava/lang/String;)I\(dq\f[R] .RE -.PP You can also use the asterisk (*) as a wildcard for class and method names. For example, to exclude all \f[CR]indexOf()\f[R] methods in all classes @@ -2132,25 +2060,22 @@ .PP \f[CR]\-XX:CompileCommand=exclude,*.indexOf\f[R] .RE -.PP The commas and periods are aliases for spaces, making it easier to pass compiler commands through a shell. You can pass arguments to \f[CR]\-XX:CompileCommand\f[R] using spaces as separators by enclosing the argument in quotation marks: .RS .PP -\f[CR]\-XX:CompileCommand=\[dq]exclude java/lang/String indexOf\[dq]\f[R] +\f[CR]\-XX:CompileCommand=\(dqexclude java/lang/String indexOf\(dq\f[R] .RE -.PP Note that after parsing the commands passed on the command line using the \f[CR]\-XX:CompileCommand\f[R] options, the JIT compiler then reads commands from the \f[CR].hotspot_compiler\f[R] file. You can add commands to this file or specify a different file using the \f[CR]\-XX:CompileCommandFile\f[R] option. -.PP To add several commands, either specify the \f[CR]\-XX:CompileCommand\f[R] option multiple times, or separate each -argument with the new line separator (\f[CR]\[rs]n\f[R]). +argument with the new line separator (\f[CR]\(rsn\f[R]). The following commands are available: .TP \f[CR]break\f[R] @@ -2191,7 +2116,6 @@ .PP \f[CR]\-XX:CompileCommand=option,java/lang/StringBuffer.append,BlockLayoutByFrequency\f[R] .RE -.PP You can specify multiple compilation options, separated by commas or spaces. .RE @@ -2212,7 +2136,6 @@ .PP \f[CR]CompilerOracle: exclude java/lang/String.indexOf\f[R] .RE -.PP You can suppress this by specifying the \f[CR]\-XX:CompileCommand=quiet\f[R] option before other \f[CR]\-XX:CompileCommand\f[R] options. @@ -2224,7 +2147,6 @@ By default, the \f[CR].hotspot_compiler\f[R] file is used to store commands performed by the JIT compiler. .RS -.PP Each line in the command file represents a command, a class name, and a method name for which the command is used. For example, this line prints assembly code for the @@ -2233,8 +2155,7 @@ .PP \f[CR]print java/lang/String toString\f[R] .RE -.PP -If you\[aq]re using commands for the JIT compiler to perform on methods, +If you\(aqre using commands for the JIT compiler to perform on methods, then see the \f[CR]\-XX:CompileCommand\f[R] option. .RE .TP @@ -2244,7 +2165,6 @@ See \f[B]Compiler Control\f[R] [https://docs.oracle.com/en/java/javase/12/vm/compiler\-control1.html#GUID\-94AD8194\-786A\-4F19\-BFFF\-278F8E237F3A]. .RS -.PP The \f[CR]\-XX:CompilerDirectivesFile\f[R] option has to be used together with the \f[CR]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks diagnostic JVM options. @@ -2254,7 +2174,6 @@ Prints the directives stack when the program starts or when a new directive is added. .RS -.PP The \f[CR]\-XX:+CompilerDirectivesPrint\f[R] option has to be used together with the \f[CR]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks diagnostic JVM options. @@ -2265,7 +2184,6 @@ should be restricted. Only the specified methods are compiled. .RS -.PP \f[CR]\-XX:CompileOnly=method1,method2,...,methodN\f[R] is an alias for: .IP .EX @@ -2301,7 +2219,7 @@ \f[CR]m\f[R] or \f[CR]M\f[R] to indicate megabytes, or \f[CR]g\f[R] or \f[CR]G\f[R] to indicate gigabytes. The default value depends on the platform. -The initial code cache size shouldn\[aq]t be less than the system\[aq]s +The initial code cache size shouldn\(aqt be less than the system\(aqs minimal memory page size. The following example shows how to set the initial code cache size to 32 KB: @@ -2340,13 +2258,11 @@ You can specify a different log file path and name using the \f[CR]\-XX:LogFile\f[R] option. .RS -.PP -By default, this option is disabled and compilation activity isn\[aq]t +By default, this option is disabled and compilation activity isn\(aqt logged. The \f[CR]\-XX:+LogCompilation\f[R] option has to be used together with the \f[CR]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks diagnostic JVM options. -.PP You can enable verbose diagnostic output with a message printed to the console every time a method is compiled by using the \f[CR]\-XX:+PrintCompilation\f[R] option. @@ -2444,7 +2360,6 @@ \f[CR]\-XX:NonNMethodCodeHeapSize=\f[R]\f[I]size\f[R] Sets the size in bytes of the code segment containing nonmethod code. .RS -.PP A nonmethod code segment containing nonmethod code, such as compiler buffers and the bytecode interpreter. This code type stays in the code cache forever. @@ -2466,12 +2381,11 @@ Enables printing of assembly code for bytecoded and native methods by using the external \f[CR]hsdis\-.so\f[R] or \f[CR].dll\f[R] library. -For 64\-bit VM on Windows, it\[aq]s \f[CR]hsdis\-amd64.dll\f[R]. +For 64\-bit VM on Windows, it\(aqs \f[CR]hsdis\-amd64.dll\f[R]. This lets you to see the generated code, which may help you to diagnose performance issues. .RS -.PP -By default, this option is disabled and assembly code isn\[aq]t printed. +By default, this option is disabled and assembly code isn\(aqt printed. The \f[CR]\-XX:+PrintAssembly\f[R] option has to be used together with the \f[CR]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks diagnostic JVM options. @@ -2485,20 +2399,18 @@ Enables verbose diagnostic output from the JVM by printing a message to the console every time a method is compiled. This lets you to see which methods actually get compiled. -By default, this option is disabled and diagnostic output isn\[aq]t +By default, this option is disabled and diagnostic output isn\(aqt printed. .RS -.PP You can also log compilation activity to a file by using the \f[CR]\-XX:+LogCompilation\f[R] option. .RE .TP \f[CR]\-XX:+PrintInlining\f[R] Enables printing of inlining decisions. -This let\[aq]s you see which methods are getting inlined. +This let\(aqs you see which methods are getting inlined. .RS -.PP -By default, this option is disabled and inlining information isn\[aq]t +By default, this option is disabled and inlining information isn\(aqt printed. The \f[CR]\-XX:+PrintInlining\f[R] option has to be used together with the \f[CR]\-XX:+UnlockDiagnosticVMOptions\f[R] option that unlocks @@ -2514,7 +2426,7 @@ compilation with the option \f[CR]\-XX:\-TieredCompilation\f[R], then the default size is 48 MB. This option has a limit of 2 GB; otherwise, an error is generated. -The maximum code cache size shouldn\[aq]t be less than the initial code +The maximum code cache size shouldn\(aqt be less than the initial code cache size; see the option \f[CR]\-XX:InitialCodeCacheSize\f[R]. .TP \f[CR]\-XX:+SegmentedCodeCache\f[R] @@ -2527,7 +2439,6 @@ fragmentation, and better CPU iTLB (instruction translation lookaside buffer) and instruction cache behavior due to improved locality. .RS -.PP The feature is enabled by default if tiered compilation is enabled (\f[CR]\-XX:+TieredCompilation\f[R] ) and the reserved code cache size (\f[CR]\-XX:ReservedCodeCacheSize\f[R]) is at least 240 MB. @@ -2571,7 +2482,6 @@ .PP \f[CR]\-XX:+UseAES \-XX:+UseAESIntrinsics\f[R] .RE -.PP Flags that control intrinsics now require the option \f[CR]\-XX:+UnlockDiagnosticVMOptions\f[R]. .RE @@ -2637,15 +2547,12 @@ \f[CR]UseSHA1Intrinsics\f[R], \f[CR]UseSHA256Intrinsics\f[R], and \f[CR]UseSHA512Intrinsics\f[R] options. .RS -.PP The \f[CR]UseSHA\f[R] and \f[CR]UseSHA*Intrinsics\f[R] flags are enabled by default on machines that support the corresponding instructions. -.PP This feature is applicable only when using the \f[CR]sun.security.provider.Sun\f[R] provider for SHA operations. Flags that control intrinsics now require the option \f[CR]\-XX:+UnlockDiagnosticVMOptions\f[R]. -.PP To disable all hardware\-based SHA intrinsics, specify the \f[CR]\-XX:\-UseSHA\f[R]. To disable only a particular SHA intrinsic, use the appropriate @@ -2772,7 +2679,7 @@ .RS .PP \f[B]Note:\f[R] The tools such as \f[B]jcmd\f[R], \f[B]jinfo\f[R], -\f[B]jmap\f[R], and \f[B]jstack\f[R] shipped with the JDK aren\[aq]t +\f[B]jmap\f[R], and \f[B]jstack\f[R] shipped with the JDK aren\(aqt supported when using the tools from one JDK version to troubleshoot a different JDK version. .RE @@ -2796,8 +2703,8 @@ \f[CR]java.lang.OutOfMemoryError\f[R] exception is thrown by the JVM. You can explicitly set the heap dump file path and name using the \f[CR]\-XX:HeapDumpPath\f[R] option. -By default, this option is disabled and the heap isn\[aq]t dumped when -an \f[CR]OutOfMemoryError\f[R] exception is thrown. +By default, this option is disabled and the heap isn\(aqt dumped when an +\f[CR]OutOfMemoryError\f[R] exception is thrown. This applies only to \f[CR]OutOfMemoryError\f[R] exceptions caused by Java Heap exhaustion; it does not apply to \f[CR]OutOfMemoryError\f[R] exceptions thrown directly from Java code, nor by the JVM for other @@ -2808,7 +2715,7 @@ heap profiler (HPROF) when the \f[CR]\-XX:+HeapDumpOnOutOfMemoryError\f[R] option is set. By default, the file is created in the current working directory, and -it\[aq]s named \f[CR]java_pid.hprof\f[R] where \f[CR]\f[R] is +it\(aqs named \f[CR]java_pid.hprof\f[R] where \f[CR]\f[R] is the identifier of the process that caused the error. The following example shows how to set the default file explicitly (\f[CR]%p\f[R] represents the current process identifier): @@ -2817,7 +2724,7 @@ .PP \f[CR]\-XX:HeapDumpPath=./java_pid%p.hprof\f[R] .RE -.IP \[bu] 2 +.IP \(bu 2 \f[B]Non\-Windows:\f[R] The following example shows how to set the heap dump file to \f[CR]/var/log/java/java_heapdump.hprof\f[R]: .RS 2 @@ -2826,7 +2733,7 @@ \f[CR]\-XX:HeapDumpPath=/var/log/java/java_heapdump.hprof\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] The following example shows how to set the heap dump file to \f[CR]C:/log/java/java_heapdump.log\f[R]: .RS 2 @@ -2840,9 +2747,9 @@ \f[CR]\-XX:LogFile=\f[R]\f[I]path\f[R] Sets the path and file name to where log data is written. By default, the file is created in the current working directory, and -it\[aq]s named \f[CR]hotspot.log\f[R]. +it\(aqs named \f[CR]hotspot.log\f[R]. .RS -.IP \[bu] 2 +.IP \(bu 2 \f[B]Non\-Windows:\f[R] The following example shows how to set the log file to \f[CR]/var/log/java/hotspot.log\f[R]: .RS 2 @@ -2851,7 +2758,7 @@ \f[CR]\-XX:LogFile=/var/log/java/hotspot.log\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] The following example shows how to set the log file to \f[CR]C:/log/java/hotspot.log\f[R]: .RS 2 @@ -2866,13 +2773,11 @@ Enables printing of a class instance histogram after one of the following events: .RS -.IP \[bu] 2 -\f[B]Non\-Windows:\f[R] \f[CR]Control+\[rs]\f[R] (\f[CR]SIGQUIT\f[R]) -.IP \[bu] 2 +.IP \(bu 2 +\f[B]Non\-Windows:\f[R] \f[CR]Control+\(rs\f[R] (\f[CR]SIGQUIT\f[R]) +.IP \(bu 2 \f[B]Windows:\f[R] \f[CR]Control+C\f[R] (\f[CR]SIGTERM\f[R]) -.PP By default, this option is disabled. -.PP Setting this option is equivalent to running the \f[CR]jmap \-histo\f[R] command, or the \f[CR]jcmd\f[R] \f[I]pid\f[R] \f[CR]GC.class_histogram\f[R] command, where \f[I]pid\f[R] is the @@ -2883,13 +2788,11 @@ Enables printing of \f[CR]java.util.concurrent\f[R] locks after one of the following events: .RS -.IP \[bu] 2 -\f[B]Non\-Windows:\f[R] \f[CR]Control+\[rs]\f[R] (\f[CR]SIGQUIT\f[R]) -.IP \[bu] 2 +.IP \(bu 2 +\f[B]Non\-Windows:\f[R] \f[CR]Control+\(rs\f[R] (\f[CR]SIGQUIT\f[R]) +.IP \(bu 2 \f[B]Windows:\f[R] \f[CR]Control+C\f[R] (\f[CR]SIGTERM\f[R]) -.PP By default, this option is disabled. -.PP Setting this option is equivalent to running the \f[CR]jstack \-l\f[R] command or the \f[CR]jcmd\f[R] \f[I]pid\f[R] \f[CR]Thread.print \-l\f[R] command, where \f[I]pid\f[R] is the current Java process identifier. @@ -2951,7 +2854,6 @@ parallel garbage collection threads. The default value depends on the number of CPUs available to the JVM. .RS -.PP For example, to set the number of threads for concurrent GC to 2, specify the following option: .RS @@ -2991,7 +2893,6 @@ The default region size is determined ergonomically based on the heap size with a goal of approximately 2048 regions. .RS -.PP The following example sets the size of the subdivisions to 16 MB: .RS .PP @@ -3000,8 +2901,8 @@ .RE .TP \f[CR]\-XX:G1HeapWastePercent=\f[R]\f[I]percent\f[R] -Sets the percentage of heap that you\[aq]re willing to waste. -The Java HotSpot VM doesn\[aq]t initiate the mixed garbage collection +Sets the percentage of heap that you\(aqre willing to waste. +The Java HotSpot VM doesn\(aqt initiate the mixed garbage collection cycle when the reclaimable percentage is less than the heap waste percentage. The default is 5 percent. @@ -3011,7 +2912,6 @@ generation size. The default value is 60 percent of your Java heap. .RS -.PP This is an experimental flag. This setting replaces the \f[CR]\-XX:DefaultMaxNewGenPercent\f[R] setting. @@ -3029,7 +2929,6 @@ garbage collection cycle. The default occupancy is 85 percent. .RS -.PP This is an experimental flag. This setting replaces the \f[CR]\-XX:G1OldCSetRegionLiveThresholdPercent\f[R] setting. @@ -3040,7 +2939,6 @@ generation size. The default value is 5 percent of your Java heap. .RS -.PP This is an experimental flag. This setting replaces the \f[CR]\-XX:DefaultMinNewGenPercent\f[R] setting. @@ -3052,14 +2950,13 @@ The default is 10 percent of the Java heap. .TP \f[CR]\-XX:G1ReservePercent=\f[R]\f[I]percent\f[R] -Sets the percentage of the heap (0 to 50) that\[aq]s reserved as a false +Sets the percentage of the heap (0 to 50) that\(aqs reserved as a false ceiling to reduce the possibility of promotion failure for the G1 collector. When you increase or decrease the percentage, ensure that you adjust the total Java heap by the same amount. By default, this option is set to 10%. .RS -.PP The following example sets the reserved heap to 20%: .RS .PP @@ -3079,7 +2976,6 @@ old generation occupancy determined by \f[CR]\-XX:InitiatingHeapOccupancyPercent\f[R]. .RS -.PP The default is enabled. .RE .TP @@ -3093,7 +2989,6 @@ The default value is selected at run time based on the system configuration. .RS -.PP The following examples show how to set the size of allocated memory to 6 MB using various units: .IP @@ -3102,7 +2997,6 @@ \-XX:InitialHeapSize=6144k \-XX:InitialHeapSize=6m .EE -.PP If you set this option to 0, then the initial size is set as the sum of the sizes allocated for the old generation and the young generation. The size of the heap for the young generation can be set using the @@ -3121,7 +3015,6 @@ option. The default value is 1.5625 percent. .RS -.PP The following example shows how to set the percentage of the initial amount of memory used for the Java heap: .RS @@ -3143,7 +3036,6 @@ \f[CR]\-XX:SurvivorRatio\f[R] option should be used to set the size of the survivor space for the entire execution of the application. .RS -.PP The following formula can be used to calculate the initial size of survivor space (S) based on the size of the young generation (Y), and the initial survivor space ratio (R): @@ -3151,15 +3043,12 @@ .PP \f[CR]S=Y/(R+2)\f[R] .RE -.PP The 2 in the equation denotes two survivor spaces. The larger the value specified as the initial survivor space ratio, the smaller the initial survivor space size. -.PP By default, the initial survivor space ratio is set to 8. If the default value for the young generation space size is used (2 MB), then the initial size of the survivor space is 0.2 MB. -.PP The following example shows how to set the initial survivor space ratio to 4: .RS @@ -3173,14 +3062,11 @@ to start the first few concurrent marking cycles for the G1 garbage collector. .RS -.PP By default, the initiating value is set to 45%. A value of 0 implies nonstop concurrent GC cycles from the beginning until G1 adaptively sets this value. -.PP See also the \f[CR]\-XX:G1UseAdaptiveIHOP\f[R] and \f[CR]\-XX:G1AdaptiveIHOPNumInitialSamples\f[R] options. -.PP The following example shows how to set the initiating heap occupancy to 75%: .RS @@ -3193,12 +3079,11 @@ Sets a target for the maximum GC pause time (in milliseconds). This is a soft goal, and the JVM will make its best effort to achieve it. -The specified value doesn\[aq]t adapt to your heap size. +The specified value doesn\(aqt adapt to your heap size. By default, for G1 the maximum pause time target is 200 milliseconds. The other generational collectors do not use a pause time goal by default. .RS -.PP The following example shows how to set the maximum target pause time to 500 ms: .RS @@ -3218,7 +3103,6 @@ For server deployments, the options \f[CR]\-XX:InitialHeapSize\f[R] and \f[CR]\-XX:MaxHeapSize\f[R] are often set to the same value. .RS -.PP The following examples show how to set the maximum allowed size of allocated memory to 80 MB using various units: .IP @@ -3227,7 +3111,6 @@ \-XX:MaxHeapSize=81920k \-XX:MaxHeapSize=80m .EE -.PP The \f[CR]\-XX:MaxHeapSize\f[R] option is equivalent to \f[CR]\-Xmx\f[R]. .RE @@ -3238,7 +3121,6 @@ If free heap space expands above this value, then the heap is shrunk. By default, this value is set to 70%. .RS -.PP Minimize the Java heap size by lowering the values of the parameters \f[CR]MaxHeapFreeRatio\f[R] (default value is 70%) and \f[CR]MinHeapFreeRatio\f[R] (default value is 40%) with the @@ -3248,13 +3130,12 @@ \f[CR]MinHeapFreeRatio\f[R] to 5% has successfully reduced the heap size without too much performance regression; however, results may vary greatly depending on your application. -Try different values for these parameters until they\[aq]re as low as +Try different values for these parameters until they\(aqre as low as possible yet still retain acceptable performance. .RS .PP \f[CR]\-XX:MaxHeapFreeRatio=10 \-XX:MinHeapFreeRatio=5\f[R] .RE -.PP Customers trying to keep the heap small should also add the option \f[CR]\-XX:\-ShrinkHeapInSteps\f[R]. See \f[B]Performance Tuning Examples\f[R] for a description of using @@ -3265,12 +3146,11 @@ \f[CR]\-XX:MaxMetaspaceSize=\f[R]\f[I]size\f[R] Sets the maximum amount of native memory that can be allocated for class metadata. -By default, the size isn\[aq]t limited. +By default, the size isn\(aqt limited. The amount of metadata for an application depends on the application itself, other running applications, and the amount of memory available on the system. .RS -.PP The following example shows how to set the maximum class metadata size to 256 MB: .RS @@ -3290,19 +3170,16 @@ The default value is the maximum amount of available memory to the JVM process or 128 GB, whichever is lower. .RS -.PP The maximum amount of available memory to the JVM process is the minimum -of the machine\[aq]s physical memory and any constraints set by the +of the machine\(aqs physical memory and any constraints set by the environment (e.g. container). -.PP Specifying this option disables automatic use of compressed oops if the combined result of this and other options influencing the maximum amount of memory is larger than the range of memory addressable by compressed oops. See \f[CR]\-XX:UseCompressedOops\f[R] for further information about compressed oops. -.PP The following example shows how to set the maximum amount of available memory for sizing the Java heap to 2 GB: .RS @@ -3317,14 +3194,12 @@ amount determined as described in the \f[CR]\-XX:MaxRAM\f[R] option. The default value is 25 percent. .RS -.PP Specifying this option disables automatic use of compressed oops if the combined result of this and other options influencing the maximum amount of memory is larger than the range of memory addressable by compressed oops. See \f[CR]\-XX:UseCompressedOops\f[R] for further information about compressed oops. -.PP The following example shows how to set the percentage of the maximum amount of memory used for the Java heap: .RS @@ -3341,7 +3216,6 @@ A small heap is a heap of approximately 125 MB. The default value is 50 percent. .RS -.PP The following example shows how to set the percentage of the maximum amount of memory used for the Java heap for small heaps: .RS @@ -3355,7 +3229,6 @@ The largest value is 15. The default value is 15 for the parallel (throughput) collector. .RS -.PP The following example shows how to set the maximum tenuring threshold to 10: .RS @@ -3366,7 +3239,7 @@ .TP \f[CR]\-XX:MetaspaceSize=\f[R]\f[I]size\f[R] Sets the size of the allocated class metadata space that triggers a -garbage collection the first time it\[aq]s exceeded. +garbage collection the first time it\(aqs exceeded. This threshold for a garbage collection is increased or decreased depending on the amount of metadata used. The default size depends on the platform. @@ -3377,7 +3250,6 @@ If free heap space falls below this value, then the heap is expanded. By default, this value is set to 40%. .RS -.PP Minimize Java heap size by lowering the values of the parameters \f[CR]MaxHeapFreeRatio\f[R] (default value is 70%) and \f[CR]MinHeapFreeRatio\f[R] (default value is 40%) with the @@ -3387,13 +3259,12 @@ \f[CR]MinHeapFreeRatio\f[R] to 5% has successfully reduced the heap size without too much performance regression; however, results may vary greatly depending on your application. -Try different values for these parameters until they\[aq]re as low as +Try different values for these parameters until they\(aqre as low as possible, yet still retain acceptable performance. .RS .PP \f[CR]\-XX:MaxHeapFreeRatio=10 \-XX:MinHeapFreeRatio=5\f[R] .RE -.PP Customers trying to keep the heap small should also add the option \f[CR]\-XX:\-ShrinkHeapInSteps\f[R]. See \f[B]Performance Tuning Examples\f[R] for a description of using @@ -3411,7 +3282,6 @@ The default value is selected at run time based on the system configuration. .RS -.PP The following examples show how to set the minimum size of allocated memory to 6 MB using various units: .IP @@ -3420,7 +3290,6 @@ \-XX:MinHeapSize=6144k \-XX:MinHeapSize=6m .EE -.PP If you set this option to 0, then the minimum size is set to the same value as the initial size. .RE @@ -3443,7 +3312,6 @@ \f[CR]m\f[R] or \f[CR]M\f[R] to indicate megabytes, or \f[CR]g\f[R] or \f[CR]G\f[R] to indicate gigabytes. .RS -.PP The young generation region of the heap is used for new objects. GC is performed in this region more often than in other regions. If the size for the young generation is too low, then a large number of @@ -3452,7 +3320,6 @@ take a long time to complete. It is recommended that you keep the size for the young generation greater than 25% and less than 50% of the overall heap size. -.PP The following examples show how to set the initial size of the young generation to 256 MB using various units: .IP @@ -3461,7 +3328,6 @@ \-XX:NewSize=262144k \-XX:NewSize=268435456 .EE -.PP The \f[CR]\-XX:NewSize\f[R] option is equivalent to \f[CR]\-Xmn\f[R]. .RE .TP @@ -3470,7 +3336,6 @@ The default value depends on the number of CPUs available to the JVM and the garbage collector selected. .RS -.PP For example, to set the number of threads for G1 GC to 2, specify the following option: .RS @@ -3508,9 +3373,7 @@ In the latter case, the value of the \f[CR]\-Xmx\f[R] option has a significant effect on how quickly soft references are garbage collected. .RS -.PP The following example shows how to set the value to 2.5 seconds: -.PP \f[CR]\-XX:SoftRefLRUPolicyMSPerMB=2500\f[R] .RE .TP @@ -3524,7 +3387,6 @@ You will likely encounter performance degradation when this option is disabled. .RS -.PP See \f[B]Performance Tuning Examples\f[R] for a description of using the \f[CR]MaxHeapFreeRatio\f[R] option to keep the Java heap small by reducing the dynamic footprint for embedded applications. @@ -3533,7 +3395,7 @@ \f[CR]\-XX:StringDeduplicationAgeThreshold=\f[R]\f[I]threshold\f[R] Identifies \f[CR]String\f[R] objects reaching the specified age that are considered candidates for deduplication. -An object\[aq]s age is a measure of how many times it has survived +An object\(aqs age is a measure of how many times it has survived garbage collection. This is sometimes referred to as tenuring. .RS @@ -3564,7 +3426,6 @@ young garbage collection. By default, this option is set to 50%. .RS -.PP The following example shows how to set the target survivor space ratio to 30%: .RS @@ -3582,7 +3443,6 @@ If this option is set to 0, then the JVM selects the initial size automatically. .RS -.PP The following example shows how to set the initial TLAB size to 512 KB: .RS .PP @@ -3600,7 +3460,7 @@ .TP \f[CR]\-XX:+UseG1GC\f[R] Enables the use of the garbage\-first (G1) garbage collector. -It\[aq]s a server\-style garbage collector, targeted for multiprocessor +It\(aqs a server\-style garbage collector, targeted for multiprocessor machines with a large amount of RAM. This option meets GC pause time goals with high probability, while maintaining good throughput. @@ -3623,8 +3483,8 @@ .TP \f[CR]\-XX:+UseNUMA\f[R] Enables performance optimization of an application on a machine with -nonuniform memory architecture (NUMA) by increasing the -application\[aq]s use of lower latency memory. +nonuniform memory architecture (NUMA) by increasing the application\(aqs +use of lower latency memory. The default value for this option depends on the garbage collector. .TP \f[CR]\-XX:+UseParallelGC\f[R] @@ -3632,14 +3492,13 @@ as the throughput collector) to improve the performance of your application by leveraging multiple processors. .RS -.PP By default, this option is disabled and the default collector is used. .RE .TP \f[CR]\-XX:+UseSerialGC\f[R] Enables the use of the serial garbage collector. This is generally the best choice for small and simple applications that -don\[aq]t require any special functionality from garbage collection. +don\(aqt require any special functionality from garbage collection. By default, this option is disabled and the default collector is used. .TP \f[CR]\-XX:+UseStringDeduplication\f[R] @@ -3648,7 +3507,6 @@ To use this option, you must enable the garbage\-first (G1) garbage collector. .RS -.PP String deduplication reduces the memory footprint of \f[CR]String\f[R] objects on the Java heap by taking advantage of the fact that many \f[CR]String\f[R] objects are identical. @@ -3749,7 +3607,6 @@ When \f[CR]\-XX:ShenandoahGCMode\f[R] is \f[CR]generational\f[R], the only supported option is the default, \f[CR]adaptive\f[R]. .RS -.PP Possible heuristics are the following: .TP \f[CR]adaptive\f[R] @@ -3765,8 +3622,8 @@ .SH DEPRECATED JAVA OPTIONS These \f[CR]java\f[R] options are deprecated and might be removed in a future JDK release. -They\[aq]re still accepted and acted upon, but a warning is issued when -they\[aq]re used. +They\(aqre still accepted and acted upon, but a warning is issued when +they\(aqre used. .TP \f[CR]\-Xloggc:\f[R]\f[I]filename\f[R] Sets the file to which verbose GC events information should be @@ -3777,9 +3634,7 @@ \f[CR]\-Xlog:gc:\f[R]\f[I]filename\f[R]. See Enable Logging with the JVM Unified Logging Framework. .RS -.PP Example: -.PP \f[CR]\-Xlog:gc:garbage\-collection.log\f[R] .RE .TP @@ -3789,7 +3644,7 @@ Since JDK 8u40 this option has not been required to use JFR. .SH OBSOLETE JAVA OPTIONS These \f[CR]java\f[R] options are still accepted but ignored, and a -warning is issued when they\[aq]re used. +warning is issued when they\(aqre used. .TP \f[CR]\-\-illegal\-access=\f[R]\f[I]parameter\f[R] Controlled \f[I]relaxed strong encapsulation\f[R], as defined in @@ -3841,9 +3696,8 @@ Options related to RTM are available only on x86 CPUs that support Transactional Synchronization Extensions (TSX). .RS -.PP -RTM is part of Intel\[aq]s TSX, which is an x86 instruction set -extension and facilitates the creation of multithreaded applications. +RTM is part of Intel\(aqs TSX, which is an x86 instruction set extension +and facilitates the creation of multithreaded applications. RTM introduces the new instructions \f[CR]XBEGIN\f[R], \f[CR]XABORT\f[R], \f[CR]XEND\f[R], and \f[CR]XTEST\f[R]. The \f[CR]XBEGIN\f[R] and \f[CR]XEND\f[R] instructions enclose a set of @@ -3854,19 +3708,17 @@ The \f[CR]XABORT\f[R] instruction can be used to explicitly abort a transaction and the \f[CR]XTEST\f[R] instruction checks if a set of instructions is being run in a transaction. -.PP A lock on a transaction is inflated when another thread tries to access -the same transaction, thereby blocking the thread that didn\[aq]t +the same transaction, thereby blocking the thread that didn\(aqt originally request access to the transaction. RTM requires that a fallback set of operations be specified in case a transaction aborts or fails. -An RTM lock is a lock that has been delegated to the TSX\[aq]s system. -.PP +An RTM lock is a lock that has been delegated to the TSX\(aqs system. RTM improves performance for highly contended locks with low conflict in a critical region (which is code that must not be accessed by more than one thread concurrently). RTM also improves the performance of coarse\-grain locking, which -typically doesn\[aq]t perform well in multithreaded applications. +typically doesn\(aqt perform well in multithreaded applications. (Coarse\-grain locking is the strategy of holding locks for long periods to minimize the overhead of taking and releasing locks, while fine\-grained locking is the strategy of trying to achieve maximum @@ -3885,159 +3737,158 @@ .PP For the lists and descriptions of options removed in previous releases see the \f[I]Removed Java Options\f[R] section in: -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 24\f[R] [https://docs.oracle.com/en/java/javase/24/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 23\f[R] [https://docs.oracle.com/en/java/javase/23/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 22\f[R] [https://docs.oracle.com/en/java/javase/22/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 21\f[R] [https://docs.oracle.com/en/java/javase/21/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 20\f[R] [https://docs.oracle.com/en/java/javase/20/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 19\f[R] [https://docs.oracle.com/en/java/javase/19/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 18\f[R] [https://docs.oracle.com/en/java/javase/18/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 17\f[R] [https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 16\f[R] [https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 15\f[R] [https://docs.oracle.com/en/java/javase/15/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 14\f[R] [https://docs.oracle.com/en/java/javase/14/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]The \f[CB]java\f[B] Command, Release 13\f[R] [https://docs.oracle.com/en/java/javase/13/docs/specs/man/java.html] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Java Platform, Standard Edition Tools Reference, Release 12\f[R] [https://docs.oracle.com/en/java/javase/12/tools/java.html#GUID\-3B1CE181\-CD30\-4178\-9602\-230B800D4FAE] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Java Platform, Standard Edition Tools Reference, Release 11\f[R] [https://docs.oracle.com/en/java/javase/11/tools/java.html#GUID\-741FC470\-AA3E\-494A\-8D2B\-1B1FE4A990D1] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Java Platform, Standard Edition Tools Reference, Release 10\f[R] [https://docs.oracle.com/javase/10/tools/java.htm#JSWOR624] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Java Platform, Standard Edition Tools Reference, Release 9\f[R] [https://docs.oracle.com/javase/9/tools/java.htm#JSWOR624] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Java Platform, Standard Edition Tools Reference, Release 8 for Oracle JDK on Windows\f[R] [https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html#BGBCIEFC] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Java Platform, Standard Edition Tools Reference, Release 8 for Oracle JDK on Solaris, Linux, and macOS\f[R] [https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BGBCIEFC] .SH JAVA COMMAND\-LINE ARGUMENT FILES You can shorten or simplify the \f[CR]java\f[R] command by using -\f[CR]\[at]\f[R] argument files to specify one or more text files that +\f[CR]\(at\f[R] argument files to specify one or more text files that contain arguments, such as options and class names, which are passed to the \f[CR]java\f[R] command. -This let\[aq]s you to create \f[CR]java\f[R] commands of any length on +This let\(aqs you to create \f[CR]java\f[R] commands of any length on any operating system. .PP -In the command line, use the at sign (\f[CR]\[at]\f[R]) prefix to +In the command line, use the at sign (\f[CR]\(at\f[R]) prefix to identify an argument file that contains \f[CR]java\f[R] options and class names. When the \f[CR]java\f[R] command encounters a file beginning with the at -sign (\f[CR]\[at]\f[R]), it expands the contents of that file into an +sign (\f[CR]\(at\f[R]), it expands the contents of that file into an argument list just as they would be specified on the command line. .PP The \f[CR]java\f[R] launcher expands the argument file contents until it -encounters the \f[CR]\-\-disable\-\[at]files\f[R] option. -You can use the \f[CR]\-\-disable\-\[at]files\f[R] option anywhere on -the command line, including in an argument file, to stop -\f[CR]\[at]\f[R] argument files expansion. +encounters the \f[CR]\-\-disable\-\(atfiles\f[R] option. +You can use the \f[CR]\-\-disable\-\(atfiles\f[R] option anywhere on the +command line, including in an argument file, to stop \f[CR]\(at\f[R] +argument files expansion. .PP The following items describe the syntax of \f[CR]java\f[R] argument files: -.IP \[bu] 2 +.IP \(bu 2 The argument file must contain only ASCII characters or characters in -system default encoding that\[aq]s ASCII friendly, such as UTF\-8. -.IP \[bu] 2 +system default encoding that\(aqs ASCII friendly, such as UTF\-8. +.IP \(bu 2 The argument file size must not exceed MAXINT (2,147,483,647) bytes. -.IP \[bu] 2 -The launcher doesn\[aq]t expand wildcards that are present within an +.IP \(bu 2 +The launcher doesn\(aqt expand wildcards that are present within an argument file. That means an asterisk (\f[CR]*\f[R]) is passed on as\-is to the starting VM. For example \f[CR]*.java\f[R] stays \f[CR]*.java\f[R] and is not expanded to \f[CR]Foo.java Bar.java ...\f[R], as would happen with some command line shells. -.IP \[bu] 2 +.IP \(bu 2 Use white space or new line characters to separate arguments included in the file. -.IP \[bu] 2 -White space includes a white space character, \f[CR]\[rs]t\f[R], -\f[CR]\[rs]n\f[R], \f[CR]\[rs]r\f[R], and \f[CR]\[rs]f\f[R]. +.IP \(bu 2 +White space includes a white space character, \f[CR]\(rst\f[R], +\f[CR]\(rsn\f[R], \f[CR]\(rsr\f[R], and \f[CR]\(rsf\f[R]. .RS 2 .PP For example, it is possible to have a path with a space, such as -\f[CR]c:\[rs]Program Files\f[R] that can be specified as either -\f[CR]\[dq]c:\[rs]\[rs]Program Files\[dq]\f[R] or, to avoid an escape, -\f[CR]c:\[rs]Program\[dq] \[dq]Files\f[R]. +\f[CR]c:\(rsProgram Files\f[R] that can be specified as either +\f[CR]\(dqc:\(rs\(rsProgram Files\(dq\f[R] or, to avoid an escape, +\f[CR]c:\(rsProgram\(dq \(dqFiles\f[R]. .RE -.IP \[bu] 2 +.IP \(bu 2 Any option that contains spaces, such as a path component, must be -within quotation marks using quotation (\[aq]\[dq]\[aq]) characters in -its entirety. -.IP \[bu] 2 +within quotation marks using quotation (\(aq\(dq\(aq) characters in its +entirety. +.IP \(bu 2 A string within quotation marks may contain the characters -\f[CR]\[rs]n\f[R], \f[CR]\[rs]r\f[R], \f[CR]\[rs]t\f[R], and -\f[CR]\[rs]f\f[R]. +\f[CR]\(rsn\f[R], \f[CR]\(rsr\f[R], \f[CR]\(rst\f[R], and +\f[CR]\(rsf\f[R]. They are converted to their respective ASCII codes. -.IP \[bu] 2 +.IP \(bu 2 If a file name contains embedded spaces, then put the whole file name in double quotation marks. -.IP \[bu] 2 +.IP \(bu 2 File names in an argument file are relative to the current directory, not to the location of the argument file. -.IP \[bu] 2 +.IP \(bu 2 Use the number sign \f[CR]#\f[R] in the argument file to identify comments. All characters following the \f[CR]#\f[R] are ignored until the end of line. -.IP \[bu] 2 -Additional at sign \f[CR]\[at]\f[R] prefixes to \f[CR]\[at]\f[R] -prefixed options act as an escape, (the first \f[CR]\[at]\f[R] is -removed and the rest of the arguments are presented to the launcher -literally). -.IP \[bu] 2 +.IP \(bu 2 +Additional at sign \f[CR]\(at\f[R] prefixes to \f[CR]\(at\f[R] prefixed +options act as an escape, (the first \f[CR]\(at\f[R] is removed and the +rest of the arguments are presented to the launcher literally). +.IP \(bu 2 Lines may be continued using the continuation character -(\f[CR]\[rs]\f[R]) at the end\-of\-line. +(\f[CR]\(rs\f[R]) at the end\-of\-line. The two lines are concatenated with the leading white spaces trimmed. To prevent trimming the leading white spaces, a continuation character -(\f[CR]\[rs]\f[R]) may be placed at the first column. -.IP \[bu] 2 -Because backslash (\[rs]) is an escape character, a backslash character +(\f[CR]\(rs\f[R]) may be placed at the first column. +.IP \(bu 2 +Because backslash (\(rs) is an escape character, a backslash character must be escaped with another backslash character. -.IP \[bu] 2 +.IP \(bu 2 Partial quote is allowed and is closed by an end\-of\-file. -.IP \[bu] 2 -An open quote stops at end\-of\-line unless \f[CR]\[rs]\f[R] is the last +.IP \(bu 2 +An open quote stops at end\-of\-line unless \f[CR]\(rs\f[R] is the last character, which then joins the next line by removing all leading white space characters. -.IP \[bu] 2 -Use of the at sign (\f[CR]\[at]\f[R]) to recursively interpret files -isn\[aq]t supported. +.IP \(bu 2 +Use of the at sign (\f[CR]\(at\f[R]) to recursively interpret files +isn\(aqt supported. .SS Example of Open or Partial Quotes in an Argument File In the argument file, .IP .EX -\-cp \[dq]lib/ +\-cp \(dqlib/ cool/ app/ jars @@ -4052,20 +3903,20 @@ To output the following: .RS .PP -\f[CR]\-cp c:\[rs]Program Files (x86)\[rs]Java\[rs]jre\[rs]lib\[rs]ext;c:\[rs]Program Files\[rs]Java\[rs]jre9\[rs]lib\[rs]ext\f[R] +\f[CR]\-cp c:\(rsProgram Files (x86)\(rsJava\(rsjre\(rslib\(rsext;c:\(rsProgram Files\(rsJava\(rsjre9\(rslib\(rsext\f[R] .RE .PP The backslash character must be specified in the argument file as: .RS .PP -\f[CR]\-cp \[dq]c:\[rs]\[rs]Program Files (x86)\[rs]\[rs]Java\[rs]\[rs]jre\[rs]\[rs]lib\[rs]\[rs]ext;c:\[rs]\[rs]Program Files\[rs]\[rs]Java\[rs]\[rs]jre9\[rs]\[rs]lib\[rs]\[rs]ext\[dq]\f[R] +\f[CR]\-cp \(dqc:\(rs\(rsProgram Files (x86)\(rs\(rsJava\(rs\(rsjre\(rs\(rslib\(rs\(rsext;c:\(rs\(rsProgram Files\(rs\(rsJava\(rs\(rsjre9\(rs\(rslib\(rs\(rsext\(dq\f[R] .RE .SS Example of an EOL Escape Used to Force Concatenation of Lines in an Argument File In the argument file, .IP .EX -\-cp \[dq]/lib/cool app/jars:\[rs] - /lib/another app/jars\[dq] +\-cp \(dq/lib/cool app/jars:\(rs + /lib/another app/jars\(dq .EE .PP This is interpreted as: @@ -4077,8 +3928,8 @@ In the argument file, .IP .EX -\-cp \[dq]/lib/cool\[rs] -\[rs]app/jars\[dq] +\-cp \(dq/lib/cool\(rs +\(rsapp/jars\(dq .EE .PP This is interpreted as: @@ -4089,10 +3940,10 @@ the following example, to hold all required \f[CR]java\f[R] arguments: .RS .PP -\f[CR]java \[at]myargumentfile\f[R] +\f[CR]java \(atmyargumentfile\f[R] .RE .SS Examples of Using Argument Files with Paths -You can include relative paths in argument files; however, they\[aq]re +You can include relative paths in argument files; however, they\(aqre relative to the current working directory and not to the paths of the argument files themselves. In the following example, \f[CR]path1/options\f[R] and @@ -4101,17 +3952,17 @@ directory and not to the argument files: .RS .PP -\f[CR]java \[at]path1/options \[at]path2/classes\f[R] +\f[CR]java \(atpath1/options \(atpath2/classes\f[R] .RE .SH CODE HEAP STATE ANALYTICS .SS Overview There are occasions when having insight into the current state of the JVM code heap would be helpful to answer questions such as: -.IP \[bu] 2 +.IP \(bu 2 Why was the JIT turned off and then on again and again? -.IP \[bu] 2 +.IP \(bu 2 Where has all the code heap space gone? -.IP \[bu] 2 +.IP \(bu 2 Why is the method sweeper not working effectively? .PP To provide this insight, a code heap state analytics feature has been @@ -4121,7 +3972,7 @@ information that is believed to be useful or important. The second part consists of several independent steps that print the collected information with an emphasis on different aspects of the data. -Data collection and printing are done on an \[dq]on request\[dq] basis. +Data collection and printing are done on an \(dqon request\(dq basis. .SS Syntax Requests for real\-time, on\-the\-fly analysis can be issued with the following command: @@ -4138,7 +3989,7 @@ \f[CR]\-Xlog:codecache=Trace\f[R] .RE .PP -To see the code heap state when a \[dq]CodeCache full\[dq] condition +To see the code heap state when a \(dqCodeCache full\(dq condition exists, start the VM with the command line option: .RS .PP @@ -4216,13 +4067,11 @@ Multiple \f[CR]\-Xlog\f[R] arguments for the same output override each other in their given order. .RS -.PP The \f[I]option\f[R] is set as: .RS .PP [\f[I]tag\-selection\f[R]][\f[CR]:\f[R][\f[I]output\f[R]][\f[CR]:\f[R][\f[I]decorators\f[R]][\f[CR]:\f[R]\f[I]output\-options\f[R]]]] .RE -.PP Omitting the \f[I]tag\-selection\f[R] defaults to a tag\-set of \f[CR]all\f[R] and a level of \f[CR]info\f[R]. .RS @@ -4230,7 +4079,6 @@ \f[I]tag\f[R][\f[CR]+\f[R]...] \f[CR]all\f[R] .RE -.PP The \f[CR]all\f[R] tag is a meta tag consisting of all tag\-sets available. The asterisk \f[CR]*\f[R] in a tag set definition denotes a wildcard tag @@ -4239,7 +4087,6 @@ least\f[R] the specified tags. Without the wildcard, only exact matches of the specified tag sets are selected. -.PP \f[I]output\-options\f[R] is .RS .PP @@ -4247,11 +4094,10 @@ size with optional K, M or G suffix\f[R] \f[CR]foldmultilines=\f[R]\f[I]\f[R] .RE -.PP When \f[CR]foldmultilines\f[R] is true, a log event that consists of multiple lines will be folded into a single line by replacing newline -characters with the sequence \f[CR]\[aq]\[rs]\[aq]\f[R] and -\f[CR]\[aq]n\[aq]\f[R] in the output. +characters with the sequence \f[CR]\(aq\(rs\(aq\f[R] and +\f[CR]\(aqn\(aq\f[R] in the output. Existing single backslash characters will also be replaced with a sequence of two backslashes so that the conversion can be reversed. This option is safe to use with UTF\-8 character encodings, but other @@ -4290,17 +4136,17 @@ Xlog\f[R]. .PP \f[B]Available log levels:\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]off\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]trace\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]debug\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]info\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]warning\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]error\f[R] .PP \f[B]Available log tags:\f[R] @@ -4313,27 +4159,27 @@ combinations. .SS \-Xlog Output The \f[CR]\-Xlog\f[R] option supports the following types of outputs: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]stdout\f[R] \-\-\- Sends output to stdout -.IP \[bu] 2 +.IP \(bu 2 \f[CR]stderr\f[R] \-\-\- Sends output to stderr -.IP \[bu] 2 +.IP \(bu 2 \f[CR]file=\f[R]\f[I]filename\f[R] \-\-\- Sends output to text file(s). .PP When using \f[CR]file=\f[R]\f[I]filename\f[R], specifying \f[CR]%p\f[R], \f[CR]%t\f[R] and/or \f[CR]%hn\f[R] in the file name expands to the -JVM\[aq]s PID, startup timestamp and host name, respectively. +JVM\(aqs PID, startup timestamp and host name, respectively. You can also configure text files to handle file rotation based on file size and a number of files to rotate. For example, to rotate the log file every 10 MB and keep 5 files in rotation, specify the options \f[CR]filesize=10M, filecount=5\f[R]. -The target size of the files isn\[aq]t guaranteed to be exact, it\[aq]s +The target size of the files isn\(aqt guaranteed to be exact, it\(aqs just an approximate value. Files are rotated by default with up to 5 rotated files of target size 20 MB, unless configured otherwise. -Specifying \f[CR]filecount=0\f[R] means that the log file shouldn\[aq]t +Specifying \f[CR]filecount=0\f[R] means that the log file shouldn\(aqt be rotated. -There\[aq]s a possibility of the pre\-existing log file getting +There\(aqs a possibility of the pre\-existing log file getting overwritten. .SS \-Xlog Output Mode By default logging messages are output synchronously \- each log message @@ -4341,7 +4187,10 @@ You can instead use asynchronous logging mode by specifying: .TP \f[CR]\-Xlog:async[:[stall|drop]]\f[R] +.IP +.EX Write all logging asynchronously. +.EE .PP In asynchronous logging mode, log sites enqueue all logging messages to an intermediate buffer and a standalone thread is responsible for @@ -4516,7 +4365,7 @@ T}@T{ Note that \f[CR]PrintGCApplicationConcurrentTime\f[R] and \f[CR]PrintGCApplicationStoppedTime\f[R] are logged on the same tag and -aren\[aq]t separated in the new logging. +aren\(aqt separated in the new logging. T} T{ \f[CR]PrintGCApplicationStoppedTime\f[R] @@ -4587,9 +4436,9 @@ T{ \f[CR]PrintStringDeduplicationStatistics\f[R] T}@T{ -\[ga]\-Xlog:gc+stringdedup*=debug +\(ga\-Xlog:gc+stringdedup*=debug T}@T{ -\[ga] Not Applicable +\(ga Not Applicable T} T{ \f[CR]PrintTenuringDistribution\f[R] @@ -4758,13 +4607,13 @@ \f[CR]safepoint\f[R] tags, both using the \f[CR]info\f[R] level, to \f[CR]stdout\f[R], with default decorations. Messages tagged with both \f[CR]gc\f[R] and \f[CR]safepoint\f[R] -won\[aq]t be logged. +won\(aqt be logged. .TP \f[CR]\-Xlog:gc+ref=debug\f[R] Logs messages tagged with both \f[CR]gc\f[R] and \f[CR]ref\f[R] tags, using the \f[CR]debug\f[R] level to \f[CR]stdout\f[R], with default decorations. -Messages tagged only with one of the two tags won\[aq]t be logged. +Messages tagged only with one of the two tags won\(aqt be logged. .TP \f[CR]\-Xlog:gc=debug:file=gc.txt:none\f[R] Logs messages tagged with the \f[CR]gc\f[R] tag using the @@ -4779,14 +4628,13 @@ MB with the base name \f[CR]gctrace.txt\f[R] and uses decorations \f[CR]uptimemillis\f[R] and \f[CR]pid\f[R]. .RS -.PP The default configuration for all other messages at level \f[CR]warning\f[R] is still in effect. .RE .TP \f[CR]\-Xlog:gc::uptime,tid\f[R] Logs messages tagged with the \f[CR]gc\f[R] tag using the default -\[aq]info\[aq] level to default the output \f[CR]stdout\f[R] and uses +\(aqinfo\(aq level to default the output \f[CR]stdout\f[R] and uses decorations \f[CR]uptime\f[R] and \f[CR]tid\f[R]. The default configuration for all other messages at level \f[CR]warning\f[R] is still in effect. @@ -4796,13 +4644,13 @@ \f[CR]info\f[R] level, but turns off logging of messages tagged with \f[CR]safepoint\f[R]. Messages tagged with both \f[CR]gc\f[R] and \f[CR]safepoint\f[R] -won\[aq]t be logged. +won\(aqt be logged. .TP \f[CR]\-Xlog:disable \-Xlog:safepoint=trace:safepointtrace.txt\f[R] Turns off all logging, including warnings and errors, and then enables messages tagged with \f[CR]safepoint\f[R]using \f[CR]trace\f[R]level to the file \f[CR]safepointtrace.txt\f[R]. -The default configuration doesn\[aq]t apply, because the command line +The default configuration doesn\(aqt apply, because the command line started with \f[CR]\-Xlog:disable\f[R]. .SS Complex \-Xlog Usage Examples The following describes a few complex examples of using the @@ -4820,8 +4668,7 @@ \f[CR]metatrace.txt\f[R] but turns off all messages tagged with \f[CR]class\f[R]. Messages tagged with \f[CR]gc\f[R], \f[CR]meta\f[R], and -\f[CR]class\f[R] aren\[aq]t be logged as \f[CR]class*\f[R] is set to -off. +\f[CR]class\f[R] aren\(aqt be logged as \f[CR]class*\f[R] is set to off. The default configuration for all other messages at level \f[CR]warning\f[R] is in effect except for those that include \f[CR]class\f[R]. @@ -4845,7 +4692,7 @@ flags for validation and, if the input value is invalid or out\-of\-range, then an appropriate error message is displayed. .PP -Whether they\[aq]re set ergonomically, in a command line, by an input +Whether they\(aqre set ergonomically, in a command line, by an input tool, or through the APIs (for example, classes contained in the package \f[CR]java.lang.management\f[R]) the values provided to all Java Virtual Machine (JVM) command\-line flags are validated. @@ -4853,7 +4700,7 @@ Virtual Machine Garbage Collection Tuning Guide. .PP Range and constraints are validated either when all flags have their -values set during JVM initialization or a flag\[aq]s value is changed +values set during JVM initialization or a flag\(aqs value is changed during runtime (for example using the \f[CR]jcmd\f[R] tool). The JVM is terminated if a value violates either the range or constraint check and an appropriate error message is printed on the error stream. @@ -4864,7 +4711,7 @@ .EX java \-XX:AllocatePrefetchStyle=5 \-version intx AllocatePrefetchStyle=5 is outside the allowed range [ 0 ... 3 ] -Improperly specified VM option \[aq]AllocatePrefetchStyle=5\[aq] +Improperly specified VM option \(aqAllocatePrefetchStyle=5\(aq Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. .EE @@ -4882,8 +4729,8 @@ intx ThreadStackSize [ 0 ... 9007199254740987 ] {pd product} .EE .PP -For the flags that don\[aq]t have the range specified, the values -aren\[aq]t displayed in the print out. +For the flags that don\(aqt have the range specified, the values +aren\(aqt displayed in the print out. For example: .IP .EX @@ -4891,8 +4738,8 @@ .EE .PP This helps to identify the flags that need to be implemented. -The automatic testing framework can skip those flags that don\[aq]t have -values and aren\[aq]t implemented. +The automatic testing framework can skip those flags that don\(aqt have +values and aren\(aqt implemented. .SH LARGE PAGES You use large pages, also known as huge pages, as memory pages that are significantly larger than the standard memory page size (which varies @@ -4932,7 +4779,7 @@ Hugepagesize: 2048 kB .EE .PP -If the output contains items prefixed with \[dq]Huge\[dq], then your +If the output contains items prefixed with \(dqHuge\(dq, then your system supports large pages. The values may vary depending on environment. The \f[CR]Hugepagesize\f[R] field shows the default large page size in @@ -4972,9 +4819,9 @@ If you configure the OS kernel parameters to enable use of large pages, the Java processes may allocate large pages for the Java heap as well as other internal areas, for example: -.IP \[bu] 2 +.IP \(bu 2 Code cache -.IP \[bu] 2 +.IP \(bu 2 Marking bitmaps .PP Consequently, if you configure the \f[CR]nr_hugepages\f[R] parameter to @@ -4996,9 +4843,9 @@ .IP "4." 3 Reboot your system. .PP -Note that these steps are required even if it\[aq]s the administrator -who\[aq]s running the application, because administrators by default -don\[aq]t have the privilege to lock pages in memory. +Note that these steps are required even if it\(aqs the administrator +who\(aqs running the application, because administrators by default +don\(aqt have the privilege to lock pages in memory. .SH APPLICATION CLASS DATA SHARING Application Class Data Sharing (AppCDS) stores classes used by your applications in an archive file. @@ -5008,10 +4855,10 @@ In addition, AppCDS can reduce the runtime memory footprint by sharing parts of these classes across multiple processes. .PP -Classes in the CDS archive are stored in an optimized format that\[aq]s +Classes in the CDS archive are stored in an optimized format that\(aqs about 2 to 5 times larger than classes stored in JAR files or the JDK runtime image. -Therefore, it\[aq]s a good idea to archive only those classes that are +Therefore, it\(aqs a good idea to archive only those classes that are actually used by your application. These usually are just a small portion of all available classes. For example, your application may use only a few APIs provided by a @@ -5020,7 +4867,7 @@ By default, in most JDK distributions, unless \f[CR]\-Xshare:off\f[R] is specified, the JVM starts up with a default CDS archive, which is usually located in \f[CR]JAVA_HOME/lib/server/classes.jsa\f[R] (or -\f[CR]JAVA_HOME\[rs]bin\[rs]server\[rs]classes.jsa\f[R] on Windows). +\f[CR]JAVA_HOME\(rsbin\(rsserver\(rsclasses.jsa\f[R] on Windows). This archive contains about 1300 core library classes that are used by most applications. .PP @@ -5031,16 +4878,16 @@ .PP \f[CR]\-XX:SharedArchiveFile=:\f[R] .RE -.IP \[bu] 2 +.IP \(bu 2 The \f[CR]\f[R] overrides the default CDS archive. -.IP \[bu] 2 +.IP \(bu 2 The \f[CR]\f[R] provides additional classes that can be loaded on top of those in the \f[CR]\f[R]. -.IP \[bu] 2 +.IP \(bu 2 On Windows, the above path delimiter \f[CR]:\f[R] should be replaced with \f[CR];\f[R] .PP -The names \[dq]static\[dq] and \[dq]dynamic\[dq] are used for historical +The names \(dqstatic\(dq and \(dqdynamic\(dq are used for historical reasons. The dynamic archive, while still useful, supports fewer optimizations than available for the static CDS archive. @@ -5064,16 +4911,16 @@ .RE .SS Manually Creating CDS Archives CDS archives can be created manually using several methods: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-Xshare:dump\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-XX:ArchiveClassesAtExit\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jcmd VM.cds\f[R] .PP -One common operation in all these methods is a \[dq]trial run\[dq], -where you run the application once to determine the classes that should -be stored in the archive. +One common operation in all these methods is a \(dqtrial run\(dq, where +you run the application once to determine the classes that should be +stored in the archive. .SS Creating a Static CDS Archive File with \-Xshare:dump The following steps create a static CDS archive file that contains all the classes used by the \f[CR]test.Hello\f[R] application. @@ -5138,10 +4985,10 @@ This will speed up the archive creation. .SS Creating a Dynamic CDS Archive File with \-XX:ArchiveClassesAtExit Advantages of dynamic CDS archives are: -.IP \[bu] 2 -They usually use less disk space, since they don\[aq]t need to store the +.IP \(bu 2 +They usually use less disk space, since they don\(aqt need to store the classes that are already in the static archive. -.IP \[bu] 2 +.IP \(bu 2 They are created with one fewer step than the comparable static archive. .PP The following steps create a dynamic CDS archive file that contains the @@ -5171,7 +5018,7 @@ the \f[CR]test.Hello\f[R] application is using the class contained in the \f[CR]hello.jsa\f[R] shared archive. .PP -It\[aq]s also possible to create a dynamic CDS archive with a +It\(aqs also possible to create a dynamic CDS archive with a non\-default static CDS archive. E.g., .RS @@ -5194,9 +5041,9 @@ \f[CR]java \-XX:SharedArchiveFile=hello.jsa \-cp hello.jar Hello\f[R] .RE .SS Creating CDS Archive Files with jcmd -The previous two sections require you to modify the application\[aq]s +The previous two sections require you to modify the application\(aqs start\-up script in order to create a CDS archive. -Sometimes this could be difficult, for example, if the application\[aq]s +Sometimes this could be difficult, for example, if the application\(aqs class path is set up by complex routines. .PP The \f[CR]jcmd VM.cds\f[R] command provides a less intrusive way for @@ -5214,8 +5061,8 @@ .RE .PP To use the resulting archive file in a subsequent run of the application -without modifying the application\[aq]s start\-up script, you can use -the following technique: +without modifying the application\(aqs start\-up script, you can use the +following technique: .RS .PP \f[CR]env JAVA_TOOL_OPTIONS=\-XX:SharedArchiveFile=my_static_archive.jsa bash app_start.sh\f[R] @@ -5233,8 +5080,8 @@ \f[CR]\-XX:+AutoCreateSharedArchive\f[R] is a more convenient way of creating/using CDS archives. Unlike the methods of manual CDS archive creation described in the -previous section, with \f[CR]\-XX:+AutoCreateSharedArchive\f[R], -it\[aq]s no longer necessary to have a separate trial run. +previous section, with \f[CR]\-XX:+AutoCreateSharedArchive\f[R], it\(aqs +no longer necessary to have a separate trial run. Instead, you can always run the application with the same command\-line and enjoy the benefits of CDS automatically. .RS @@ -5265,18 +5112,18 @@ If you intend to use this feature with an existing archive, you should make sure that the archive is created by at least version 19 of the JDK. .SS Restrictions on Class Path and Module Path -.IP \[bu] 2 +.IP \(bu 2 Neither the class path (\f[CR]\-classpath\f[R] and \f[CR]\-Xbootclasspath/a\f[R]) nor the module path (\f[CR]\-\-module\-path\f[R]) can contain non\-empty directories. -.IP \[bu] 2 +.IP \(bu 2 Only modular JAR files are supported in \f[CR]\-\-module\-path\f[R]. Exploded modules are not supported. -.IP \[bu] 2 +.IP \(bu 2 The class path used at archive creation time must be the same as (or a prefix of) the class path used at run time. -(There\[aq]s no such requirement for the module path.) -.IP \[bu] 2 +(There\(aqs no such requirement for the module path.) +.IP \(bu 2 The CDS archive cannot be loaded if any JAR files in the class path or module path are modified after the archive is generated. .SS Module related options @@ -5289,7 +5136,7 @@ Otherwise, if there is a mismatch of any of these options, the CDS archive may be partially or completely disabled, leading to lower performance. -.IP \[bu] 2 +.IP \(bu 2 If the \f[CR]AOTClassLinking\f[R] option (see below) \f[I]was\f[R] enabled during CDS archive creation, the CDS archive cannot be used, and the following error message is printed: @@ -5297,14 +5144,14 @@ .PP \f[CR]CDS archive has aot\-linked classes. It cannot be used when archived full module graph is not used\f[R] .RE -.IP \[bu] 2 +.IP \(bu 2 If the \f[CR]AOTClassLinking\f[R] option \f[I]was not\f[R] enabled during CDS archive creation, the CDS archive can be used, but the -\[dq]archived module graph\[dq] feature will be disabled. +\(dqarchived module graph\(dq feature will be disabled. This can lead to increased start\-up time. .PP To diagnose problems with the AOT options, you can add -\f[CR]\-Xlog:aot\f[R] to the application\[aq]s VM arguments. +\f[CR]\-Xlog:aot\f[R] to the application\(aqs VM arguments. For example, if \f[CR]\-\-add\-modules jdk.jconsole\f[R] was specified during archive creation and \f[CR]\-\-add\-modules jdk.incubator.vector\f[R] is specified during @@ -5337,26 +5184,26 @@ such as execution profiles and compiled methods. .PP An AOT cache is specific to a combination of the following: -.IP \[bu] 2 +.IP \(bu 2 A particular application (as expressed by \f[CR]\-classpath\f[R], \f[CR]\-jar\f[R], or \f[CR]\-\-module\-path\f[R].) -.IP \[bu] 2 +.IP \(bu 2 A particular JDK release. -.IP \[bu] 2 +.IP \(bu 2 A particular OS and CPU architecture. .PP If any of the above changes, you must recreate the AOT cache. .PP The deployment of the AOT cache is divided into three phases: -.IP \[bu] 2 +.IP \(bu 2 \f[B]Training:\f[R] We execute the application with a representative work\-load to gather statistical data that tell us what artifacts should be included into the AOT cache. The data are saved in an \f[I]AOT Configuration\f[R] file. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Assembly:\f[R] We use the AOT Configuration file to produce an AOT cache. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Production:\f[R] We execute the application with the AOT cache for better start\-up and warm\-up performance. .PP @@ -5367,7 +5214,6 @@ The standard extension for \f[I]cachefile\f[R] is \f[CR].aot\f[R]. This option cannot be used together with \f[CR]\-XX:AOTCacheOutput\f[R]. .RS -.PP This option is compatible with \f[CR]AOTMode\f[R] settings of \f[CR]on\f[R], \f[CR]create\f[R], or \f[CR]auto\f[R] (the default). The \f[I]cachefile\f[R] is read in AOT modes \f[CR]on\f[R] and @@ -5382,7 +5228,6 @@ The standard extension for \f[I]cachefile\f[R] is \f[CR].aot\f[R]. This option cannot be used together with \f[CR]\-XX:AOTCache\f[R]. .RS -.PP This option is compatible with \f[CR]AOTMode\f[R] settings of \f[CR]record\f[R], \f[CR]create\f[R], or \f[CR]auto\f[R] (the default). .RE @@ -5393,7 +5238,6 @@ The standard extension for \f[I]configfile\f[R] is \f[CR].aotconfig\f[R]. .RS -.PP This option is compatible with \f[CR]AOTMode\f[R] settings of \f[CR]record\f[R], \f[CR]create\f[R], or \f[CR]auto\f[R] (the default). The \f[I]configfile\f[R] is read by AOT mode \f[CR]create\f[R], and @@ -5406,27 +5250,27 @@ Specifies the AOT Mode for this run. \f[I]mode\f[R] must be one of the following: \f[CR]auto\f[R], \f[CR]off\f[R], \f[CR]record\f[R], \f[CR]create\f[R], or \f[CR]on\f[R]. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]auto\f[R]: This AOT mode is the default, and takes effect if no \f[CR]\-XX:AOTMode\f[R] option is present. It automatically sets the AOT mode to \f[CR]record\f[R], \f[CR]on\f[R], or \f[CR]off\f[R], as follows: .RS 2 -.IP \[bu] 2 +.IP \(bu 2 If \f[CR]\-XX:AOTCacheOutput=\f[R]\f[I]cachefile\f[R] is specified, the AOT mode is changed to \f[CR]record\f[R] (a training run, with a subsequent \f[CR]create\f[R] operation). -.IP \[bu] 2 +.IP \(bu 2 Otherwise, if an AOT cache can be loaded, the AOT mode is changed to \f[CR]on\f[R] (a production run). -.IP \[bu] 2 +.IP \(bu 2 Otherwise, the AOT mode is changed to \f[CR]off\f[R] (a production run with no AOT cache). .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]off\f[R]: No AOT cache is used. Other AOT command line options are ignored. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]record\f[R]: Execute the application in the training phase. At least one of \f[CR]\-XX:AOTConfiguration=\f[R]\f[I]configfile\f[R] and/or \f[CR]\-XX:AOTCacheOutput=\f[R]\f[I]cachefile\f[R] must be @@ -5436,7 +5280,7 @@ \f[I]configfile\f[R]. If \f[CR]\-XX:AOTConfiguration=\f[R]\f[I]configfile\f[R] is not specified, the JVM uses a temporary file name, which may be the string -\f[CR]AOTCacheOutput+\[dq].config\[dq]\f[R], or else a fresh +\f[CR]AOTCacheOutput+\(dq.config\(dq\f[R], or else a fresh implementation\-dependent temporary file name. If \f[CR]\-XX:AOTCacheOutput=\f[R]\f[I]cachefile\f[R] is specified, a second JVM process is launched to perform the Assembly phase to write @@ -5449,13 +5293,13 @@ \f[B]defined by JVMTI\f[R] [https://docs.oracle.com/en/java/javase/24/docs/specs/jvmti.html#tooloptions]. .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]create\f[R]: Perform the Assembly phase. \f[CR]\-XX:AOTConfiguration=\f[R]\f[I]configfile\f[R] must be specified. The JVM reads history and statistics from \f[I]configfile\f[R] and writes the optimization artifacts into \f[I]cachefile\f[R]. Note that the application itself is not executed in this phase. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]on\f[R]: Execute the application in the Production phase. If \f[CR]\-XX:AOTCache=\f[R]\f[I]cachefile\f[R] is specified, the JVM tries to load \f[I]cachefile\f[R] as the AOT cache. @@ -5464,16 +5308,16 @@ .RS 2 .PP The loading of an AOT cache can fail for a number of reasons: -.IP \[bu] 2 +.IP \(bu 2 You are trying to use the AOT cache with an incompatible application, JDK release, or OS/CPU. -.IP \[bu] 2 +.IP \(bu 2 The specified \f[I]cachefile\f[R] does not exist or is not accessible. -.IP \[bu] 2 +.IP \(bu 2 Incompatible JVM options are used (for example, certain JVMTI options). .RS 2 .PP -Since the AOT cache is an optimization feature, there\[aq]s no guarantee +Since the AOT cache is an optimization feature, there\(aqs no guarantee that it will be compatible with all possible JVM options. See \f[B]JEP 483\f[R] [https://openjdk.org/jeps/483], section \f[B]Consistency of training and subsequent runs\f[R] for a @@ -5486,19 +5330,19 @@ .RE .PP When the AOT cache fails to load: -.IP \[bu] 2 +.IP \(bu 2 If \f[CR]AOTMode\f[R] was originally \f[CR]auto\f[R], the JVM will continue execution without using the AOT cache. This is the recommended mode for production environments, especially when you may not have complete control of the command\-line (e.g., your -application\[aq]s launch script may allow users to inject options to the +application\(aqs launch script may allow users to inject options to the command\-line). This allows your application to function correctly, although sometimes it may not benefit from the AOT cache. -.IP \[bu] 2 +.IP \(bu 2 If \f[CR]AOTMode\f[R] is \f[CR]on\f[R], the JVM will print an error message and exit immediately. -This mode should be used only as a \[dq]fail\-fast\[dq] debugging aid to +This mode should be used only as a \(dqfail\-fast\(dq debugging aid to check if your command\-line options are compatible with the AOT cache. An alternative is to run your application with \f[CR]\-XX:AOTMode=auto \-Xlog:aot\f[R] to see if the AOT cache can be @@ -5517,22 +5361,20 @@ detailed discussion of \f[CR]\-XX:+AOTClassLinking\f[R] and its restrictions. .RS -.PP When \f[CR]\-XX:AOTMode\f[R] \f[I]is used\f[R] in the command\-line, \f[CR]AOTClassLinking\f[R] is automatically enabled. To disable it, you must explicitly pass the \f[CR]\-XX:\-AOTClassLinking\f[R] option. -.PP When \f[CR]\-XX:AOTMode\f[R] \f[I]is not used\f[R] in the command\-line, \f[CR]AOTClassLinking\f[R] is disabled by default to provide full -compatibility with traditional CDS options such as \[ga]\-Xshare:dump. +compatibility with traditional CDS options such as \(ga\-Xshare:dump. .RE .PP The first occurrence of the special sequence \f[CR]%p\f[R] in \f[CR]*configfile* and\f[R]\f[I]cachefile\f[R] is replaced with the process ID of the JVM process launched in the command\-line, and likewise the first occurrence of \f[CR]%t\f[R] is replace by the -JVM\[aq]s startup timestamp. +JVM\(aqs startup timestamp. (After replacement there must be no further occurrences of \f[CR]%p\f[R] or \f[CR]%t\f[R], to prevent problems with sub\-processes.) For example: @@ -5584,7 +5426,7 @@ However, a Java application may choose to return any value by using the API call \f[CR]System.exit(exitValue)\f[R]. The values are: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]0\f[R]: Successful completion -.IP \[bu] 2 +.IP \(bu 2 \f[CR]>0\f[R]: An error occurred diff -Nru openjdk-25-25.0.3+9/debian/man/javac.1 openjdk-25-25.0.4+7/debian/man/javac.1 --- openjdk-25-25.0.3+9/debian/man/javac.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/javac.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JAVAC" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JAVAC" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME javac \- read Java declarations and compile them into class files .SH SYNOPSIS @@ -32,12 +32,12 @@ called \f[CR]Shape.class\f[R]. .PP There are two ways to specify source files to \f[CR]javac\f[R]: -.IP \[bu] 2 +.IP \(bu 2 For a small number of source files, you can list their file names on the command line. -.IP \[bu] 2 +.IP \(bu 2 For a large number of source files, you can use the -\f[B]\f[CB]\[at]\f[B]\f[BI]filename\f[B]\f[R] option on the command line +\f[B]\f[CB]\(at\f[B]\f[BI]filename\f[B]\f[R] option on the command line to specify an \f[I]argument file\f[R] that lists their file names. See \f[B]Standard Options\f[R] for a description of the option and \f[B]Command\-Line Argument Files\f[R] for a description of @@ -64,10 +64,10 @@ If you have compiled those source files previously, you can use options to tell \f[CR]javac\f[R] where to search for the corresponding class files. -The options, which all have names ending in \[dq]path\[dq], are -described in \f[B]Standard Options\f[R], and further described in -\f[B]Configuring a Compilation\f[R] and \f[B]Searching for Module, -Package and Type Declarations\f[R]. +The options, which all have names ending in \(dqpath\(dq, are described +in \f[B]Standard Options\f[R], and further described in \f[B]Configuring +a Compilation\f[R] and \f[B]Searching for Module, Package and Type +Declarations\f[R]. .PP By default, \f[CR]javac\f[R] compiles each source file to a class file in the same directory as the source file. @@ -76,18 +76,18 @@ .PP Command\-line \f[B]options\f[R] and \f[B]environment variables\f[R] also control how \f[CR]javac\f[R] performs various tasks: -.IP \[bu] 2 +.IP \(bu 2 Compiling code to run on earlier releases of the JDK. -.IP \[bu] 2 +.IP \(bu 2 Compiling code to run under a debugger. -.IP \[bu] 2 +.IP \(bu 2 Checking for stylistic issues in Java source code. -.IP \[bu] 2 +.IP \(bu 2 Checking for problems in \f[CR]javadoc\f[R] comments (\f[CR]/** ... */\f[R]). -.IP \[bu] 2 +.IP \(bu 2 Processing annotations in source files and class files. -.IP \[bu] 2 +.IP \(bu 2 Upgrading and patching modules in the compile\-time environment. .PP \f[CR]javac\f[R] supports \f[B]Compiling for Earlier Releases Of The @@ -110,7 +110,7 @@ For example, .IP .EX -\-Aname=\[dq]J. Duke\[dq] +\-Aname=\(dqJ. Duke\(dq \-proc:only \-d myDirectory \-\-module\-version 3 @@ -125,7 +125,7 @@ JAR files or JMOD files. .SS Standard Options .TP -\f[CR]\[at]\f[R]\f[I]filename\f[R] +\f[CR]\(at\f[R]\f[I]filename\f[R] Reads options and file names from a file. To shorten or simplify the \f[CR]javac\f[R] command, you can specify one or more files that contain arguments to the \f[CR]javac\f[R] command @@ -149,7 +149,6 @@ \f[CR]\-\-boot\-class\-path\f[R] \f[I]path\f[R] or \f[CR]\-bootclasspath\f[R] \f[I]path\f[R] Overrides the location of the bootstrap class files. .RS -.PP \f[B]Note:\f[R] This can only be used when compiling for releases prior to JDK 9. As applicable, see the descriptions in \f[B]\f[CB]\-\-release\f[B]\f[R], @@ -163,16 +162,16 @@ This class path overrides the user class path in the \f[CR]CLASSPATH\f[R] environment variable. .RS -.IP \[bu] 2 +.IP \(bu 2 If \f[CR]\-\-class\-path\f[R], \f[CR]\-classpath\f[R], or \f[CR]\-cp\f[R] are not specified, then the user class path is the value of the \f[CR]CLASSPATH\f[R] environment variable, if that is set, or else the current directory. -.IP \[bu] 2 +.IP \(bu 2 If not compiling code for modules, if the -\f[B]\f[CB]\-\-source\-path\f[B]\f[R] or \-sourcepath\[ga] option is not +\f[B]\f[CB]\-\-source\-path\f[B]\f[R] or \-sourcepath\(ga option is not specified, then the user class path is also searched for source files. -.IP \[bu] 2 +.IP \(bu 2 If the \f[B]\f[CB]\-processorpath\f[B]\f[R] option is not specified, then the class path is also searched for annotation processors. .RE @@ -186,18 +185,15 @@ The directory, and any necessary subdirectories, will be created if they do not already exist. .RS -.PP If the \f[CR]\-d\f[R] option is not specified, then \f[CR]javac\f[R] puts each class file in the same directory as the source file from which it was generated. -.PP Except when compiling code for multiple modules, the contents of the class output directory will be organized in a package hierarchy. When compiling code for multiple modules, the contents of the output directory will be organized in a module hierarchy, with the contents of each module in a separate subdirectory, each organized as a package hierarchy. -.PP \f[B]Note:\f[R] When compiling code for one or more modules, the class output directory will automatically be checked when searching for previously compiled classes. @@ -231,7 +227,6 @@ \f[CR]\-endorseddirs\f[R] \f[I]directories\f[R] Overrides the location of the endorsed standards path. .RS -.PP \f[B]Note:\f[R] This can only be used when compiling for releases prior to JDK 9. As applicable, see the descriptions in \f[B]\f[CB]\-\-release\f[B]\f[R], @@ -247,12 +242,10 @@ Each JAR file in the specified directories is searched for class files. All JAR files found become part of the class path. .RS -.PP If you are compiling for a release of the platform that supports the Extension Mechanism, then this option specifies the directories that contain the extension classes. See [Compiling for Other Releases of the Platform]. -.PP \f[B]Note:\f[R] This can only be used when compiling for releases prior to JDK 9. As applicable, see the descriptions in \f[B]\f[CB]\-\-release\f[B]\f[R], @@ -286,7 +279,6 @@ \f[CR]\-h\f[R] \f[I]directory\f[R] Specifies where to place generated native header files. .RS -.PP When you specify this option, a native header file is generated for each class that contains native methods or that has one or more constants annotated with the \f[B]\f[CB]java.lang.annotation.Native\f[B]\f[R] @@ -311,11 +303,10 @@ Specifies whether or not to generate class files for implicitly referenced files: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-implicit:class\f[R] \-\-\- Automatically generates class files. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-implicit:none\f[R] \-\-\- Suppresses class file generation. -.PP If this option is not specified, then the default automatically generates class files. In this case, the compiler issues a warning if any class files are @@ -330,7 +321,6 @@ one of the Java options described on \f[B]java\f[R] command. For example, \f[CR]\-J\-Xms48m\f[R] sets the startup memory to 48 MB. .RS -.PP \f[B]Note:\f[R] The \f[CR]CLASSPATH\f[R] environment variable, \f[CR]\-classpath\f[R] option, \f[CR]\-bootclasspath\f[R] option, and \f[CR]\-extdirs\f[R] option do not specify the classes used to run @@ -373,16 +363,15 @@ \f[CR]\-proc:\f[R][\f[CR]none\f[R], \f[CR]only\f[R], \f[CR]full\f[R]] Controls whether annotation processing and compilation are done. .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-proc:none\f[R] means that compilation takes place without annotation processing -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-proc:only\f[R] means that only annotation processing is done, without any subsequent compilation. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-proc:full\f[R] means annotation processing and compilation are done. -.PP If this option is not used, annotation processing and compilation are done if at least one other option is used to explicitly configure annotation processing. @@ -404,7 +393,6 @@ Checks that the API used is available in the specified profile. This option is deprecated and may be removed in a future release. .RS -.PP \f[B]Note:\f[R] This can only be used when compiling for releases prior to JDK 9. As applicable, see the descriptions in \f[B]\f[CB]\-\-release\f[B]\f[R], @@ -419,11 +407,9 @@ Source code is compiled against the combined Java SE and JDK API for the specified release. .RS -.PP The supported values of \f[I]release\f[R] are the current Java SE release and a limited number of previous releases, detailed in the command\-line help. -.PP For the current release, the Java SE API consists of the \f[CR]java.*\f[R], \f[CR]javax.*\f[R], and \f[CR]org.*\f[R] packages that are exported by the Java SE modules in the release; the JDK API @@ -431,14 +417,11 @@ exported by the JDK modules in the release, plus the \f[CR]javax.*\f[R] packages that are exported by standard, but non\-Java SE, modules in the release. -.PP For previous releases, the Java SE API and the JDK API are as defined in that release. -.PP \f[B]Note:\f[R] When using \f[CR]\-\-release\f[R], you cannot also use the \f[B]\f[CB]\-\-source\f[B]\f[R]/\f[CR]\-source\f[R] or \f[B]\f[CB]\-\-target\f[B]\f[R]/\f[CR]\-target\f[R] options. -.PP \f[B]Note:\f[R] When using \f[CR]\-\-release\f[R] to specify a release that supports the Java Platform Module System, the \f[CR]\-\-add\-exports\f[R] option cannot be used to enlarge the set of @@ -454,7 +437,6 @@ The directory, and any necessary subdirectories, will be created if they do not already exist. .RS -.PP Except when compiling code for multiple modules, the contents of the source output directory will be organized in a package hierarchy. When compiling code for multiple modules, the contents of the source @@ -470,7 +452,6 @@ release and a limited number of previous releases, detailed in the command\-line help. .RS -.PP If the option is not specified, the default is to compile source code according to the rules of the Java programming language for the current Java SE release. @@ -481,7 +462,6 @@ Except when compiling multiple modules together, this is the source code path used to search for class or interface definitions. .RS -.PP \f[B]Note:\f[R] Classes found through the class path might be recompiled when their source files are also found. See \f[B]Searching for Module, Package and Type Declarations\f[R]. @@ -497,7 +477,6 @@ release and a limited number of previous releases, detailed in the command\-line help. .RS -.PP \f[B]Note:\f[R] The target release must be equal to or higher than the source release. (See \f[B]\f[CB]\-\-source\f[B]\f[R].) @@ -537,7 +516,6 @@ \f[CR]\-Djava.endorsed.dirs=\f[R]\f[I]dirs\f[R] Overrides the location of the endorsed standards path. .RS -.PP \f[B]Note:\f[R] This can only be used when compiling for releases prior to JDK 9. As applicable, see the descriptions in \f[B]\f[CB]\-\-release\f[B]\f[R], @@ -548,7 +526,6 @@ \f[CR]\-Djava.ext.dirs=\f[R]\f[I]dirs\f[R] Overrides the location of installed extensions. .RS -.PP \f[B]Note:\f[R] This can only be used when compiling for releases prior to JDK 9. As applicable, see the descriptions in \f[B]\f[CB]\-\-release\f[B]\f[R], @@ -563,7 +540,6 @@ \f[CR]\-Xbootclasspath:\f[R]\f[I]path\f[R] Overrides the location of the bootstrap class files. .RS -.PP \f[B]Note:\f[R] This can only be used when compiling for releases prior to JDK 9. As applicable, see the descriptions in \f[B]\f[CB]\-\-release\f[B]\f[R], @@ -574,7 +550,6 @@ \f[CR]\-Xbootclasspath/a:\f[R]\f[I]path\f[R] Adds a suffix to the bootstrap class path. .RS -.PP \f[B]Note:\f[R] This can only be used when compiling for releases prior to JDK 9. As applicable, see the descriptions in \f[B]\f[CB]\-\-release\f[B]\f[R], @@ -585,7 +560,6 @@ \f[CR]\-Xbootclasspath/p:\f[R]\f[I]path\f[R] Adds a prefix to the bootstrap class path. .RS -.PP \f[B]Note:\f[R] This can only be used when compiling for releases prior to JDK 9. As applicable, see the descriptions in \f[B]\f[CB]\-\-release\f[B]\f[R], @@ -602,30 +576,24 @@ \f[CR]\-Xdoclint:\f[R](\f[CR]all\f[R]|\f[CR]none\f[R]|[\f[CR]\-\f[R]]\f[I]group\f[R])[\f[CR]/\f[R]\f[I]access\f[R]] Enables or disables specific groups of checks in documentation comments. .RS -.PP \f[I]group\f[R] can have one of the following values: \f[CR]accessibility\f[R], \f[CR]html\f[R], \f[CR]missing\f[R], \f[CR]reference\f[R], \f[CR]syntax\f[R]. -.PP The variable \f[I]access\f[R] specifies the minimum visibility level of classes and members that the \f[CR]\-Xdoclint\f[R] option checks. It can have one of the following values (in order of most to least visible): \f[CR]public\f[R], \f[CR]protected\f[R], \f[CR]package\f[R], \f[CR]private\f[R]. -.PP The default \f[I]access\f[R] level is \f[CR]private\f[R]. -.PP When prefixed by \f[CR]doclint:\f[R], the \f[I]group\f[R] names and -\f[CR]all\f[R] can be used with \f[CR]\[at]SuppressWarnings\f[R] to +\f[CR]all\f[R] can be used with \f[CR]\(atSuppressWarnings\f[R] to suppress warnings about documentation comments in parts of the code being compiled. -.PP For more information about these groups of checks, see the \f[B]DocLint\f[R] section of the \f[CR]javadoc\f[R] command documentation. The \f[CR]\-Xdoclint\f[R] option is disabled by default in the \f[CR]javac\f[R] command. -.PP For example, the following option checks classes and members (with all groups of checks) that have the access level of protected and higher (which includes protected and public): @@ -633,7 +601,6 @@ .PP \f[CR]\-Xdoclint:all/protected\f[R] .RE -.PP The following option enables all groups of checks for all access levels, except it will not check for HTML errors for classes and members that have the access level of package and higher (which includes package, @@ -652,7 +619,6 @@ Each \f[I]package\f[R] can be prefixed with a hyphen (\f[CR]\-\f[R]) to disable checks for a specified package or packages. .RS -.PP For more information, see the \f[B]DocLint\f[R] section of the \f[CR]javadoc\f[R] command documentation. .RE @@ -668,127 +634,123 @@ categories (respectively); other keys enable the corresponding category, or disable it if preceded by a hyphen (\f[CR]\-\f[R]). .RS -.PP Supported values for \f[I]key\f[R] are: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]all\f[R]: Enables all warning categories. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]auxiliaryclass\f[R]: Warns about an auxiliary class that is hidden in a source file, and is used from other files. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]cast\f[R]: Warns about the use of unnecessary casts. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]classfile\f[R]: Warns about the issues related to classfile contents. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]dangling\-doc\-comments\f[R]: Warns about extra or misplaced documentation comments near the beginning of a declaration. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]deprecation\f[R]: Warns about the use of deprecated items. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]dep\-ann\f[R]: Warns about the items marked as deprecated in -\f[CR]javadoc\f[R] but without the \f[CR]\[at]Deprecated\f[R] -annotation. -.IP \[bu] 2 +\f[CR]javadoc\f[R] but without the \f[CR]\(atDeprecated\f[R] annotation. +.IP \(bu 2 \f[CR]divzero\f[R]: Warns about the division by the constant integer 0. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]empty\f[R]: Warns about an empty statement after \f[CR]if\f[R]. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]exports\f[R]: Warns about the issues regarding module exports. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]fallthrough\f[R]: Warns about the falling through from one case of a switch statement to the next. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]finally\f[R]: Warns about \f[CR]finally\f[R] clauses that do not terminate normally. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]identity\f[R]: Warns about use of a value\-based class where an identity class is expected -.IP \[bu] 2 +.IP \(bu 2 \f[CR]incubating\f[R]: Warns about the use of incubating modules. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]lossy\-conversions\f[R]: Warns about possible lossy conversions in compound assignment. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]missing\-explicit\-ctor\f[R]: Warns about missing explicit constructors in public and protected classes in exported packages. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]module\f[R]: Warns about the module system\-related issues. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]opens\f[R]: Warns about the issues related to module opens. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]options\f[R]: Warns about the issues relating to use of command line options. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]output\-file\-clash\f[R]: Warns if any output file is overwritten during compilation. This can occur, for example, on case\-insensitive filesystems. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]overloads\f[R]: Warns about the issues related to method overloads. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]overrides\f[R]: Warns about the issues related to method overrides. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]path\f[R]: Warns about the invalid path elements on the command line. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]preview\f[R]: Warns about the use of preview language features. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]processing\f[R]: Warns about the issues related to annotation processing. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]rawtypes\f[R]: Warns about the use of raw types. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]removal\f[R]: Warns about the use of an API that has been marked for removal. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]restricted\f[R]: Warns about the use of restricted methods. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]requires\-automatic\f[R]: Warns developers about the use of automatic modules in requires clauses. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]requires\-transitive\-automatic\f[R]: Warns about automatic modules in requires transitive. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]serial\f[R]: Warns about the serializable classes that do not provide a serial version ID. Also warns about access to non\-public members from a serializable element. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]static\f[R]: Warns about the accessing a static member using an instance. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]strictfp\f[R]: Warns about unnecessary use of the \f[CR]strictfp\f[R] modifier. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]synchronization\f[R]: Warns about synchronization attempts on instances of value\-based classes. This key is a deprecated alias for \f[CR]identity\f[R], which has the same uses and effects. Users are encouraged to use the \f[CR]identity\f[R] category for all future and existing uses of \f[CR]synchronization\f[R]. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]text\-blocks\f[R]: Warns about inconsistent white space characters in text block indentation. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]this\-escape\f[R]: Warns about constructors leaking \f[CR]this\f[R] prior to subclass initialization. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]try\f[R]: Warns about the issues relating to the use of try blocks (that is, try\-with\-resources). -.IP \[bu] 2 +.IP \(bu 2 \f[CR]unchecked\f[R]: Warns about the unchecked operations. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]varargs\f[R]: Warns about the potentially unsafe \f[CR]vararg\f[R] methods. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]none\f[R]: Disables all warning categories. -.PP With the exception of \f[CR]all\f[R] and \f[CR]none\f[R], the keys can -be used with the \f[CR]\[at]SuppressWarnings\f[R] annotation to suppress +be used with the \f[CR]\(atSuppressWarnings\f[R] annotation to suppress warnings in a part of the source code being compiled. -.PP See \f[B]Examples of Using \-Xlint keys\f[R]. .RE .TP @@ -817,7 +779,6 @@ This option does not generate a \f[CR]package\-info.class\f[R] file if \f[CR]package\-info.java\f[R] contains only comments. .RS -.PP \f[B]Note:\f[R] A \f[CR]package\-info.class\f[R] file might be generated but be empty if all the annotations in the \f[CR]package\-info.java\f[R] file have \f[CR]RetentionPolicy.SOURCE\f[R]. @@ -843,10 +804,10 @@ options. See \f[B]Searching for Module, Package and Type Declarations\f[R]. .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-Xprefer:newer\f[R]: Reads the newer of the source or class files for a type (default). -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-Xprefer:source\f[R] : Reads the source file. Use \f[CR]\-Xprefer:source\f[R] when you want to be sure that any annotation processors can access annotations declared with a retention @@ -882,8 +843,8 @@ .SS JDK_JAVAC_OPTIONS The content of the \f[CR]JDK_JAVAC_OPTIONS\f[R] environment variable, separated by white\-spaces ( ) or white\-space characters -(\f[CR]\[rs]n\f[R], \f[CR]\[rs]t\f[R], \f[CR]\[rs]r\f[R], or -\f[CR]\[rs]f\f[R]) is prepended to the command line arguments passed to +(\f[CR]\(rsn\f[R], \f[CR]\(rst\f[R], \f[CR]\(rsr\f[R], or +\f[CR]\(rsf\f[R]) is prepended to the command line arguments passed to \f[CR]javac\f[R] as a list of arguments. .PP The encoding requirement for the environment variable is the same as the @@ -891,29 +852,29 @@ \f[CR]JDK_JAVAC_OPTIONS\f[R] environment variable content is treated in the same manner as that specified in the command line. .PP -Single quotes (\f[CR]\[aq]\f[R]) or double quotes (\f[CR]\[dq]\f[R]) can +Single quotes (\f[CR]\(aq\f[R]) or double quotes (\f[CR]\(dq\f[R]) can be used to enclose arguments that contain whitespace characters. All content between the open quote and the first matching close quote are preserved by simply removing the pair of quotes. In case a matching quote is not found, the launcher will abort with an error message. -\f[CR]\[at]\f[R]\f[I]files\f[R] are supported as they are specified in +\f[CR]\(at\f[R]\f[I]files\f[R] are supported as they are specified in the command line. -However, as in \f[CR]\[at]\f[R]\f[I]files\f[R], use of a wildcard is not +However, as in \f[CR]\(at\f[R]\f[I]files\f[R], use of a wildcard is not supported. .PP \f[B]Examples of quoting arguments containing white spaces:\f[R] .RS .PP -\f[CR]export JDK_JAVAC_OPTIONS=\[aq]\[at]\[dq]C:\[rs]white spaces\[rs]argfile\[dq]\[aq]\f[R] +\f[CR]export JDK_JAVAC_OPTIONS=\(aq\(at\(dqC:\(rswhite spaces\(rsargfile\(dq\(aq\f[R] .RE .RS .PP -\f[CR]export JDK_JAVAC_OPTIONS=\[aq]\[dq]\[at]C:\[rs]white spaces\[rs]argfile\[dq]\[aq]\f[R] +\f[CR]export JDK_JAVAC_OPTIONS=\(aq\(dq\(atC:\(rswhite spaces\(rsargfile\(dq\(aq\f[R] .RE .RS .PP -\f[CR]export JDK_JAVAC_OPTIONS=\[aq]\[at]C:\[rs]\[dq]white spaces\[dq]\[rs]argfile\[aq]\f[R] +\f[CR]export JDK_JAVAC_OPTIONS=\(aq\(atC:\(rs\(dqwhite spaces\(dq\(rsargfile\(aq\f[R] .RE .SH COMMAND\-LINE ARGUMENT FILES An argument file can include command\-line options and source file names @@ -927,18 +888,18 @@ directory, not to the location of the argument file. Wildcards (\f[CR]*\f[R]) are not allowed in these lists (such as for specifying \f[CR]*.java\f[R]). -Use of the at sign (\f[CR]\[at]\f[R]) to recursively interpret files is +Use of the at sign (\f[CR]\(at\f[R]) to recursively interpret files is not supported. -The \f[CR]\-J\f[R] options are not supported because they\[aq]re passed +The \f[CR]\-J\f[R] options are not supported because they\(aqre passed to the launcher, which does not support argument files. .PP When executing the \f[CR]javac\f[R] command, pass in the path and name -of each argument file with the at sign (\f[CR]\[at]\f[R]) leading +of each argument file with the at sign (\f[CR]\(at\f[R]) leading character. When the \f[CR]javac\f[R] command encounters an argument beginning with -the at sign (\f[CR]\[at]\f[R]), it expands the contents of that file -into the argument list. -.SS Examples of Using javac \[at]filename +the at sign (\f[CR]\(at\f[R]), it expands the contents of that file into +the argument list. +.SS Examples of Using javac \(atfilename .TP Single Argument File You could use a single argument file named \f[CR]argfile\f[R] to hold @@ -946,9 +907,8 @@ .RS .RS .PP -\f[CR]javac \[at]argfile\f[R] +\f[CR]javac \(atargfile\f[R] .RE -.PP This argument file could contain the contents of both files shown in the following \f[B]Two Argument Files\f[R] example. .RE @@ -958,9 +918,7 @@ and the other for the source file names. Note that the following lists have no line\-continuation characters. .RS -.PP Create a file named \f[CR]options\f[R] that contains the following: -.PP \f[B]Linux and macOS:\f[R] .IP .EX @@ -968,15 +926,13 @@ \-g \-sourcepath /java/pubs/ws/1.3/src/share/classes .EE -.PP \f[B]Windows:\f[R] .IP .EX \-d classes \-g -\-sourcepath C:\[rs]java\[rs]pubs\[rs]ws\[rs]1.3\[rs]src\[rs]share\[rs]classes +\-sourcepath C:\(rsjava\(rspubs\(rsws\(rs1.3\(rssrc\(rsshare\(rsclasses .EE -.PP Create a file named \f[CR]sources\f[R] that contains the following: .IP .EX @@ -984,11 +940,10 @@ MyClass2.java MyClass3.java .EE -.PP Then, run the \f[CR]javac\f[R] command as follows: .RS .PP -\f[CR]javac \[at]options \[at]sources\f[R] +\f[CR]javac \(atoptions \(atsources\f[R] .RE .RE .TP @@ -999,7 +954,7 @@ .RS .RS .PP -\f[CR]javac \[at]path1/options \[at]path2/sources\f[R] +\f[CR]javac \(atpath1/options \(atpath2/sources\f[R] .RE .RE .SH ARRANGEMENT OF SOURCE CODE @@ -1018,35 +973,35 @@ subdirectories. .PP For example: -.IP \[bu] 2 +.IP \(bu 2 The package \f[CR]p\f[R] is represented as a directory called \f[CR]p\f[R]. -.IP \[bu] 2 +.IP \(bu 2 The package \f[CR]p.q\f[R] \-\- that is, the subpackage \f[CR]q\f[R] of package \f[CR]p\f[R] \-\- is represented as the subdirectory \f[CR]q\f[R] of directory \f[CR]p\f[R]. The directory tree representing package \f[CR]p.q\f[R] is therefore -\f[CR]p\[rs]q\f[R] on Windows, and \f[CR]p/q\f[R] on other systems. -.IP \[bu] 2 +\f[CR]p\(rsq\f[R] on Windows, and \f[CR]p/q\f[R] on other systems. +.IP \(bu 2 The package \f[CR]p.q.r\f[R] is represented as the directory tree -\f[CR]p\[rs]q\[rs]r\f[R] (on Windows) or \f[CR]p/q/r\f[R] (on other +\f[CR]p\(rsq\(rsr\f[R] (on Windows) or \f[CR]p/q/r\f[R] (on other systems). .PP Within a directory or subdirectory, \f[CR].java\f[R] files represent classes and interfaces in the corresponding package or subpackage. .PP For example: -.IP \[bu] 2 +.IP \(bu 2 The class \f[CR]X\f[R] declared in package \f[CR]p\f[R] is represented by the file \f[CR]X.java\f[R] in the \f[CR]p\f[R] directory. -.IP \[bu] 2 +.IP \(bu 2 The class \f[CR]Y\f[R] declared in package \f[CR]p.q\f[R] is represented by the file \f[CR]Y.java\f[R] in the \f[CR]q\f[R] subdirectory of directory \f[CR]p\f[R]. -.IP \[bu] 2 +.IP \(bu 2 The class \f[CR]Z\f[R] declared in package \f[CR]p.q.r\f[R] is represented by the file \f[CR]Z.java\f[R] in the \f[CR]r\f[R] -subdirectory of \f[CR]p\[rs]q\f[R] (on Windows) or \f[CR]p/q\f[R] (on +subdirectory of \f[CR]p\(rsq\f[R] (on Windows) or \f[CR]p/q\f[R] (on other systems). .PP In some situations, it is convenient to split the code into separate @@ -1057,7 +1012,7 @@ In addition to \f[CR].java\f[R] files for classes and interfaces, each module has a source file called \f[CR]module\-info.java\f[R] which: .IP "1." 3 -declares the module\[aq]s name; +declares the module\(aqs name; .IP "2." 3 lists the packages exported by the module (to allow reuse by other modules); @@ -1077,16 +1032,16 @@ system. .PP For example: -.IP \[bu] 2 +.IP \(bu 2 The module \f[CR]a.b.c\f[R] may be represented by the directory \f[CR]a.b.c\f[R], on all systems. -.IP \[bu] 2 -The module\[aq]s declaration is represented by the file +.IP \(bu 2 +The module\(aqs declaration is represented by the file \f[CR]module\-info.java\f[R] in the \f[CR]a.b.c\f[R] directory. -.IP \[bu] 2 +.IP \(bu 2 If the module contains package \f[CR]p.q.r\f[R], then the \f[CR]a.b.c\f[R] directory contains the directory tree -\f[CR]p\[rs]q\[rs]r\f[R] (on Windows) or \f[CR]p/q/r\f[R] (on other +\f[CR]p\(rsq\(rsr\f[R] (on Windows) or \f[CR]p/q/r\f[R] (on other systems). .PP The development environment may prescribe some directory hierarchy @@ -1094,14 +1049,13 @@ read by \f[CR]javac\f[R]. .PP For example: -.IP \[bu] 2 +.IP \(bu 2 The module \f[CR]a.b.c\f[R] may be represented by the directory \f[CR]a.b.c\f[R] -.IP \[bu] 2 -The module\[aq]s declaration and the module\[aq]s packages may be in -some subdirectory of \f[CR]a.b.c\f[R], such as -\f[CR]src\[rs]main\[rs]java\f[R] (on Windows) or -\f[CR]src/main/java\f[R] (on other systems). +.IP \(bu 2 +The module\(aqs declaration and the module\(aqs packages may be in some +subdirectory of \f[CR]a.b.c\f[R], such as \f[CR]src\(rsmain\(rsjava\f[R] +(on Windows) or \f[CR]src/main/java\f[R] (on other systems). .SH CONFIGURING A COMPILATION This section describes how to configure \f[CR]javac\f[R] to perform a basic compilation. @@ -1109,7 +1063,7 @@ See \f[B]Configuring the Module System\f[R] for additional details for use when compiling for a release of the platform that supports modules. .SS Source Files -.IP \[bu] 2 +.IP \(bu 2 Specify the source files to be compiled on the command line. .PP If there are no compilation errors, the corresponding class files will @@ -1122,7 +1076,7 @@ indirectly, by using the \f[B]\f[CB]\-\-module\f[B]\f[R] or \f[CR]\-m\f[R] option. .SS Output Directory -.IP \[bu] 2 +.IP \(bu 2 Use the \f[B]\f[CB]\-d\f[B]\f[R] option to specify an output directory in which to put the compiled class files. .PP @@ -1140,14 +1094,14 @@ If so, you must place these libraries on the class path or module path. If the library code is not in a module, place it on the class path; if it is in a module, place it on the module path. -.IP \[bu] 2 +.IP \(bu 2 Use the \f[B]\f[CB]\-\-class\-path\f[B]\f[R] option to specify libraries to be placed on the class path. Locations on the class path should be organized in a \f[B]package hierarchy\f[R]. You can also use alternate forms of the option: \f[CR]\-classpath\f[R] or \f[CR]\-cp\f[R]. -.IP \[bu] 2 +.IP \(bu 2 Use the \f[B]\f[CB]\-\-module\-path\f[B]\f[R] option to specify libraries to be placed on the module path. Locations on the module path should either be modules or directories of @@ -1171,14 +1125,14 @@ for a module, or if you are only compiling code for a single module, use the source path; if you are compiling code for multiple modules, use the module source path. -.IP \[bu] 2 +.IP \(bu 2 Use the \f[B]\f[CB]\-\-source\-path\f[B]\f[R] option to specify the locations of additional source files that may be read by javac. Locations on the source path should be organized in a \f[B]package hierarchy\f[R]. You can also use an alternate form of the option: \f[CR]\-sourcepath\f[R]. -.IP \[bu] 2 +.IP \(bu 2 Use the \f[B]\f[CB]\-\-module\-source\-path\f[B]\f[R] option one or more times to specify the location of additional source files in different modules that may be read by javac, or when compiling source files in @@ -1213,8 +1167,8 @@ \f[B]Windows:\f[R] .IP .EX -C:\[rs]>javac greetings\[rs]*.java -C:\[rs]>dir greetings +C:\(rs>javac greetings\(rs*.java +C:\(rs>dir greetings Aloha.class GutenTag.class Hello.class Hi.class Aloha.java GutenTag.java Hello.java Hi.java .EE @@ -1233,9 +1187,9 @@ \f[B]Windows:\f[R] .IP .EX -C:\[rs]>cd -\[rs]examples -C:\[rs]>javac greetings\[rs]Hi.java +C:\(rs>cd +\(rsexamples +C:\(rs>javac greetings\(rsHi.java .EE .PP Because \f[CR]greetings.Hi\f[R] refers to other classes in the @@ -1257,7 +1211,7 @@ \f[B]Windows:\f[R] .RS .PP -\f[CR]C:\[rs]>javac \-classpath \[rs]examples \[rs]examples\[rs]greetings\[rs]Hi.java\f[R] +\f[CR]C:\(rs>javac \-classpath \(rsexamples \(rsexamples\(rsgreetings\(rsHi.java\f[R] .RE .PP If you change \f[CR]greetings.Hi\f[R] to use a banner utility, then that @@ -1266,15 +1220,15 @@ \f[B]Linux and macOS:\f[R] .IP .EX -javac \-classpath /examples:/lib/Banners.jar \[rs] +javac \-classpath /examples:/lib/Banners.jar \(rs /examples/greetings/Hi.java .EE .PP \f[B]Windows:\f[R] .IP .EX -C:\[rs]>javac \-classpath \[rs]examples;\[rs]lib\[rs]Banners.jar \[ha] - \[rs]examples\[rs]greetings\[rs]Hi.java +C:\(rs>javac \-classpath \(rsexamples;\(rslib\(rsBanners.jar \(ha + \(rsexamples\(rsgreetings\(rsHi.java .EE .PP To execute a class in the \f[CR]greetings\f[R] package, the program @@ -1290,7 +1244,7 @@ \f[B]Windows:\f[R] .RS .PP -\f[CR]C:\[rs]>java \-classpath \[rs]examples;\[rs]lib\[rs]Banners.jar greetings.Hi\f[R] +\f[CR]C:\(rs>java \-classpath \(rsexamples;\(rslib\(rsBanners.jar greetings.Hi\f[R] .RE .SH CONFIGURING THE MODULE SYSTEM If you want to include additional modules in your compilation, use the @@ -1378,15 +1332,15 @@ Prior to scanning any module paths for any package or type declarations, \f[CR]javac\f[R] will lazily scan the following paths and locations to determine the modules that will be used in the compilation. -.IP \[bu] 2 +.IP \(bu 2 The module source path (see the \f[B]\f[CB]\-\-module\-source\-path\f[B]\f[R] option) -.IP \[bu] 2 +.IP \(bu 2 The path for upgradeable modules (see the \f[B]\f[CB]\-\-upgrade\-module\-path\f[B]\f[R] option) -.IP \[bu] 2 +.IP \(bu 2 The system modules (see the \f[B]\f[CB]\-\-system\f[B]\f[R] option) -.IP \[bu] 2 +.IP \(bu 2 The user module path ( see the \f[B]\f[CB]\-\-module\-path\f[B]\f[R] option) .PP @@ -1416,23 +1370,23 @@ .SS Searching for the Declaration of a Type When the Reference is not in a Module When searching for a type that is referenced in code that is not in a module, \f[CR]javac\f[R] will look in the following places: -.IP \[bu] 2 +.IP \(bu 2 The platform classes (or the types in exported packages of the platform modules) (This is for compiled class files only.) -.IP \[bu] 2 +.IP \(bu 2 Types in exported packages of any modules on the module path, if applicable. (This is for compiled class files only.) -.IP \[bu] 2 +.IP \(bu 2 Types in packages on the class path and/or source path: .RS 2 -.IP \[bu] 2 +.IP \(bu 2 If both are specified, \f[CR]javac\f[R] looks for compiled class files on the class path and for source files on the source path. -.IP \[bu] 2 +.IP \(bu 2 If the class path is specified, but not source path, \f[CR]javac\f[R] looks for both compiled class files and source files on the class path. -.IP \[bu] 2 +.IP \(bu 2 If the class path is not specified, it defaults to the current directory. .RE @@ -1460,10 +1414,10 @@ \f[CR]javac\f[R] will examine the module being compiled to try and find the declaration of the type. \f[CR]javac\f[R] will look for the declaration of the type as follows: -.IP \[bu] 2 +.IP \(bu 2 Source files specified on the command line or on the source path or module source path. -.IP \[bu] 2 +.IP \(bu 2 Previously compiled files in the output directory. .SH DIRECTORY HIERARCHIES \f[CR]javac\f[R] generally assumes that source files and compiled class @@ -1484,7 +1438,7 @@ appropriate. .PP The location of these hierarchies are specified to \f[CR]javac\f[R] with -command\-line options, whose names typically end in \[dq]path\[dq], like +command\-line options, whose names typically end in \(dqpath\(dq, like \f[B]\f[CB]\-\-source\-path\f[B]\f[R] or \f[B]\f[CB]\-\-class\-path\f[B]\f[R]. Also as a general rule, path options whose name includes the word @@ -1544,9 +1498,9 @@ Multiple instances of the \f[CR]\-\-module\-source\-path\f[R] option may be given, each one using either the module\-pattern form or the module\-specific form, subject to the following limitations: -.IP \[bu] 2 +.IP \(bu 2 the module\-pattern form may be used at most once -.IP \[bu] 2 +.IP \(bu 2 the module\-specific form may be used at most once for any given module .PP If the module\-specific form is used for any module, the associated @@ -1556,7 +1510,7 @@ The module\-specific form allows an explicit search path to be given for any specific module. This form is: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-module\-source\-path\f[R] \f[I]module\-name\f[R]\f[CR]=\f[R]\f[I]file\-path\f[R] (\f[I]path\-separator\f[R] \f[I]file\-path\f[R])* @@ -1569,16 +1523,16 @@ .SS Module\-pattern form The module\-pattern form allows a concise specification of the module source path for any number of modules organized in regular manner. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-module\-source\-path\f[R] \f[I]pattern\f[R] .PP The pattern is defined by the following rules, which are applied in order: -.IP \[bu] 2 +.IP \(bu 2 The argument is considered to be a series of segments separated by the path separator character (\f[CR];\f[R] on Windows, and \f[CR]:\f[R] otherwise). -.IP \[bu] 2 +.IP \(bu 2 Each segment containing curly braces of the form .RS 2 .IP @@ -1587,7 +1541,7 @@ .EE .PP is considered to be replaced by a series of segments formed by -\[dq]expanding\[dq] the braces: +\(dqexpanding\(dq the braces: .IP .EX string1 alt1 string2 @@ -1599,7 +1553,7 @@ .PP This rule is applied for all such usages of braces. .RE -.IP \[bu] 2 +.IP \(bu 2 Each segment must have at most one asterisk (\f[CR]*\f[R]). If a segment does not contain an asterisk, it is considered to be as though the file separator character and an asterisk are appended. @@ -1623,7 +1577,7 @@ classes into the module, such as when testing. .PP The form of the option is: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-patch\-module\f[R] \f[I]module\-name\f[R]\f[CR]=\f[R]\f[I]file\-path\f[R] (\f[I]path\-separator\f[R] \f[I]file\-path\f[R] )* @@ -1745,12 +1699,12 @@ .PP Depending on the desired platform release, there are some restrictions on some of the options that can be used. -.IP \[bu] 2 +.IP \(bu 2 When compiling for JDK 8 and earlier releases, you cannot use any option that is intended for use with the module system. This includes all of the following options: .RS 2 -.IP \[bu] 2 +.IP \(bu 2 \f[B]\f[CB]\-\-module\-source\-path\f[B]\f[R], \f[B]\f[CB]\-\-upgrade\-module\-path\f[B]\f[R], \f[B]\f[CB]\-\-system\f[B]\f[R], \f[B]\f[CB]\-\-module\-path\f[B]\f[R], @@ -1765,12 +1719,12 @@ the appropriate platform classes using the boot class path family of options. .RE -.IP \[bu] 2 +.IP \(bu 2 When compiling for JDK 9 and later releases, you cannot use any option that is intended to configure the boot class path. This includes all of the following options: .RS 2 -.IP \[bu] 2 +.IP \(bu 2 \f[B]\f[CB]\-Xbootclasspath/p:\f[B]\f[R], \f[B]\f[CB]\-Xbootclasspath\f[B]\f[R], \f[B]\f[CB]\-Xbootclasspath/a:\f[B]\f[R], @@ -1799,11 +1753,10 @@ .TP The \f[B]ToolProvider API\f[R] A \f[CR]ToolProvider\f[R] for \f[CR]javac\f[R] can be obtained by -calling \f[CR]ToolProvider.findFirst(\[dq]javac\[dq])\f[R]. +calling \f[CR]ToolProvider.findFirst(\(dqjavac\(dq)\f[R]. This returns an object with the equivalent functionality of the command\-line tool. .RS -.PP \f[B]Note\f[R]: This API should not be confused with the like\-named API in the \f[B]\f[CB]javax.tools\f[B]\f[R] package. .RE @@ -1824,7 +1777,7 @@ .RS .RS .PP -\f[CR]String s = (String) \[dq]Hello!\[dq]\f[R] +\f[CR]String s = (String) \(dqHello!\(dq\f[R] .RE .RE .TP @@ -1840,20 +1793,19 @@ java.util.Date myDate = new java.util.Date(); int currentDay = myDate.getDay(); .EE -.PP The method \f[CR]java.util.Date.getDay\f[R] has been deprecated since JDK 1.1. .RE .TP \f[CR]dep\-ann\f[R] -Warns about items that are documented with the -\f[CR]\[at]deprecated\f[R] Javadoc comment, but do not have the -\f[CR]\[at]Deprecated\f[R] annotation, for example: +Warns about items that are documented with the \f[CR]\(atdeprecated\f[R] +Javadoc comment, but do not have the \f[CR]\(atDeprecated\f[R] +annotation, for example: .RS .IP .EX /** - * \[at]deprecated As of Java SE 7, replaced by {\[at]link #newMethod()} + * \(atdeprecated As of Java SE 7, replaced by {\(atlink #newMethod()} */ public static void deprecatedMethod() { } public static void newMethod() { } @@ -1896,13 +1848,12 @@ .EX switch (x) { case 1: - System.out.println(\[dq]1\[dq]); + System.out.println(\(dq1\(dq); // No break statement here. case 2: - System.out.println(\[dq]2\[dq]); + System.out.println(\(dq2\(dq); } .EE -.PP If the \f[CR]\-Xlint:fallthrough\f[R] option was used when compiling this code, then the compiler emits a warning about possible fall\-through into case, with the line number of the case in question. @@ -1918,22 +1869,21 @@ try { throw new NullPointerException(); } catch (NullPointerException e) { - System.err.println(\[dq]Caught NullPointerException.\[dq]); + System.err.println(\(dqCaught NullPointerException.\(dq); return 1; } finally { return 0; } } .EE -.PP The compiler generates a warning for the \f[CR]finally\f[R] block in this example. When the \f[CR]int\f[R] method is called, it returns a value of 0. A \f[CR]finally\f[R] block executes when the \f[CR]try\f[R] block exits. In this example, when control is transferred to the \f[CR]catch\f[R] block, the \f[CR]int\f[R] method exits. -However, the \f[CR]finally\f[R] block must execute, so it\[aq]s -executed, even though control was transferred outside the method. +However, the \f[CR]finally\f[R] block must execute, so it\(aqs executed, +even though control was transferred outside the method. .RE .TP \f[CR]options\f[R] @@ -1951,19 +1901,17 @@ } public class ClassWithOverridingMethod extends ClassWithVarargsMethod { - \[at]Override + \(atOverride void varargsMethod(String[] s) { } } .EE -.PP The compiler generates a warning similar to the following:. .IP .EX warning: [override] varargsMethod(String[]) in ClassWithOverridingMethod overrides varargsMethod(String...) in ClassWithVarargsMethod; overriding -method is missing \[aq]...\[aq] +method is missing \(aq...\(aq .EE -.PP When the compiler encounters a \f[CR]varargs\f[R] method, it translates the \f[CR]varargs\f[R] formal parameter into an array. In the method \f[CR]ClassWithVarargsMethod.varargsMethod\f[R], the @@ -1979,15 +1927,15 @@ the command line (with regard to the class path, the source path, and other paths). Such warnings cannot be suppressed with the -\f[CR]\[at]SuppressWarnings\f[R] annotation. +\f[CR]\(atSuppressWarnings\f[R] annotation. For example: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[B]Linux and macOS:\f[R] \f[CR]javac \-Xlint:path \-classpath /nonexistentpath Example.java\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] -\f[CR]javac \-Xlint:path \-classpath C:\[rs]nonexistentpath Example.java\f[R] +\f[CR]javac \-Xlint:path \-classpath C:\(rsnonexistentpath Example.java\f[R] .RE .TP \f[CR]processing\f[R] @@ -1997,7 +1945,6 @@ type of annotation. For example, the following is a simple annotation processor: .RS -.PP \f[B]Source file AnnoProc.java\f[R]: .IP .EX @@ -2006,7 +1953,7 @@ import javax.lang.model.*; import javax.lang.model.element.*; -\[at]SupportedAnnotationTypes(\[dq]NotAnno\[dq]) +\(atSupportedAnnotationTypes(\(dqNotAnno\(dq) public class AnnoProc extends AbstractProcessor { public boolean process(Set elems, RoundEnvironment renv){ return true; @@ -2017,16 +1964,14 @@ } } .EE -.PP \f[B]Source file AnnosWithoutProcessors.java\f[R]: .IP .EX -\[at]interface Anno { } +\(atinterface Anno { } -\[at]Anno +\(atAnno class AnnosWithoutProcessors { } .EE -.PP The following commands compile the annotation processor \f[CR]AnnoProc\f[R], then run this annotation processor against the source file \f[CR]AnnosWithoutProcessors.java\f[R]: @@ -2035,7 +1980,6 @@ javac AnnoProc.java javac \-cp . \-Xlint:processing \-processor AnnoProc \-proc:only AnnosWithoutProcessors.java .EE -.PP When the compiler runs the annotation processor against the source file \f[CR]AnnosWithoutProcessors.java\f[R], it generates the following warning: @@ -2043,7 +1987,6 @@ .EX warning: [processing] No processor claimed any of these annotations: Anno .EE -.PP To resolve this issue, you can rename the annotation defined and used in the class \f[CR]AnnosWithoutProcessors\f[R] from \f[CR]Anno\f[R] to \f[CR]NotAnno\f[R]. @@ -2057,13 +2000,11 @@ .PP \f[CR]void countElements(List l) { ... }\f[R] .RE -.PP The following example does not generate a \f[CR]rawtypes\f[R] warning: .RS .PP \f[CR]void countElements(List l) { ... }\f[R] .RE -.PP \f[CR]List\f[R] is a raw type. However, \f[CR]List\f[R] is an unbounded wildcard parameterized type. Because \f[CR]List\f[R] is a parameterized interface, always specify its @@ -2094,20 +2035,18 @@ } } .EE -.PP The compiler generates the following warning: .IP .EX warning: [serial] serializable class PersistentTime has no definition of serialVersionUID .EE -.PP If a serializable class does not explicitly declare a field named \f[CR]serialVersionUID\f[R], then the serialization runtime environment calculates a default \f[CR]serialVersionUID\f[R] value for that class based on various aspects of the class, as described in the Java Object Serialization Specification. -However, it\[aq]s strongly recommended that all serializable classes +However, it\(aqs strongly recommended that all serializable classes explicitly declare \f[CR]serialVersionUID\f[R] values because the default process of computing \f[CR]serialVersionUID\f[R] values is highly sensitive to class details that can vary depending on compiler @@ -2129,21 +2068,18 @@ void m2() { this.m1(); } } .EE -.PP The compiler generates the following warning: .IP .EX warning: [static] static method should be qualified by type name, XLintStatic, instead of by an expression .EE -.PP To resolve this issue, you can call the \f[CR]static\f[R] method \f[CR]m1\f[R] as follows: .RS .PP \f[CR]XLintStatic.m1();\f[R] .RE -.PP Alternately, you can remove the \f[CR]static\f[R] keyword from the declaration of the method \f[CR]m1\f[R]. .RE @@ -2161,17 +2097,15 @@ } } .EE -.PP generates the following warning: .IP .EX -MyClass.java:3: warning: [this\-escape] possible \[aq]this\[aq] escape +MyClass.java:3: warning: [this\-escape] possible \(aqthis\(aq escape before subclass is fully initialized System.out.println(this.hashCode()); - \[ha] + \(ha .EE -.PP -A \[aq]this\[aq] escape warning is generated when a constructor does +A \(aqthis\(aq escape warning is generated when a constructor does something that might result in a subclass method being invoked before the constructor returns. In such cases the subclass method would be operating on an incompletely @@ -2179,7 +2113,6 @@ In the above example, a subclass of \f[CR]MyClass\f[R] that overrides \f[CR]hashCode()\f[R] to incorporate its own fields would likely produce an incorrect result when invoked as shown. -.PP Warnings are only generated if a subclass could exist that is outside of the current module (or package, if no module) being compiled. So, for example, constructors in final and non\-public classes do not @@ -2208,11 +2141,9 @@ List l = new ArrayList(); List ls = l; // unchecked warning .EE -.PP During type erasure, the types \f[CR]ArrayList\f[R] and \f[CR]List\f[R] become \f[CR]ArrayList\f[R] and \f[CR]List\f[R], respectively. -.PP The \f[CR]ls\f[R] command has the parameterized type \f[CR]List\f[R]. When the \f[CR]List\f[R] referenced by \f[CR]l\f[R] is assigned to @@ -2222,7 +2153,6 @@ In this case, \f[CR]l\f[R] does not refer to a \f[CR]List\f[R] type. As a result, heap pollution occurs. -.PP A heap pollution situation occurs when the \f[CR]List\f[R] object \f[CR]l\f[R], whose static type is \f[CR]List\f[R], is assigned to another \f[CR]List\f[R] object, \f[CR]ls\f[R], that has a different @@ -2252,17 +2182,14 @@ } } .EE -.PP A non\-reifiable type is a type whose type information is not fully available at runtime. -.PP The compiler generates the following warning for the definition of the method \f[CR]ArrayBuilder.addToList\f[R]: .IP .EX warning: [varargs] Possible heap pollution from parameterized vararg type T .EE -.PP When the compiler encounters a varargs method, it translates the \f[CR]varargs\f[R] formal parameter into an array. However, the Java programming language does not permit the creation of @@ -2272,5 +2199,5 @@ formal parameter \f[CR]T[]\f[R] elements, an array. However, because of type erasure, the compiler converts the \f[CR]varargs\f[R] formal parameter to \f[CR]Object[]\f[R] elements. -Consequently, there\[aq]s a possibility of heap pollution. +Consequently, there\(aqs a possibility of heap pollution. .RE diff -Nru openjdk-25-25.0.3+9/debian/man/javadoc.1 openjdk-25-25.0.4+7/debian/man/javadoc.1 --- openjdk-25-25.0.3+9/debian/man/javadoc.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/javadoc.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,12 +1,12 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JAVADOC" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JAVADOC" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME javadoc \- generate HTML pages of API documentation from Java source files .SH SYNOPSIS \f[CR]javadoc\f[R] [\f[I]options\f[R]] [\f[I]packagenames\f[R]] -[\f[I]sourcefiles\f[R]] [\f[CR]\[at]\f[R]\f[I]files\f[R]] +[\f[I]sourcefiles\f[R]] [\f[CR]\(at\f[R]\f[I]files\f[R]] .TP \f[I]options\f[R] Specifies command\-line options, separated by spaces. @@ -20,7 +20,6 @@ If you want to also document the subpackages, then use the \f[CR]\-subpackages\f[R] option to specify the packages. .RS -.PP By default, \f[CR]javadoc\f[R] looks for the specified packages in the current directory and subdirectories. Use the \f[CR]\-sourcepath\f[R] option to specify the list of @@ -38,7 +37,7 @@ \f[CR]/home/src/java/awt/Graphics*.java\f[R]. You can also specify the path relative to the current directory. .TP -\f[CR]\[at]\f[R]\f[I]files\f[R] +\f[CR]\(at\f[R]\f[I]files\f[R] Specifies names of files that contain a list of \f[CR]javadoc\f[R] tool options, package names, and source file names in any order. .SH DESCRIPTION @@ -82,7 +81,7 @@ specifically, \f[CR]\-Xlint:dangling\-doc\-comments\f[R]. Within a source file, you may suppress any warnings generated by these options by using -\f[CR]\[at]SuppressWarnings(\[dq]dangling\-doc\-comments\[dq])\f[R] on a +\f[CR]\(atSuppressWarnings(\(dqdangling\-doc\-comments\(dq)\f[R] on a suitable enclosing declaration. .SS Conformance The standard doclet does not validate the content of documentation @@ -116,37 +115,37 @@ corresponding \f[CR]javac\f[R] options. See \f[I]Standard Options\f[R] in \f[B]javac\f[R] for the detailed descriptions of using these options: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-add\-modules\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-bootclasspath\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-class\-path\f[R], \f[CR]\-classpath\f[R], or \f[CR]\-cp\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-disable\-line\-doc\-comments\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-enable\-preview\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-encoding\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-extdirs\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-limit\-modules\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-module\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-module\-path\f[R] or \f[CR]\-p\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-module\-source\-path\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-release\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-source\f[R] or \f[CR]\-source\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-source\-path\f[R] or \f[CR]\-sourcepath\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-system\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-\-upgrade\-module\-path\f[R] .PP The following options are the core \f[CR]javadoc\f[R] options that are @@ -160,41 +159,37 @@ example, for English, a sentence break occurs after a period, question mark, or exclamation point followed by a space when the next word starts with a capital letter. -(This is meant to handle most abbreviations, such as \[dq]The serial no. -is valid\[dq], but will not handle \[dq]Mr. -Smith\[dq].) +(This is meant to handle most abbreviations, such as \(dqThe serial no. +is valid\(dq, but will not handle \(dqMr. +Smith\(dq.) .RS -.PP The option is enabled by default if the language of the current locale is not English. If the language of the current locale is English, and the \f[CR]\-breakiterator\f[R] option is not given, a simple default algorithm is used, which just looks for a period followed by a space. -.PP In a traditional \f[CR]/**...*/\f[R] comment, the search for the end of the first sentence is terminated by an HTML block tag, such as \f[CR]

\f[R], \f[CR]

\f[R], or the tag for a heading.
-.PP
 In a Markdown \f[CR]///\f[R] comment, the search for the end of the
 first sentence skips over any characters enclosed in code spans and
 links, and is terminated by the end of the initial block, as indicated
 by a blank line or the beginning of the next block, such as a list,
 thematic break, or an HTML block.
-.PP
 The first sentence of the description in a documentation comment is used
 in summary tables, index pages, and other situations where a short
 summary is required.
 For more explicit control in any individual documentation comment,
 enclose the contents of the first sentence in a
-\f[CR]{\[at]summary ...}\f[R] tag, or when applicable, in a
-\f[CR]{\[at]return ...}\f[R] tag.
+\f[CR]{\(atsummary ...}\f[R] tag, or when applicable, in a
+\f[CR]{\(atreturn ...}\f[R] tag.
 .RE
 .TP
 \f[CR]\-doclet\f[R] \f[I]class\f[R]
 Generates output by using an alternate doclet.
 Use the fully qualified name.
 This doclet defines the content and formats the output.
-If the \f[CR]\-doclet\f[R] option isn\[aq]t used, then the
+If the \f[CR]\-doclet\f[R] option isn\(aqt used, then the
 \f[CR]javadoc\f[R] tool uses the standard doclet for generating the
 default HTML format.
 This class must implement the \f[CR]jdk.javadoc.doclet.Doclet\f[R]
@@ -211,8 +206,8 @@
 If \f[CR]path\f[R] contains multiple paths or JAR files, then they
 should be separated with a colon (\f[CR]:\f[R]) on Linux and macOS, and
 a semicolon (\f[CR];\f[R]) on Windows.
-This option isn\[aq]t necessary when the \f[CR]doclet\f[R] starting
-class is already in the search path.
+This option isn\(aqt necessary when the \f[CR]doclet\f[R] starting class
+is already in the search path.
 .TP
 \f[CR]\-exclude\f[R] \f[I]pkglist\f[R]
 Unconditionally, excludes the specified packages and their subpackages
@@ -220,14 +215,13 @@
 It excludes those packages even when they would otherwise be included by
 some earlier or later \f[CR]\-subpackages\f[R] option.
 .RS
-.PP
 The following example would include \f[CR]java.io\f[R],
 \f[CR]java.util\f[R], and \f[CR]java.math\f[R] (among others), but would
 exclude packages rooted at \f[CR]java.net\f[R] and \f[CR]java.lang\f[R].
 Notice that these examples exclude \f[CR]java.lang.ref\f[R], which is a
 subpackage of \f[CR]java.lang\f[R].
 Arguments are separated by colons on all operating systems.
-.IP \[bu] 2
+.IP \(bu 2
 \f[B]Linux and macOS:\f[R]
 .RS 2
 .IP
@@ -235,12 +229,12 @@
 javadoc \-sourcepath /home/user/src \-subpackages java \-exclude java.net:java.lang
 .EE
 .RE
-.IP \[bu] 2
+.IP \(bu 2
 \f[B]Windows:\f[R]
 .RS 2
 .IP
 .EX
-javadoc \-sourcepath \[rs]user\[rs]src \-subpackages java \-exclude java.net:java.lang
+javadoc \-sourcepath \(rsuser\(rssrc \-subpackages java \-exclude java.net:java.lang
 .EE
 .RE
 .RE
@@ -252,10 +246,10 @@
 documented.
 Supports the following values:
 .RS
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]transitive\f[R]: additionally includes all the required transitive
 dependencies of those modules.
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]all\f[R]: includes all dependencies.
 .RE
 .TP
@@ -276,15 +270,13 @@
 of initial memory, which is useful when you know the minimum amount of
 memory required.
 .RS
-.PP
 There is no space between the \f[CR]J\f[R] and the \f[CR]flag\f[R].
-.PP
 Use the \f[CR]\-version\f[R] option to report the version of the JRE
 being used to run the \f[CR]javadoc\f[R] tool.
 .IP
 .EX
 javadoc \-J\-version
-java version \[dq]17\[dq] 2021\-09\-14 LTS
+java version \(dq17\(dq 2021\-09\-14 LTS
 Java(TM) SE Runtime Environment (build 17+35\-LTS\-2724)
 Java HotSpot(TM) 64\-Bit Server VM (build 17+35\-LTS\-2724, mixed mode, sharing)
 .EE
@@ -297,14 +289,13 @@
 \f[CR]java.util.Locale\f[R] documentation, such as \f[CR]en_US\f[R]
 (English, United States) or \f[CR]en_US_WIN\f[R] (Windows variant).
 .RS
-.PP
 Specifying a locale causes the \f[CR]javadoc\f[R] tool to choose the
 resource files of that locale for messages such as strings in the
 navigation bar, headings for lists and tables, help file contents,
 comments in the \f[CR]stylesheet.css\f[R] file, and so on.
 It also specifies the sorting order for lists sorted alphabetically, and
 the sentence separator to determine the end of the first sentence.
-The \f[CR]\-locale\f[R] option doesn\[aq]t determine the locale of the
+The \f[CR]\-locale\f[R] option doesn\(aqt determine the locale of the
 documentation comment text specified in the source files of the
 documented classes.
 .RE
@@ -331,14 +322,14 @@
 Specifies which members (fields, methods, or constructors) are
 documented, where \f[I]value\f[R] can be any of the following:
 .RS
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]public\f[R] \-\-\- shows only public members
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]protected\f[R] \-\-\- shows public and protected members; this is
 the default
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]package\f[R] \-\-\- shows public, protected, and package members
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]private\f[R] \-\-\- shows all members
 .RE
 .TP
@@ -354,14 +345,14 @@
 Specifies which types (classes, interfaces, etc.)
 are documented, where \f[I]value\f[R] can be any of the following:
 .RS
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]public\f[R] \-\-\- shows only public types
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]protected\f[R] \-\-\- shows public and protected types; this is
 the default
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]package\f[R] \-\-\- shows public, protected, and package types
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]private\f[R] \-\-\- shows all types
 .RE
 .TP
@@ -372,18 +363,17 @@
 because they are automatically included.
 Each package argument is any top\-level subpackage (such as
 \f[CR]java\f[R]) or fully qualified package (such as
-\f[CR]javax.swing\f[R]) that doesn\[aq]t need to contain source files.
+\f[CR]javax.swing\f[R]) that doesn\(aqt need to contain source files.
 Arguments are separated by colons on all operating systems.
-Wild cards aren\[aq]t allowed.
+Wild cards aren\(aqt allowed.
 Use \f[CR]\-sourcepath\f[R] to specify where to find the packages.
-This option doesn\[aq]t process source files that are in the source tree
-but don\[aq]t belong to the packages.
+This option doesn\(aqt process source files that are in the source tree
+but don\(aqt belong to the packages.
 .RS
-.PP
 For example, the following commands generates documentation for packages
 named \f[CR]java\f[R] and \f[CR]javax.swing\f[R] and all of their
 subpackages.
-.IP \[bu] 2
+.IP \(bu 2
 \f[B]Linux and macOS:\f[R]
 .RS 2
 .IP
@@ -391,12 +381,12 @@
 javadoc \-d docs \-sourcepath /home/user/src \-subpackages java:javax.swing
 .EE
 .RE
-.IP \[bu] 2
+.IP \(bu 2
 \f[B]Windows:\f[R]
 .RS 2
 .IP
 .EX
-javadoc \-d docs \-sourcepath \[rs]user\[rs]src \-subpackages java:javax.swing
+javadoc \-d docs \-sourcepath \(rsuser\(rssrc \-subpackages java:javax.swing
 .EE
 .RE
 .RE
@@ -432,15 +422,15 @@
 corresponding \f[CR]javac\f[R] options.
 See \f[I]Extra Options\f[R] in \f[B]javac\f[R] for the detailed
 descriptions of using these options:
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]\-\-add\-exports\f[R]
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]\-\-add\-reads\f[R]
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]\-\-patch\-module\f[R]
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]\-Xmaxerrs\f[R]
-.IP \[bu] 2
+.IP \(bu 2
 \f[CR]\-Xmaxwarns\f[R]
 .SS Standard Options for the Standard Doclet
 The following options are provided by the standard doclet.
@@ -451,7 +441,6 @@
 This option can be used one or more times to specify additional script
 files.
 .RS
-.PP
 Command\-line example:
 .RS
 .PP
@@ -465,7 +454,6 @@
 This option can be used one or more times to specify additional
 stylesheets included in the documentation.
 .RS
-.PP
 Command\-line example:
 .IP
 .EX
@@ -493,20 +481,18 @@
 Registry, Character Sets\f[R]
 [http://www.iana.org/assignments/character\-sets].
 .RS
-.PP
 For example:
 .IP
 .EX
-javadoc \-charset \[dq]iso\-8859\-1\[dq] mypackage
+javadoc \-charset \(dqiso\-8859\-1\(dq mypackage
 .EE
-.PP
 This command inserts the following line, containing a
 \f[B]\f[CB]meta\f[B] element\f[R]
 [https://html.spec.whatwg.org/multipage/semantics.html#the\-meta\-element]
 in the head of every generated page:
 .IP
 .EX
-
+
 .EE
 .RE
 .TP
@@ -520,7 +506,7 @@
 The destination directory is automatically created when the
 \f[CR]javadoc\f[R] tool runs.
 .RS
-.IP \[bu] 2
+.IP \(bu 2
 \f[B]Linux and macOS:\f[R] For example, the following command generates
 the documentation for the package \f[CR]com.mypackage\f[R] and saves the
 results in the \f[CR]/user/doc/\f[R] directory:
@@ -530,14 +516,14 @@
 javadoc \-d /user/doc/ com.mypackage
 .EE
 .RE
-.IP \[bu] 2
+.IP \(bu 2
 \f[B]Windows:\f[R] For example, the following command generates the
 documentation for the package \f[CR]com.mypackage\f[R] and saves the
-results in the \f[CR]\[rs]user\[rs]doc\[rs]\f[R] directory:
+results in the \f[CR]\(rsuser\(rsdoc\(rs\f[R] directory:
 .RS 2
 .IP
 .EX
-javadoc \-d \[rs]user\[rs]doc\[rs] com.mypackage
+javadoc \-d \(rsuser\(rsdoc\(rs com.mypackage
 .EE
 .RE
 .RE
@@ -548,7 +534,6 @@
 Registry, Character Sets\f[R]
 [http://www.iana.org/assignments/character\-sets].
 .RS
-.PP
 Three options are available for use in a \f[CR]javadoc\f[R] encoding
 command.
 The \f[CR]\-encoding\f[R] option is used for encoding the files read by
@@ -560,11 +545,10 @@
 If you specify both input and output encoding options in a command, they
 must be the same value.
 If you specify neither output option, it defaults to the input encoding.
-.PP
 For example:
 .IP
 .EX
-javadoc \-docencoding \[dq]iso\-8859\-1\[dq] mypackage
+javadoc \-docencoding \(dqiso\-8859\-1\(dq mypackage
 .EE
 .RE
 .TP
@@ -586,7 +570,7 @@
 Additional quotation marks within the \f[CR]title\f[R] tag must be
 escaped.
 For example,
-\f[CR]javadoc \-doctitle \[dq]My Library
v1.0\[dq] com.mypackage\f[R]. +\f[CR]javadoc \-doctitle \(dqMy Library
v1.0\(dq com.mypackage\f[R]. .TP \f[CR]\-excludedocfilessubdir\f[R] \f[I]name1\f[R]\f[CR],\f[R]\f[I]name2...\f[R] Excludes any subdirectories with the given names when recursively @@ -611,7 +595,7 @@ does, the \f[CR]header\f[R] must be enclosed in quotation marks. Use escape characters for internal quotation marks within a header. For example, -\f[CR]javadoc \-header \[dq]My Library
v1.0\[dq] com.mypackage\f[R]. +\f[CR]javadoc \-header \(dqMy Library
v1.0\(dq com.mypackage\f[R]. .TP \f[CR]\-helpfile\f[R] \f[I]filename\f[R] Specifies a file containing the text that will be displayed when the @@ -633,23 +617,23 @@ class. These tags can help search engines that look for \f[CR]\f[R] tags find the pages. -Most search engines that search the entire Internet don\[aq]t look at +Most search engines that search the entire Internet don\(aqt look at \f[CR]\f[R] tags, because pages can misuse them. Search engines offered by companies that confine their searches to their own website can benefit by looking at \f[CR]\f[R] tags. The \f[CR]\f[R] tags include the fully qualified name of the class and the unqualified names of the fields and methods. -Constructors aren\[aq]t included because they are identical to the class +Constructors aren\(aqt included because they are identical to the class name. For example, the page for the class \f[CR]String\f[R] includes these keywords: .RS .IP .EX - - - - + + + + .EE .RE .TP @@ -662,31 +646,25 @@ You can specify multiple \f[CR]\-link\f[R] options in a specified \f[CR]javadoc\f[R] tool run to link to multiple documents. .RS -.PP Either a \f[CR]package\-list\f[R] or an \f[CR]element\-list\f[R] file must be in this \f[I]url\f[R] directory (otherwise, use the \f[CR]\-linkoffline\f[R] option). -.PP \f[I]Note:\f[R] The \f[CR]package\-list\f[R] and \f[CR]element\-list\f[R] files are generated by the \f[CR]javadoc\f[R] tool when generating the API documentation and should not be modified by the user. -.PP When you use the \f[CR]javadoc\f[R] tool to document packages, it uses the \f[CR]package\-list\f[R] file to determine the packages declared in an API. When you generate API documents for modules, the \f[CR]javadoc\f[R] tool uses the \f[CR]element\-list\f[R] file to determine the modules and packages declared in an API. -.PP The \f[CR]javadoc\f[R] tool reads the names from the appropriate list file and then links to the packages or modules at that URL. -.PP When the \f[CR]javadoc\f[R] tool runs, the \f[I]url\f[R] value is copied into the \f[CR]\f[R] links that are created. Therefore, \f[I]url\f[R] must be the URL to the directory and not to a file. -.PP You can use an absolute link for \f[I]url\f[R] to enable your documents to link to a document on any web site, or you can use a relative link to link only to a relative location. @@ -727,40 +705,34 @@ You can specify multiple \f[CR]\-linkoffline\f[R] options in a specified \f[CR]javadoc\f[R] tool run. .RS -.PP Use the \f[CR]\-linkoffline\f[R] option when: -.IP \[bu] 2 +.IP \(bu 2 Linking to a document on the web that the \f[CR]javadoc\f[R] tool -can\[aq]t access through a web connection -.IP \[bu] 2 +can\(aqt access through a web connection +.IP \(bu 2 The \f[CR]package\-list\f[R] or \f[CR]element\-list\f[R] file of the -external document either isn\[aq]t accessible or doesn\[aq]t exist at -the URL location, but does exist at a different location and can be +external document either isn\(aqt accessible or doesn\(aqt exist at the +URL location, but does exist at a different location and can be specified by either the \f[CR]package\-list\f[R] or \f[CR]element\-list\f[R] file (typically local). -.PP \f[I]Note:\f[R] The \f[CR]package\-list\f[R] and \f[CR]element\-list\f[R] files are generated by the \f[CR]javadoc\f[R] tool when generating the API documentation and should not be modified by the user. -.PP If \f[I]url1\f[R] is accessible only on the World Wide Web, then the \f[CR]\-linkoffline\f[R] option removes the constraint that the \f[CR]javadoc\f[R] tool must have a web connection to generate documentation. -.PP Another use of the \f[CR]\-linkoffline\f[R] option is as a work\-around to update documents. After you have run the \f[CR]javadoc\f[R] tool on a full set of packages or modules, you can run the \f[CR]javadoc\f[R] tool again on a smaller set of changed packages or modules, so that the updated files can be inserted back into the original set. -.PP For example, the \f[CR]\-linkoffline\f[R] option takes two arguments. The first is for the string to be embedded in the \f[CR]\f[R] links, and the second tells the \f[CR]javadoc\f[R] tool where to find either the \f[CR]package\-list\f[R] or \f[CR]element\-list\f[R] file. -.PP The \f[I]url1\f[R] or \f[I]url2\f[R] value is the absolute or relative URL of the directory that contains the external \f[CR]javadoc\f[R] generated documentation that you want to link to. @@ -774,7 +746,6 @@ Specifies a properties file used to configure links to platform documentation. .RS -.PP The \f[I]url\f[R] argument is expected to point to a properties file containing one or more entries with the following format, where \f[CR]\f[R] is the platform version as passed to the @@ -785,7 +756,6 @@ .EX doclet.platform.docs.= .EE -.PP For instance, a properties file containing URLs for releases 15 to 17 might contain the following lines: .IP @@ -794,7 +764,6 @@ doclet.platform.docs.16=https://example.com/api/16/ doclet.platform.docs.17=https://example.com/api/17/ .EE -.PP If the properties file does not contain an entry for a particular release no platform links are generated. .RE @@ -804,10 +773,9 @@ links to them from the standard HTML documentation. Links are created for classes, interfaces, constructors, methods, and fields whose declarations are in a source file. -Otherwise, links aren\[aq]t created, such as for default constructors -and generated classes. +Otherwise, links aren\(aqt created, such as for default constructors and +generated classes. .RS -.PP This option exposes all private implementation details in the included source files, including private classes, private fields, and the bodies of private methods, regardless of the \f[CR]\-public\f[R], @@ -815,7 +783,6 @@ options. Unless you also use the \f[CR]\-private\f[R] option, not all private classes or interfaces are accessible through links. -.PP Each link appears on the name of the identifier in its declaration. For example, the link to the source code of the \f[CR]Button\f[R] class would be on the word \f[CR]Button\f[R]: @@ -823,7 +790,6 @@ .EX public class Button extends Component implements Accessible .EE -.PP The link to the source code of the \f[CR]getLabel\f[R] method in the \f[CR]Button\f[R] class is on the word \f[CR]getLabel\f[R]: .IP @@ -838,11 +804,10 @@ This option lets you override the default. If you do not specify the option, the \f[CR]javadoc\f[R] tool will create and use a default stylesheet. -The file name can be any name and isn\[aq]t restricted to +The file name can be any name and isn\(aqt restricted to \f[CR]stylesheet.css\f[R]. The \f[CR]\-\-main\-stylesheet\f[R] option is the preferred form. .RS -.PP Command\-line example: .IP .EX @@ -860,10 +825,10 @@ \f[CR]\-nodeprecated\f[R] Prevents the generation of any deprecated API in the documentation. This does what the \f[CR]\-nodeprecatedlist\f[R] option does, and it -doesn\[aq]t generate any deprecated API throughout the rest of the +doesn\(aqt generate any deprecated API throughout the rest of the documentation. -This is useful when writing code when you don\[aq]t want to be -distracted by the deprecated code. +This is useful when writing code when you don\(aqt want to be distracted +by the deprecated code. .TP \f[CR]\-nodeprecatedlist\f[R] Prevents the generation of the file that contains the list of deprecated @@ -906,17 +871,13 @@ For historical reasons, \f[CR]:\f[R] can be used anywhere in the argument as a separator instead of \f[CR],\f[R]. .RS -.PP The following example omits all package qualifiers: \f[CR]\-noqualifier all\f[R]. -.PP The following example omits \f[CR]java.lang\f[R] and \f[CR]java.io\f[R] package qualifiers: \f[CR]\-noqualifier java.lang:java.io\f[R]. -.PP The following example omits package qualifiers starting with \f[CR]java\f[R] and \f[CR]com.sun\f[R] subpackages, but not \f[CR]javax: \-noqualifier java.*:com.sun.*\f[R]. -.PP Where a package qualifier would appear due to the previous behavior, the name can be suitably shortened. This rule is in effect whether or not the \f[CR]\-noqualifier\f[R] @@ -955,7 +916,6 @@ If the \f[I]filename\f[R] is a relative path, it is evaluated relative to the current working directory. .RS -.PP The file may be an HTML file, with a filename ending in \f[CR].html\f[R], or a Markdown file, with a filename ending in \f[CR].md\f[R]. @@ -964,16 +924,14 @@ present, or from the \f[CR]\f[R] element is there is no \f[CR]
\f[R] element. If the file is a Markdown file, the entire content of the file is used. -.PP The title on the overview page is set by \f[CR]\-doctitle\f[R]. -.PP \f[I]Note:\f[R] older versions of the \f[CR]javadoc\f[R] tool assumed that any use of this option was for an HTML file, and allowed any extension for the \f[I]filename\f[R]. .RE .TP \f[CR]\-serialwarn\f[R] -Reports compile\-time warnings for missing \f[CR]\[at]serial\f[R] tags. +Reports compile\-time warnings for missing \f[CR]\(atserial\f[R] tags. By default, Javadoc reports no serial warnings. Use this option to display the serial warnings, which helps to properly document default serializable fields and \f[CR]writeExternal\f[R] @@ -983,27 +941,24 @@ Generates documentation for APIs that were added or newly deprecated in the specified \f[I]release\f[R]s. .RS -.PP -If the \f[CR]\[at]since\f[R] tag in the \f[CR]javadoc\f[R] comment of an +If the \f[CR]\(atsince\f[R] tag in the \f[CR]javadoc\f[R] comment of an element in the documented source code matches a \f[I]release\f[R] passed as the option argument, information about the element and the release it -was added in is included in a \[dq]New API\[dq] page. -.PP -If the \[dq]Deprecated API\[dq] page is generated and the -\f[CR]since\f[R] element of the \f[CR]java.lang.Deprecated\f[R] -annotation of a documented element matches a \f[I]release\f[R] in the -option arguments, information about the release the element was -deprecated in is added to the \[dq]Deprecated API\[dq] page. -.PP +was added in is included in a \(dqNew API\(dq page. +If the \(dqDeprecated API\(dq page is generated and the \f[CR]since\f[R] +element of the \f[CR]java.lang.Deprecated\f[R] annotation of a +documented element matches a \f[I]release\f[R] in the option arguments, +information about the release the element was deprecated in is added to +the \(dqDeprecated API\(dq page. Releases are compared using case\-sensitive string comparison. .RE .TP \f[CR]\-\-since\-label\f[R] \f[I]text\f[R] -Specifies the \f[I]text\f[R] to use in the heading of the \[dq]New -API\[dq] page. +Specifies the \f[I]text\f[R] to use in the heading of the \(dqNew +API\(dq page. This may contain information about the releases covered in the page, e.g. -\[dq]New API in release 2.0\[dq], or \[dq]New API since release 1\[dq]. +\(dqNew API in release 2.0\(dq, or \(dqNew API since release 1\(dq. .TP \f[CR]\-\-snippet\-path\f[R] \f[I]snippetpathlist\f[R] Specifies the search paths for finding files for external snippets. @@ -1018,11 +973,11 @@ Specifies the number of spaces each tab uses in the source. .TP \f[CR]\-\-spec\-base\-url\f[R] \f[I]url\f[R] -Specifies the base URL for relative URLs in \f[CR]\[at]spec\f[R] tags, -to be used when generating links to any external specifications. +Specifies the base URL for relative URLs in \f[CR]\(atspec\f[R] tags, to +be used when generating links to any external specifications. It can either be an absolute URL, or a relative URL, in which case it is evaluated relative to the base directory of the generated output files. -The default value is equivalent to \f[CR]{\[at]docRoot}/../specs\f[R]. +The default value is equivalent to \f[CR]{\(atdocRoot}/../specs\f[R]. .TP \f[CR]\-splitindex\f[R] Splits the index file into multiple files, alphabetically, one file per @@ -1031,9 +986,9 @@ .TP \f[CR]\-\-syntax\-highlight\f[R] Enables syntax highlighting for code fragments in -\f[CR]{\[at]snippet}\f[R] tags and \f[CR]
\f[R] elements.
+\f[CR]{\(atsnippet}\f[R] tags and \f[CR]
\f[R] elements.
 For snippets, the \f[CR]lang\f[R] attribute is used to determine the
-language of code fragments, which defaults to \[dq]java\[dq] for inline
+language of code fragments, which defaults to \(dqjava\(dq for inline
 snippets and is derived from the file extension for external snippets.
 In HTML \f[CR]
\f[R] tags, the \f[CR]class\f[R] attribute can
 be used to specify the language of the contained code fragment as shown
@@ -1041,13 +996,12 @@
 .RS
 .IP
 .EX
-
...
+
...
.EE -.PP If neither of these attributes is available automatic language detection is applied. To disable syntax highlighting for a code fragment set the language to -\[dq]text\[dq] using one of the mechanisms described above. +\(dqtext\(dq using one of the mechanisms described above. The languages and formats supported by this option are Java, Properties, JSON, HTML and XML. .RE @@ -1057,42 +1011,41 @@ For the \f[CR]javadoc\f[R] tool to spell\-check tag names, it is important to include a \f[CR]\-tag\f[R] option for every custom tag that is present in the source code, disabling (with \f[CR]X\f[R]) those that -aren\[aq]t being output in the current run. +aren\(aqt being output in the current run. The colon (\f[CR]:\f[R]) is always the separator. To include a colon in the tag name, escape it with a backward slash -(\f[CR]\[rs]\f[R]). +(\f[CR]\(rs\f[R]). The \f[CR]\-tag\f[R] option outputs the tag heading, \f[I]header\f[R], in bold, followed on the next line by the text from its single argument. Similar to any block tag, the argument text can contain inline tags, which are also interpreted. The output is similar to standard one\-argument tags, such as the -\f[CR]\[at]return\f[R] and \f[CR]\[at]author\f[R] tags. +\f[CR]\(atreturn\f[R] and \f[CR]\(atauthor\f[R] tags. Omitting a \f[I]header\f[R] value causes the \f[I]name\f[R] to be the heading. \f[I]locations\f[R] is a list of characters specifying the kinds of declarations in which the tag may be used. The following characters may be used, in either uppercase or lowercase: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]A\f[R]: all declarations -.IP \[bu] 2 +.IP \(bu 2 \f[CR]C\f[R]: constructors -.IP \[bu] 2 +.IP \(bu 2 \f[CR]F\f[R]: fields -.IP \[bu] 2 +.IP \(bu 2 \f[CR]M\f[R]: methods -.IP \[bu] 2 +.IP \(bu 2 \f[CR]O\f[R]: the overview page and other documentation files in \f[CR]doc\-files\f[R] subdirectories -.IP \[bu] 2 +.IP \(bu 2 \f[CR]P\f[R]: packages -.IP \[bu] 2 +.IP \(bu 2 \f[CR]S\f[R]: modules -.IP \[bu] 2 +.IP \(bu 2 \f[CR]T\f[R]: types (classes and interfaces) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]X\f[R]: nowhere: the tag is disabled, and will be ignored -.PP The order in which tags are given on the command line will be used as the order in which the tags appear in the generated output. You can include standard tags in the order given on the command line by @@ -1109,17 +1062,16 @@ The taglet accepts those arguments, processes them, and generates the output. .RS -.PP Taglets are useful for block or inline tags. They can have any number of arguments and implement custom behavior, such as making text bold, formatting bullets, writing out the text to a file, or starting other processes. Taglets can only determine where a tag should appear and in what form. All other decisions are made by the doclet. -A taglet can\[aq]t do things such as remove a class name from the list -of included classes. -However, it can execute side effects, such as printing the tag\[aq]s -text to a file or triggering another process. +A taglet can\(aqt do things such as remove a class name from the list of +included classes. +However, it can execute side effects, such as printing the tag\(aqs text +to a file or triggering another process. Use the \f[CR]\-tagletpath\f[R] option to specify the path to the taglet. The following example inserts the To Do taglet after Parameters and @@ -1134,7 +1086,6 @@ \-tag throws \-tag see .EE -.PP Alternately, you can use the \f[CR]\-taglet\f[R] option in place of its \f[CR]\-tag\f[R] option, but that might be difficult to read. .RE @@ -1165,8 +1116,8 @@ Use page for \f[CR]String\f[R]. This documents only uses of the API, not the implementation. When a method uses \f[CR]String\f[R] in its implementation, but -doesn\[aq]t take a string as an argument or return a string, that -isn\[aq]t considered a use of \f[CR]String\f[R]. +doesn\(aqt take a string as an argument or return a string, that +isn\(aqt considered a use of \f[CR]String\f[R]. To access the generated Use page, go to the class or package and click the \f[B]USE\f[R] link in the navigation bar. .TP @@ -1190,7 +1141,7 @@ \f[CR]javadoc\f[R] tool uses the value of the \f[CR]\-doctitle\f[R] option for the \f[CR]\-windowtitle\f[R] option. For example, -\f[CR]javadoc \-windowtitle \[dq]My Library\[dq] com.mypackage\f[R]. +\f[CR]javadoc \-windowtitle \(dqMy Library\(dq com.mypackage\f[R]. .SS Extra Options for the Standard Doclet The following are additional options provided by the standard doclet and are subject to change without notice. @@ -1232,10 +1183,8 @@ \f[CR]\-Xdoclint\f[R] Enables recommended checks for problems in documentation comments. .RS -.PP By default, the \f[CR]\-Xdoclint\f[R] option is enabled. Disable it with the option \f[CR]\-Xdoclint:none\f[R]. -.PP For more details, see \f[B]DocLint\f[R]. .RE .TP @@ -1243,13 +1192,11 @@ Enables or disables specific checks for different kinds of issues in documentation comments. .RS -.PP Each \f[I]flag\f[R] can be one of \f[CR]all\f[R], \f[CR]none\f[R], or \f[CR][\-]\f[R]\f[I]group\f[R] where \f[I]group\f[R] has one of the following values: \f[CR]accessibility\f[R], \f[CR]html\f[R], \f[CR]missing\f[R], \f[CR]reference\f[R], \f[CR]syntax\f[R]. For more details on these values, see \f[B]DocLint Groups\f[R]. -.PP When specifying two or more flags, you can either use a single \f[CR]\-Xdoclint:...\f[R] option, listing all the desired flags, or you can use multiple options giving one or more flag in each option. @@ -1260,19 +1207,17 @@ javadoc \-Xdoclint:html \-Xdoclint:syntax \-Xdoclint:accessibility MyFile.java javadoc \-Xdoclint:html,syntax,accessibility MyFile.java .EE -.PP The following examples illustrate how to change what DocLint reports: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-Xdoclint:none\f[R] \-\-\- disables all checks -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-Xdoclint:\f[R]\f[I]group\f[R] \-\-\- enables \f[I]group\f[R] checks -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-Xdoclint:all\f[R] \-\-\- enables all groups of checks -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-Xdoclint:all,\-\f[R]\f[I]group\f[R] \-\-\- enables all checks except \f[I]group\f[R] checks -.PP For more details, see \f[B]DocLint\f[R]. .RE .TP @@ -1285,12 +1230,11 @@ Prefix the package specifier with \f[CR]\-\f[R] to disable checks for the specified packages. .RS -.PP For more details, see \f[B]DocLint\f[R]. .RE .TP \f[CR]\-Xdocrootparent\f[R] \f[I]url\f[R] -Replaces all \f[CR]\[at]docRoot\f[R] items followed by \f[CR]/..\f[R] in +Replaces all \f[CR]\(atdocRoot\f[R] items followed by \f[CR]/..\f[R] in documentation comments with \f[I]url\f[R]. .SH DOCLINT DocLint provides the ability to check for possible problems in @@ -1303,7 +1247,7 @@ Problems are organized into \f[B]groups\f[R], and options can be used to enable or disable messages in one or more groups. Within the source code, messages in one or more groups can be -\f[B]suppressed\f[R] by using \f[CR]\[at]SuppressWarnings\f[R] +\f[B]suppressed\f[R] by using \f[CR]\(atSuppressWarnings\f[R] annotations. .PP When invoked from \f[CR]javadoc\f[R], by default DocLint checks all @@ -1319,20 +1263,20 @@ solely relies on the various \f[CR]\-Xdoclint...\f[R] options to determine which documentation comments to check. .PP -DocLint doesn\[aq]t attempt to fix invalid input, it just reports it. +DocLint doesn\(aqt attempt to fix invalid input, it just reports it. .PP -\f[I]Note:\f[R] DocLint doesn\[aq]t guarantee the completeness of these +\f[I]Note:\f[R] DocLint doesn\(aqt guarantee the completeness of these checks. -In particular, it isn\[aq]t a full HTML compliance checker. +In particular, it isn\(aqt a full HTML compliance checker. The goal is to just report common errors in a convenient manner. .SS Groups The checks performed by DocLint are organized into groups. The warnings and errors in each group can be enabled or disabled with command\-line options, or suppressed with -\f[CR]\[at]SuppressWarnings\f[R] annotations. +\f[CR]\(atSuppressWarnings\f[R] annotations. .PP The groups are as follows: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]accessibility\f[R] \-\-\- Checks for issues related to accessibility. For example, no \f[CR]alt\f[R] attribute specified in an @@ -1347,7 +1291,7 @@ For reference, see the \f[B]Web Content Accessibility Guidelines\f[R] [https://www.w3.org/WAI/standards\-guidelines/wcag/]. .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]html\f[R] \-\-\- Detects common high\-level HTML issues. For example, putting block elements inside inline elements, or not closing elements that require an end tag. @@ -1360,11 +1304,11 @@ For reference, see the \f[B]HTML Living Standard\f[R] [https://html.spec.whatwg.org/multipage/]. .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]missing\f[R] \-\-\- Checks for missing documentation comments or tags. For example, a missing comment on a class declaration, or a missing -\f[CR]\[at]param\f[R] or \f[CR]\[at]return\f[R] tag in the comment for a +\f[CR]\(atparam\f[R] or \f[CR]\(atreturn\f[R] tag in the comment for a method declaration. .RS 2 .PP @@ -1373,19 +1317,19 @@ validation tools that may be used to check the output generated by \f[CR]javadoc\f[R]. .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]reference\f[R] \-\-\- Checks for issues relating to the references to Java API elements from documentation comment tags. -For example, the reference in \f[CR]\[at]see\f[R] or -\f[CR]{\[at]link ...}\f[R] cannot be found, or a bad name is given for -\f[CR]\[at]param\f[R] or \f[CR]\[at]throws\f[R]. +For example, the reference in \f[CR]\(atsee\f[R] or +\f[CR]{\(atlink ...}\f[R] cannot be found, or a bad name is given for +\f[CR]\(atparam\f[R] or \f[CR]\(atthrows\f[R]. .RS 2 .PP Issues are typically reported as errors because while the issue may not cause problems in the generated files, the author has likely made a mistake that will lead to incorrect or unexpected documentation. .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]syntax\f[R] \-\-\- Checks for low\-level syntactic issues in documentation comments. For example, unescaped angle brackets (\f[CR]<\f[R] and \f[CR]>\f[R]) @@ -1397,10 +1341,10 @@ .RE .SS Suppressing Messages DocLint checks for and recognizes two strings that may be present in the -arguments for an \f[CR]\[at]SuppressWarnings\f[R] annotation. -.IP \[bu] 2 +arguments for an \f[CR]\(atSuppressWarnings\f[R] annotation. +.IP \(bu 2 \f[CR]doclint\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]doclint:\f[R]\f[I]LIST\f[R] .PP where \f[I]LIST\f[R] is a comma\-separated list of one or more of @@ -1412,36 +1356,36 @@ and \f[CR]javadoc\f[R]. (This is the same convention honored by the \f[CR]javac\f[R] \f[CR]\-Xlint\f[R] option and the corresponding names supported by -\f[CR]\[at]SuppressWarnings\f[R].) +\f[CR]\(atSuppressWarnings\f[R].) .PP The names in \f[I]LIST\f[R] can equivalently be specified in separate arguments of the annotation. For example, the following are equivalent: -.IP \[bu] 2 -\f[CR]\[at]SuppressWarnings(\[dq]doclint:accessibility,missing\[dq])\f[R] -.IP \[bu] 2 -\f[CR]\[at]SuppressWarnings(\[dq]doclint:accessibility\[dq], \[dq]doclint:missing\[dq])\f[R] +.IP \(bu 2 +\f[CR]\(atSuppressWarnings(\(dqdoclint:accessibility,missing\(dq)\f[R] +.IP \(bu 2 +\f[CR]\(atSuppressWarnings(\(dqdoclint:accessibility\(dq, \(dqdoclint:missing\(dq)\f[R] .PP When DocLint detects an issue in a documentation comment, it checks for -the presence of \f[CR]\[at]SuppressWarnings\f[R] on the associated +the presence of \f[CR]\(atSuppressWarnings\f[R] on the associated declaration and on all lexically enclosing declarations. The issue will be ignored if any such annotation is found containing the simple string \f[CR]doclint\f[R] or the longer form \f[CR]doclint:LIST\f[R] where \f[I]LIST\f[R] contains the name of the group for the issue. .PP -\f[I]Note:\f[R] as with other uses of \f[CR]\[at]SuppressWarnings\f[R], +\f[I]Note:\f[R] as with other uses of \f[CR]\(atSuppressWarnings\f[R], using the annotation on a module or package declaration only affects that declaration; it does not affect the contents of the module or package in other source files. .PP All messages related to an issue are suppressed by the presence of an -appropriate \f[CR]\[at]SuppressWarnings\f[R] annotation: this includes +appropriate \f[CR]\(atSuppressWarnings\f[R] annotation: this includes errors as well as warnings. .PP \f[I]Note:\f[R] It is only possible to \f[I]suppress\f[R] messages. -If an annotation of \f[CR]\[at]SuppressWarnings(\[dq]doclint\[dq])\f[R] -is given on a top\-level declaration, all DocLint messages for that +If an annotation of \f[CR]\(atSuppressWarnings(\(dqdoclint\(dq)\f[R] is +given on a top\-level declaration, all DocLint messages for that declaration and any enclosed declarations will be suppressed; it is not possible to selectively re\-enable messages for issues in enclosed declarations. @@ -1455,7 +1399,7 @@ .PP Although there is some overlap in functionality, the two mechanisms are different and each has its own strengths and weaknesses. -.IP \[bu] 2 +.IP \(bu 2 Downstream validation tools can check the end result of any generated documentation, as it will be seen by the end user. This includes content from all sources, including documentation @@ -1466,14 +1410,14 @@ However, when a problem is found in the generated pages, it can be harder to track down exactly where in the build pipeline the problem needs to be fixed. -.IP \[bu] 2 +.IP \(bu 2 DocLint checks the content of documentation comments, in source files. This makes it very easy to identify the exact position of any issues that may be found. DocLint can also detect some semantic errors in documentation comments that downstream tools cannot detect, such as missing comments, using an -\f[CR]\[at]return\f[R] tag in a method returning \f[CR]void\f[R], or an -\f[CR]\[at]param\f[R] tag describing a non\-existent parameter. +\f[CR]\(atreturn\f[R] tag in a method returning \f[CR]void\f[R], or an +\f[CR]\(atparam\f[R] tag describing a non\-existent parameter. But by its nature, DocLint cannot report on problems such as missing links, or errors in user\-provided custom taglets, or problems in the standard doclet itself. diff -Nru openjdk-25-25.0.3+9/debian/man/javap.1 openjdk-25-25.0.4+7/debian/man/javap.1 --- openjdk-25-25.0.3+9/debian/man/javap.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/javap.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JAVAP" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JAVAP" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME javap \- disassemble one or more class files .SH SYNOPSIS @@ -16,7 +16,6 @@ You can specify a class that can be found in the class path by its file name, URL, or by its fully qualified class name. .RS -.PP Examples: .RS .PP @@ -37,7 +36,7 @@ When no options are used, the \f[CR]javap\f[R] command prints the protected and public fields, and methods of the classes passed to it. .PP -The \f[CR]javap\f[R] command isn\[aq]t multirelease JAR aware. +The \f[CR]javap\f[R] command isn\(aqt multirelease JAR aware. Using the class path form of the command results in viewing the base entry in all JAR files, multirelease or not. Using the URL form, you can use the URL form of an argument to specify a @@ -106,7 +105,7 @@ Specifies the path that the \f[CR]javap\f[R] command uses to find user class files. It overrides the default or the \f[CR]CLASSPATH\f[R] environment -variable when it\[aq]s set. +variable when it\(aqs set. .TP \f[CR]\-bootclasspath\f[R] \f[I]path\f[R] Overrides the location of bootstrap class files. @@ -124,7 +123,6 @@ javap \-J\-Djava.security.manager \-J\-Djava.security.policy=MyPolicy MyClassName .EE -.PP See \f[I]Overview of Java Options\f[R] in \f[B]java\f[R]. .RE .SH JAVAP EXAMPLE @@ -138,11 +136,11 @@ public class HelloWorldFrame extends JFrame { - String message = \[dq]Hello World!\[dq]; + String message = \(dqHello World!\(dq; public HelloWorldFrame(){ setContentPane(new JPanel(){ - \[at]Override + \(atOverride protected void paintComponent(Graphics g) { g.drawString(message, 15, 30); } @@ -162,7 +160,7 @@ yields the following: .IP .EX -Compiled from \[dq]HelloWorldFrame.java\[dq] +Compiled from \(dqHelloWorldFrame.java\(dq public class HelloWorldFrame extends javax.swing.JFrame { java.lang.String message; public HelloWorldFrame(); @@ -174,14 +172,14 @@ yields the following: .IP .EX -Compiled from \[dq]HelloWorldFrame.java\[dq] +Compiled from \(dqHelloWorldFrame.java\(dq public class HelloWorldFrame extends javax.swing.JFrame { java.lang.String message; public HelloWorldFrame(); Code: 0: aload_0 - 1: invokespecial #1 // Method javax/swing/JFrame.\[dq]\[dq]:()V + 1: invokespecial #1 // Method javax/swing/JFrame.\(dq\(dq:()V 4: aload_0 5: ldc #2 // String Hello World! 7: putfield #3 // Field message:Ljava/lang/String; @@ -189,7 +187,7 @@ 11: new #4 // class HelloWorldFrame$1 14: dup 15: aload_0 - 16: invokespecial #5 // Method HelloWorldFrame$1.\[dq]\[dq]:(LHelloWorldFrame;)V + 16: invokespecial #5 // Method HelloWorldFrame$1.\(dq\(dq:(LHelloWorldFrame;)V 19: invokevirtual #6 // Method setContentPane:(Ljava/awt/Container;)V 22: aload_0 23: bipush 100 @@ -201,7 +199,7 @@ Code: 0: new #8 // class HelloWorldFrame 3: dup - 4: invokespecial #9 // Method \[dq]\[dq]:()V + 4: invokespecial #9 // Method \(dq\(dq:()V 7: astore_1 8: aload_1 9: iconst_1 diff -Nru openjdk-25-25.0.3+9/debian/man/jcmd.1 openjdk-25-25.0.4+7/debian/man/jcmd.1 --- openjdk-25-25.0.3+9/debian/man/jcmd.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jcmd.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JCMD" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JCMD" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jcmd \- send diagnostic command requests to a running Java Virtual Machine (JVM) @@ -42,15 +42,13 @@ If the JVM is in a docker process, you must use tools such as \f[CR]ps\f[R] to look up the PID. .RS -.PP \f[B]Note:\f[R] -.PP Using \f[CR]jcmd\f[R] without arguments is the same as using \f[CR]jcmd \-l\f[R]. .RE .TP \f[CR]\-h\f[R] -Displays the \f[CR]jcmd\f[R] utility\[aq]s command\-line help. +Displays the \f[CR]jcmd\f[R] utility\(aqs command\-line help. .SH DESCRIPTION The \f[CR]jcmd\f[R] utility is used to send diagnostic command requests to the JVM. @@ -68,9 +66,9 @@ .RE .PP If arguments contain spaces, then you must surround them with single or -double quotation marks (\f[CR]\[aq]\f[R] or \f[CR]\[dq]\f[R]). +double quotation marks (\f[CR]\(aq\f[R] or \f[CR]\(dq\f[R]). In addition, you must escape single or double quotation marks with a -backslash (\f[CR]\[rs]\f[R]) to prevent the operating system shell from +backslash (\f[CR]\(rs\f[R]) to prevent the operating system shell from processing quotation marks. Alternatively, you can surround these arguments with single quotation marks and then with double quotation marks (or with double quotation @@ -109,36 +107,44 @@ \f[CR]help\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]] For more information about a specific command. .RS -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]command name\f[R]: The name of the command for which we want help (STRING, no default value) -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-all\f[R]: (Optional) Show help for all commands (BOOLEAN, false) \&. .RE .TP +\f[CR]AOT.end_recording\f[R] +Ends an in\-progress AOT training and records the results to the file(s) +specified by \f[CR]\-XX:AOTConfiguration\f[R] and/or +\f[CR]\-XX:AOTCacheOutput\f[R]. +.RS +Impact: Low +\f[B]Note:\f[R] +The JVM must be started in AOT training mode using command\-line +arguments such as \f[CR]\-XX:AOTMode=record\f[R] or +\f[CR]\-XX:AOTCacheOutput=\f[R]. +The results of the AOT training can be an AOT configuration file, an AOT +cache file, or both. +.RE +.TP \f[CR]Compiler.CodeHeap_Analytics\f[R] [\f[I]function\f[R]] [\f[I]granularity\f[R]] Print CodeHeap analytics .RS -.PP Impact: Low: Depends on code heap size and content. Holds CodeCache_lock during analysis step, usually sub\-second duration. -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]function\f[R]: (Optional) Function to be performed (aggregate, UsedSpace, FreeSpace, MethodCount, MethodSpace, MethodAge, MethodNames, discard (STRING, all) -.IP \[bu] 2 +.IP \(bu 2 \f[I]granularity\f[R]: (Optional) Detail level \- smaller value \-> more detail (INT, 4096) .RE @@ -146,25 +152,21 @@ \f[CR]Compiler.codecache\f[R] Prints code cache layout and bounds. .RS -.PP Impact: Low .RE .TP \f[CR]Compiler.codelist\f[R] Prints all compiled methods in code cache that are alive. .RS -.PP Impact: Medium .RE .TP \f[CR]Compiler.directives_add\f[R] \f[I]arguments\f[R] Adds compiler directives from a file. .RS -.PP Impact: Low -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]filename\f[R]: The name of the directives file (STRING, no default value) .RE @@ -172,78 +174,64 @@ \f[CR]Compiler.directives_clear\f[R] Remove all compiler directives. .RS -.PP Impact: Low .RE .TP \f[CR]Compiler.directives_print\f[R] Prints all active compiler directives. .RS -.PP Impact: Low .RE .TP \f[CR]Compiler.directives_remove\f[R] Remove latest added compiler directive. .RS -.PP Impact: Low .RE .TP \f[CR]Compiler.memory\f[R] [\f[I]options\f[R]] Print compilation footprint .RS -.PP Impact: Medium: Pause time depends on number of compiled methods -.PP \f[B]Note:\f[R] -.PP The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-H\f[R]: (Optional) Human readable format (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-s\f[R]: (Optional) Minimum memory size (MEMORY SIZE, 0) .RE .TP \f[CR]Compiler.perfmap\f[R] [\f[I]arguments\f[R]] (Linux only) Write map file for Linux perf tool. .RS -.PP Impact: Low -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]filename\f[R]: (Optional) The name of the map file. -If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. -(FILE, \[dq]/tmp/perf\-%p.map\[dq]) +If %p is specified in the filename, it is expanded to the JVM\(aqs PID. +(FILE, \(dq/tmp/perf\-%p.map\(dq) .RE .TP \f[CR]Compiler.queue\f[R] Prints methods queued for compilation. .RS -.PP Impact: Low .RE .TP \f[CR]GC.class_histogram\f[R] [\f[I]options\f[R]] Provides statistics about the Java heap usage. .RS -.PP Impact: High \-\-\- depends on Java heap size and content. -.PP \f[B]Note:\f[R] -.PP The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-all\f[R]: (Optional) Inspects all objects, including unreachable objects (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-parallel\f[R]: (Optional) Number of parallel threads to use for heap inspection. 0 (the default) means let the VM determine the number of threads to use. @@ -256,87 +244,74 @@ \f[CR]GC.finalizer_info\f[R] Provides information about the Java finalization queue. .RS -.PP Impact: Medium .RE .TP \f[CR]GC.heap_dump\f[R] [\f[I]options\f[R]] \f[I]filename\f[R] Generates a HPROF format dump of the Java heap. .RS -.PP Impact: High \-\-\- depends on the Java heap size and content. Request a full GC unless the \f[CR]\-all\f[R] option is specified. -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-all\f[R]: (Optional) Dump all objects, including unreachable objects (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-gz\f[R]: (Optional) If specified, the heap dump is written in gzipped format using the given compression level. 1 (recommended) is the fastest, 9 the strongest compression. (INT, 1) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-overwrite\f[R]: (Optional) If specified, the dump file will be overwritten if it exists (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-parallel\f[R]: (Optional) Number of parallel threads to use for heap dump. The VM will try to use the specified number of threads, but might use fewer. (INT, 1) -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]filename\f[R]: The name of the dump file. -If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +If %p is specified in the filename, it is expanded to the JVM\(aqs PID. (FILE, no default value) .RE .TP \f[CR]GC.heap_info\f[R] Provides generic Java heap information. .RS -.PP Impact: Medium .RE .TP \f[CR]GC.run\f[R] Calls \f[CR]java.lang.System.gc()\f[R]. .RS -.PP Impact: Medium \-\-\- depends on the Java heap size and content. .RE .TP \f[CR]GC.run_finalization\f[R] Calls \f[CR]java.lang.System.runFinalization()\f[R]. .RS -.PP Impact: Medium \-\-\- depends on the Java content. .RE .TP \f[CR]JFR.check\f[R] [\f[I]options\f[R]] Show information about a running flight recording .RS -.PP Impact: Low -.PP \f[B]Note:\f[R] -.PP The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. If no parameters are entered, information for all active recordings is shown. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]name\f[R]: (Optional) Name of the flight recording. (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]verbose\f[R]: (Optional) Flag for printing the event settings for the recording (BOOLEAN, false) .RE @@ -344,48 +319,43 @@ \f[CR]JFR.configure\f[R] [\f[I]options\f[R]] Set the parameters for a flight recording .RS -.PP Impact: Low -.PP \f[B]Note:\f[R] -.PP The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. If no parameters are entered, the current settings are displayed. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]dumppath\f[R]: (Optional) Path to the location where a recording file is written in case the VM runs into a critical error, such as a system crash. (STRING, The default location is the current directory) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]globalbuffercount\f[R]: (Optional) Number of global buffers. This option is a legacy option: change the \f[CR]memorysize\f[R] parameter to alter the number of global buffers. This value cannot be changed once JFR has been initialized. (STRING, default determined by the value for \f[CR]memorysize\f[R]) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]globalbuffersize\f[R]: (Optional) Size of the global buffers, in bytes. This option is a legacy option: change the \f[CR]memorysize\f[R] parameter to alter the size of the global buffers. This value cannot be changed once JFR has been initialized. (STRING, default determined by the value for \f[CR]memorysize\f[R]) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]maxchunksize\f[R]: (Optional) Maximum size of an individual data -chunk in bytes if one of the following suffixes is not used: \[aq]m\[aq] -or \[aq]M\[aq] for megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for -gigabytes. +chunk in bytes if one of the following suffixes is not used: \(aqm\(aq +or \(aqM\(aq for megabytes OR \(aqg\(aq or \(aqG\(aq for gigabytes. This value cannot be changed once JFR has been initialized. (STRING, 12M) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]memorysize\f[R]: (Optional) Overall memory size, in bytes if one -of the following suffixes is not used: \[aq]m\[aq] or \[aq]M\[aq] for -megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for gigabytes. +of the following suffixes is not used: \(aqm\(aq or \(aqM\(aq for +megabytes OR \(aqg\(aq or \(aqG\(aq for gigabytes. This value cannot be changed once JFR has been initialized. (STRING, 10M) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]repositorypath\f[R]: (Optional) Path to the location where recordings are stored until they are written to a permanent file. (STRING, The default location is the temporary directory for the @@ -393,28 +363,27 @@ On Linux operating systems, the temporary directory is \f[CR]/tmp\f[R]. On Windwows, the temporary directory is specified by the \f[CR]TMP\f[R] environment variable.) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]preserve\-repository=\f[R]{\f[CR]true\f[R]|\f[CR]false\f[R]} : Specifies whether files stored in the disk repository should be kept after the JVM has exited. If false, files are deleted. By default, this parameter is disabled. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]stackdepth\f[R]: (Optional) Stack depth for stack traces. Setting this value greater than the default of 64 may cause a performance degradation. This value cannot be changed once JFR has been initialized. (LONG, 64) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]thread_buffer_size\f[R]: (Optional) Local buffer size for each -thread in bytes if one of the following suffixes is not used: -\[aq]k\[aq] or \[aq]K\[aq] for kilobytes or \[aq]m\[aq] or \[aq]M\[aq] -for megabytes. +thread in bytes if one of the following suffixes is not used: \(aqk\(aq +or \(aqK\(aq for kilobytes or \(aqm\(aq or \(aqM\(aq for megabytes. Overriding this parameter could reduce performance and is not recommended. This value cannot be changed once JFR has been initialized. (STRING, 8k) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]samplethreads\f[R]: (Optional) Flag for activating thread sampling. (BOOLEAN, true) @@ -423,23 +392,19 @@ \f[CR]JFR.dump\f[R] [\f[I]options\f[R]] Write data to a file while a flight recording is running .RS -.PP Impact: Low -.PP \f[B]Note:\f[R] -.PP The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. No options are required. The recording continues to run after the data is written. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]begin\f[R]: (Optional) Specify the time from which recording data will be included in the dump file. The format is specified as local time. (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]end\f[R]: (Optional) Specify the time to which recording data will be included in the dump file. The format is specified as local time. @@ -451,44 +416,44 @@ java.time.LocalTime::parse(STRING), java.time.LocalDateTime::parse(STRING) or java.time.Instant::parse(STRING). -For example, \[dq]13:20:15\[dq], \[dq]2020\-03\-17T09:00:00\[dq] or -\[dq]2020\-03\-17T09:00:00Z\[dq]. +For example, \(dq13:20:15\(dq, \(dq2020\-03\-17T09:00:00\(dq or +\(dq2020\-03\-17T09:00:00Z\(dq. .PP \f[B]Note:\f[R] \f[CR]begin\f[R] and \f[CR]end\f[R] times correspond to the timestamps found within the recorded information in the flight recording data. .PP Another option is to use a time relative to the current time that is -specified by a negative integer followed by \[dq]s\[dq], \[dq]m\[dq] or -\[dq]h\[dq]. -For example, \[dq]\-12h\[dq], \[dq]\-15m\[dq] or \[dq]\-30s\[dq] +specified by a negative integer followed by \(dqs\(dq, \(dqm\(dq or +\(dqh\(dq. +For example, \(dq\-12h\(dq, \(dq\-15m\(dq or \(dq\-30s\(dq .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]filename\f[R]: (Optional) Name of the file to which the flight recording data is dumped. If no filename is given, a filename is generated from the PID and the current date. The filename may also be a directory in which case, the filename is generated from the PID and the current date in the specified directory. -If %p and/or %t is specified in the filename, it expands to the -JVM\[aq]s PID and the current timestamp, respectively. +If %p and/or %t is specified in the filename, it expands to the JVM\(aqs +PID and the current timestamp, respectively. (FILE, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]maxage\f[R]: (Optional) Length of time for dumping the flight recording data to a file. -(INTEGER followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for minutes or -\[aq]h\[aq] for hours, no default value) -.IP \[bu] 2 +(INTEGER followed by \(aqs\(aq for seconds \(aqm\(aq for minutes or +\(aqh\(aq for hours, no default value) +.IP \(bu 2 \f[CR]maxsize\f[R]: (Optional) Maximum size for the amount of data to dump from a flight recording in bytes if one of the following suffixes -is not used: \[aq]m\[aq] or \[aq]M\[aq] for megabytes OR \[aq]g\[aq] or -\[aq]G\[aq] for gigabytes. +is not used: \(aqm\(aq or \(aqM\(aq for megabytes OR \(aqg\(aq or +\(aqG\(aq for gigabytes. (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]name\f[R]: (Optional) Name of the recording. If no name is given, data from all recordings is dumped. (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]path\-to\-gc\-roots\f[R]: (Optional) Flag for saving the path to garbage collection (GC) roots at the time the recording data is dumped. The path information is useful for finding memory leaks but collecting @@ -501,38 +466,34 @@ \f[CR]JFR.start\f[R] [\f[I]options\f[R]] Start a flight recording .RS -.PP Impact: Low -.PP \f[B]Note:\f[R] -.PP The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. If no parameters are entered, then a recording is started with default values. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]delay\f[R]: (Optional) Length of time to wait before starting to -record (INTEGER followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for -minutes or \[aq]h\[aq] for hours, 0s) -.IP \[bu] 2 +record (INTEGER followed by \(aqs\(aq for seconds \(aqm\(aq for minutes +or \(aqh\(aq for hours, 0s) +.IP \(bu 2 \f[CR]disk\f[R]: (Optional) Flag for also writing the data to disk while recording (BOOLEAN, true) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]dumponexit\f[R]: (Optional) Flag for writing the recording to disk when the Java Virtual Machine (JVM) shuts down. -If set to \[aq]true\[aq] and no value is given for \f[CR]filename\f[R], +If set to \(aqtrue\(aq and no value is given for \f[CR]filename\f[R], the recording is written to a file in the directory where the process was started. The file name is a system\-generated name that contains the process ID, the recording ID and the current time stamp. (For example: \f[CR]id\-1\-2019_12_12_10_41.jfr\f[R]) (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]duration\f[R]: (Optional) Length of time to record. -Note that \f[CR]0s\f[R] means forever (INTEGER followed by \[aq]s\[aq] -for seconds \[aq]m\[aq] for minutes or \[aq]h\[aq] for hours, 0s) -.IP \[bu] 2 +Note that \f[CR]0s\f[R] means forever (INTEGER followed by \(aqs\(aq for +seconds \(aqm\(aq for minutes or \(aqh\(aq for hours, 0s) +.IP \(bu 2 \f[CR]filename\f[R]: (Optional) Name of the file to which the flight recording data is written when the recording is stopped. If no filename is given, a filename is generated from the PID and the @@ -540,74 +501,72 @@ started. The filename may also be a directory in which case, the filename is generated from the PID and the current date in the specified directory. -If %p and/or %t is specified in the filename, it expands to the -JVM\[aq]s PID and the current timestamp, respectively. +If %p and/or %t is specified in the filename, it expands to the JVM\(aqs +PID and the current timestamp, respectively. (FILE, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]maxage\f[R]: (Optional) Maximum time to keep the recorded data on disk. This parameter is valid only when the \f[CR]disk\f[R] parameter is set to \f[CR]true\f[R]. Note \f[CR]0s\f[R] means forever. -(INTEGER followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for minutes or -\[aq]h\[aq] for hours, 0s) -.IP \[bu] 2 +(INTEGER followed by \(aqs\(aq for seconds \(aqm\(aq for minutes or +\(aqh\(aq for hours, 0s) +.IP \(bu 2 \f[CR]maxsize\f[R]: (Optional) Maximum size of the data to keep on disk -in bytes if one of the following suffixes is not used: \[aq]m\[aq] or -\[aq]M\[aq] for megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for gigabytes. +in bytes if one of the following suffixes is not used: \(aqm\(aq or +\(aqM\(aq for megabytes OR \(aqg\(aq or \(aqG\(aq for gigabytes. This parameter is valid only when the \f[CR]disk\f[R] parameter is set -to \[aq]true\[aq]. +to \(aqtrue\(aq. The value must not be less than the value for the \f[CR]maxchunksize\f[R] parameter set with the \f[CR]JFR.configure\f[R] command. (STRING, 0 (no maximum size)) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]name\f[R]: (Optional) Name of the recording. If no name is provided, a name is generated. Make note of the generated name that is shown in the response to the command so that you can use it with other commands. (STRING, system\-generated default name) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]path\-to\-gc\-roots\f[R]: (Optional) Flag for saving the path to garbage collection (GC) roots at the end of a recording. The path information is useful for finding memory leaks but collecting it is time consuming. Turn on this flag only when you have an application that you suspect has a memory leak. -If the \f[CR]settings\f[R] parameter is set to \[aq]profile\[aq], then -the information collected includes the stack trace from where the -potential leaking object was allocated. +If the \f[CR]settings\f[R] parameter is set to \(aqprofile\(aq, then the +information collected includes the stack trace from where the potential +leaking object was allocated. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]settings\f[R]: (Optional) Name of the settings file that identifies which events to record. To specify more than one file, separate the names with a comma -(\[aq],\[aq]). +(\(aq,\(aq). Include the path if the file is not in \f[CR]JAVA\-HOME\f[R]/lib/jfr. The following profiles are included with the JDK in the -\f[CR]JAVA\-HOME\f[R]/lib/jfr directory: \[aq]default.jfc\[aq]: collects -a predefined set of information with low overhead, so it has minimal +\f[CR]JAVA\-HOME\f[R]/lib/jfr directory: \(aqdefault.jfc\(aq: collects a +predefined set of information with low overhead, so it has minimal impact on performance and can be used with recordings that run -continuously; \[aq]profile.jfc\[aq]: Provides more data than the -\[aq]default.jfc\[aq] profile, but with more overhead and impact on +continuously; \(aqprofile.jfc\(aq: Provides more data than the +\(aqdefault.jfc\(aq profile, but with more overhead and impact on performance. Use this configuration for short periods of time when more information is needed. Use \f[CR]none\f[R] to start a recording without a predefined configuration file. (STRING, \f[CR]JAVA\-HOME\f[R]/lib/jfr/default.jfc) -.PP Event settings and .jfc options can be specified using the following syntax: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]option\f[R]: (Optional) Specifies the option value to modify. To list available options, use the \f[CR]JAVA_HOME\f[R]/bin/jfr tool. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]event\-setting\f[R]: (Optional) Specifies the event setting value to modify. Use the form: \f[CR]#=\f[R] To add a -new event setting, prefix the event name with \[aq]+\[aq]. -.PP +new event setting, prefix the event name with \(aq+\(aq. You can specify values for multiple event settings and .jfc options by separating them with a whitespace. In case of a conflict between a parameter and a .jfc option, the @@ -621,24 +580,20 @@ \f[CR]JFR.stop\f[R] [\f[I]options\f[R]] Stop a flight recording .RS -.PP Impact: Low -.PP \f[B]Note:\f[R] -.PP The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. If no parameters are entered, then no recording is stopped. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]filename\f[R]: (Optional) Name of the file to which the recording is written when the recording is stopped. -If %p and/or %t is specified in the filename, it expands to the -JVM\[aq]s PID and the current timestamp, respectively. +If %p and/or %t is specified in the filename, it expands to the JVM\(aqs +PID and the current timestamp, respectively. If no path is provided, the data from the recording is discarded. (FILE, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]name\f[R]: (Optional) Name of the recording (STRING, no default value) .RE @@ -646,47 +601,41 @@ \f[CR]JFR.view\f[R] [\f[I]options\f[R]] Display event data in predefined views. .RS -.PP Impact: Medium -.PP \f[B]Note:\f[R] -.PP The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. If no parameters are entered, then a list of available views are displayed. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]cell\-height\f[R]: (Optional) Maximum number of rows in a table cell. (INT, default value depends on the view) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]maxage\f[R]: (Optional) Length of time for the view to span. -(INT followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for minutes or -\[aq]h\[aq] for hours, default value is 10m) -.IP \[bu] 2 +(INT followed by \(aqs\(aq for seconds \(aqm\(aq for minutes or +\(aqh\(aq for hours, default value is 10m) +.IP \(bu 2 \f[CR]maxsize\f[R]: (Optional) Maximum size for the view to span in -bytes if one of the following suffixes is not used: \[aq]m\[aq] or -\[aq]M\[aq] for megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for gigabytes. +bytes if one of the following suffixes is not used: \(aqm\(aq or +\(aqM\(aq for megabytes OR \(aqg\(aq or \(aqG\(aq for gigabytes. (STRING, default value is 32MB) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]truncate\f[R]: (Optional) Maximum number of rows in a table cell. (INT, default value depends on the view) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]verbose\f[R]: (Optional) Displays the query that makes up the view. (BOOLEAN, default value is false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]width\f[R]: (Optional) The width of the view in characters. (INT, default value depends on the view) -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]view\f[R]: Name of the view or event type to display. Use \f[CR]help JFR.view\f[R] to see a list of available views. (STRING, no default value) -.PP The view parameter can be an event type name. Use \f[CR]JFR.view types\f[R] to see a list. To display all views, use \f[CR]JFR.view all\-views\f[R]. @@ -696,14 +645,12 @@ \f[CR]JVMTI.agent_load\f[R] [\f[I]arguments\f[R]] Loads JVMTI native agent. .RS -.PP Impact: Low -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]library path\f[R]: Absolute path of the JVMTI agent to load. (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[I]agent option\f[R]: (Optional) Option string to pass the agent. (STRING, no default value) .RE @@ -711,96 +658,91 @@ \f[CR]JVMTI.data_dump\f[R] Signal the JVM to do a data\-dump request for JVMTI. .RS -.PP Impact: High .RE .TP \f[CR]ManagementAgent.start\f[R] [\f[I]options\f[R]] Starts remote management agent. .RS -.PP Impact: Low \-\-\- no impact -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]config.file\f[R]: (Optional) Sets \f[CR]com.sun.management.config.file\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.host\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote.host\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.port\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote.port\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.rmi.port\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote.rmi.port\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.ssl\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote.ssl\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.registry.ssl\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote.registry.ssl\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.authenticate\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote.authenticate\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 jmxremote.password.file: (Optional) Sets \f[CR]com.sun.management.jmxremote.password.file\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.access.file\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote.acce ss.file\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.login.config\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote.log in.config\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.ssl.enabled.cipher.suites\f[R]: (Optional) Sets \f[CR]com.sun.management\f[R]. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.ssl.enabled.cipher.suite\f[R]: (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.ssl.enabled.protocols\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxr emote.ssl.enabled.protocols\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.ssl.need.client.auth\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxre mote.need.client.auth\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.ssl.config.file\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote. ssl_config_file\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmxremote.autodiscovery\f[R]: (Optional) Sets \f[CR]com.sun.management.jmxremote.au todiscovery\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jdp.port\f[R]: (Optional) Sets \f[CR]com.sun.management.jdp.port\f[R] (INT, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jdp.address\f[R]: (Optional) Sets \f[CR]com.sun.management.jdp.address\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jdp.source_addr\f[R]: (Optional) Sets \f[CR]com.sun.management.jdp.source_addr\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jdp.ttl\f[R]: (Optional) Sets \f[CR]com.sun.management.jdp.ttl\f[R] (INT, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jdp.pause\f[R]: (Optional) Sets \f[CR]com.sun.management.jdp.pause\f[R] (INT, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jdp.name\f[R]: (Optional) Sets \f[CR]com.sun.management.jdp.name\f[R] (STRING, no default value) .RE @@ -808,118 +750,96 @@ \f[CR]ManagementAgent.start_local\f[R] Starts the local management agent. .RS -.PP Impact: Low \-\-\- no impact .RE .TP \f[CR]ManagementAgent.status\f[R] Print the management agent status. .RS -.PP Impact: Low \-\-\- no impact .RE .TP \f[CR]ManagementAgent.stop\f[R] Stops the remote management agent. .RS -.PP Impact: Low \-\-\- no impact .RE .TP \f[CR]System.dump_map\f[R] [\f[I]options\f[R]] (Linux only) Dumps an annotated process memory map to an output file. .RS -.PP Impact: Low -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-H\f[R]: (Optional) Human readable format (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-F\f[R]: (Optional) File path. -If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. -(FILE, \[dq]vm_memory_map_%p.txt\[dq]) +If %p is specified in the filename, it is expanded to the JVM\(aqs PID. +(FILE, \(dqvm_memory_map_%p.txt\(dq) .RE .TP \f[CR]System.map\f[R] [\f[I]options\f[R]] (Linux only) Prints an annotated process memory map of the VM process. .RS -.PP Impact: Low -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-H\f[R]: (Optional) Human readable format (BOOLEAN, false) .RE .TP \f[CR]System.native_heap_info\f[R] (Linux only) Attempts to output information regarding native heap usage through malloc_info(3). -If unsuccessful outputs \[dq]Error: \[dq] and a reason. +If unsuccessful outputs \(dqError: \(dq and a reason. .RS -.PP Impact: Low .RE .TP \f[CR]System.trim_native_heap\f[R] (Linux only) Attempts to free up memory by trimming the C\-heap. .RS -.PP Impact: Low .RE .TP \f[CR]Thread.dump_to_file\f[R] [\f[I]options\f[R]] \f[I]filepath\f[R] Dump threads, with stack traces, to a file in plain text or JSON format. .RS -.PP Impact: Medium: Depends on the number of threads. -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-overwrite\f[R]: (Optional) May overwrite existing file (BOOLEAN, false) -.IP \[bu] 2 -\f[CR]\-format\f[R]: (Optional) Output format (\[dq]plain\[dq] or -\[dq]json\[dq]) (STRING, plain) -.PP +.IP \(bu 2 +\f[CR]\-format\f[R]: (Optional) Output format (\(dqplain\(dq or +\(dqjson\(dq) (STRING, plain) \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]filepath\f[R]: The file path to the output file. -If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +If %p is specified in the filename, it is expanded to the JVM\(aqs PID. (FILE, no default value) .RE .TP \f[CR]Thread.print\f[R] [\f[I]options\f[R]] Prints all threads with stacktraces. .RS -.PP Impact: Medium \-\-\- depends on the number of threads. -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-e\f[R]: (Optional) Print extended thread information (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-l\f[R]: (Optional) Prints \f[CR]java.util.concurrent\f[R] locks (BOOLEAN, false) .RE @@ -928,7 +848,6 @@ Print the virtual thread scheduler, and the delayed task schedulers that support virtual threads doing timed operations. .RS -.PP Impact: Low .RE .TP @@ -936,7 +855,6 @@ Print the I/O pollers that support virtual threads doing blocking network I/O operations. .RS -.PP Impact: Low .RE .TP @@ -944,18 +862,15 @@ Dump a static or dynamic shared archive that includes all currently loaded classes. .RS -.PP Impact: Medium \-\-\- pause time depends on number of loaded classes -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]subcmd\f[R]: must be either \f[CR]static_dump\f[R] or \f[CR]dynamic_dump\f[R] (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[I]filename\f[R]: (Optional) Name of the shared archive to be dumped. -If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. -(FILE, \[dq]java_pid%p_.jsa\[dq]) -.PP +If %p is specified in the filename, it is expanded to the JVM\(aqs PID. +(FILE, \(dqjava_pid%p_.jsa\(dq) If \f[CR]dynamic_dump\f[R] is specified, the target JVM must be started with the JVM option \f[CR]\-XX:+RecordDynamicDumpInfo\f[R]. .RE @@ -964,29 +879,24 @@ Print a list of all loaded classes, indented to show the class hierarchy. The name of each class is followed by the ClassLoaderData* of its -ClassLoader, or \[dq]null\[dq] if it is loaded by the bootstrap class +ClassLoader, or \(dqnull\(dq if it is loaded by the bootstrap class loader. .RS -.PP Impact: Medium \-\-\- depends on the number of loaded classes. -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-i\f[R]: (Optional) Inherited interfaces should be printed. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-s\f[R]: (Optional) If a classname is specified, print its subclasses in addition to its superclasses. Without this option only the superclasses will be printed. (BOOLEAN, false) -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]classname\f[R]: (Optional) The name of the class whose hierarchy should be printed. If not specified, all class hierarchies are printed. @@ -996,48 +906,41 @@ \f[CR]VM.classes\f[R] [\f[I]options\f[R]] Print all loaded classes .RS -.PP Impact: Medium: Depends on number of loaded classes. -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-verbose\f[R]: (Optional) Dump the detailed content of a Java class. Some classes are annotated with flags: \f[CR]F\f[R] = has, or inherits, a non\-empty finalize method, \f[CR]f\f[R] = has final method, \f[CR]W\f[R] = methods rewritten, \f[CR]C\f[R] = marked with -\f[CR]\[at]Contended\f[R] annotation, \f[CR]R\f[R] = has been redefined, +\f[CR]\(atContended\f[R] annotation, \f[CR]R\f[R] = has been redefined, \f[CR]S\f[R] = is shared class (BOOLEAN, false) .RE .TP \f[CR]VM.classloader_stats\f[R] Print statistics about all ClassLoaders. .RS -.PP Impact: Low .RE .TP \f[CR]VM.classloaders\f[R] [\f[I]options\f[R]] Prints classloader hierarchy. .RS -.PP Impact: Medium \-\-\- Depends on number of class loaders and classes loaded. -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]show\-classes\f[R]: (Optional) Print loaded classes. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]verbose\f[R]: (Optional) Print detailed information. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]fold\f[R]: (Optional) Show loaders of the same name and class as one. (BOOLEAN, true) @@ -1046,34 +949,28 @@ \f[CR]VM.command_line\f[R] Print the command line used to start this VM instance. .RS -.PP Impact: Low .RE .TP \f[CR]VM.dynlibs\f[R] Print loaded dynamic libraries. .RS -.PP Impact: Low .RE .TP \f[CR]VM.events\f[R] [\f[I]options\f[R]] Print VM event logs .RS -.PP Impact: Low \-\-\- Depends on event log size. -.PP \f[I]options\f[R]: -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]log\f[R]: (Optional) Name of log to be printed. If omitted, all logs are printed. (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]max\f[R]: (Optional) Maximum number of events to be printed (newest first). If omitted or zero, all events are printed. @@ -1083,16 +980,12 @@ \f[CR]VM.flags\f[R] [\f[I]options\f[R]] Print the VM flag options and their current values. .RS -.PP Impact: Low -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-all\f[R]: (Optional) Prints all flags supported by the VM (BOOLEAN, false). .RE @@ -1100,7 +993,6 @@ \f[CR]VM.info\f[R] Print information about the JVM environment and status. .RS -.PP Impact: Low .RE .TP @@ -1108,37 +1000,33 @@ Lists current log configuration, enables/disables/configures a log output, or rotates all logs. .RS -.PP Impact: Low -.PP \f[I]options\f[R]: -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]output\f[R]: (Optional) The name or index (#) of output to configure. (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]output_options\f[R]: (Optional) Options for the output. (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]what\f[R]: (Optional) Configures what tags to log. (STRING, no default value ) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]decorators\f[R]: (Optional) Configures which decorators to use. -Use \[aq]none\[aq] or an empty value to remove all. +Use \(aqnone\(aq or an empty value to remove all. (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]disable\f[R]: (Optional) Turns off all logging and clears the log configuration. (BOOLEAN, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]list\f[R]: (Optional) Lists current log configuration. (BOOLEAN, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]rotate\f[R]: (Optional) Rotates all logs. (BOOLEAN, no default value) .RE @@ -1146,86 +1034,78 @@ \f[CR]VM.metaspace\f[R] [\f[I]options\f[R]] Prints the statistics for the metaspace .RS -.PP Impact: Medium \-\-\- Depends on number of classes loaded. -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]basic\f[R]: (Optional) Prints a basic summary (does not need a safepoint). (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]show\-loaders\f[R]: (Optional) Shows usage by class loader. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]show\-classes\f[R]: (Optional) If show\-loaders is set, shows loaded classes for each loader. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]by\-chunktype\f[R]: (Optional) Break down numbers by chunk type. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]by\-spacetype\f[R]: (Optional) Break down numbers by loader type. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]vslist\f[R]: (Optional) Shows details about the underlying virtual space. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]chunkfreelist\f[R]: (Optional) Shows details about global chunk free lists (ChunkManager). (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]scale\f[R]: (Optional) Memory usage in which to scale. -Valid values are: 1, KB, MB or GB (fixed scale) or \[dq]dynamic\[dq] for -a dynamically chosen scale. +Valid values are: 1, KB, MB or GB (fixed scale) or \(dqdynamic\(dq for a +dynamically chosen scale. (STRING, dynamic) .RE .TP \f[CR]VM.native_memory\f[R] [\f[I]options\f[R]] Print native memory usage .RS -.PP Impact: Medium -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]summary\f[R]: (Optional) Requests runtime to report current memory summary, which includes total reserved and committed memory, along with memory usage summary by each subsystem. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]detail\f[R]: (Optional) Requests runtime to report memory allocation >= 1K by each callsite. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]baseline\f[R]: (Optional) Requests runtime to baseline current memory usage, so it can be compared against in later time. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]summary.diff\f[R]: (Optional) Requests runtime to report memory summary comparison against previous baseline. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]detail.diff\f[R]: (Optional) Requests runtime to report memory detail comparison against previous baseline, which shows the memory allocation activities at different callsites. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]statistics\f[R]: (Optional) Prints tracker statistics for tuning purpose. (BOOLEAN, false) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]scale\f[R]: (Optional) Memory usage in which scale, KB, MB or GB (STRING, KB) .RE @@ -1233,14 +1113,12 @@ \f[CR]VM.set_flag\f[R] [\f[I]arguments\f[R]] Sets VM flag option using the provided value. .RS -.PP Impact: Low -.PP \f[I]arguments\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[I]flag name\f[R]: The name of the flag that you want to set (STRING, no default value) -.IP \[bu] 2 +.IP \(bu 2 \f[I]string value\f[R]: (Optional) The value that you want to set (STRING, no default value) .RE @@ -1248,16 +1126,12 @@ \f[CR]VM.stringtable\f[R] [\f[I]options\f[R]] Dump string table. .RS -.PP Impact: Medium \-\-\- depends on the Java content. -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-verbose\f[R]: (Optional) Dumps the content of each string in the table (BOOLEAN, false) .RE @@ -1265,16 +1139,12 @@ \f[CR]VM.symboltable\f[R] [\f[I]options\f[R]] Dump symbol table. .RS -.PP Impact: Medium \-\-\- depends on the Java content. -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax). -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-verbose\f[R]: (Optional) Dumps the content of each symbol in the table (BOOLEAN, false) .RE @@ -1282,23 +1152,18 @@ \f[CR]VM.system_properties\f[R] Print system properties. .RS -.PP Impact: Low .RE .TP \f[CR]VM.systemdictionary\f[R] Prints the statistics for dictionary hashtable sizes and bucket length. .RS -.PP Impact: Medium -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]verbose\f[R]: (Optional) Dump the content of each dictionary entry for all class loaders (BOOLEAN, false) . .RE @@ -1306,16 +1171,12 @@ \f[CR]VM.uptime\f[R] [\f[I]options\f[R]] Print VM uptime. .RS -.PP Impact: Low -.PP \f[B]Note:\f[R] -.PP The following \f[I]options\f[R] must be specified using either \f[I]key\f[R] or \f[I]key\f[R]\f[CR]=\f[R]\f[I]value\f[R] syntax. -.PP \f[I]options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-date\f[R]: (Optional) Adds a prefix with the current date (BOOLEAN, false) .RE @@ -1323,6 +1184,5 @@ \f[CR]VM.version\f[R] Print JVM version information. .RS -.PP Impact: Low .RE diff -Nru openjdk-25-25.0.3+9/debian/man/jconsole.1 openjdk-25-25.0.4+7/debian/man/jconsole.1 --- openjdk-25-25.0.3+9/debian/man/jconsole.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jconsole.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JCONSOLE" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JCONSOLE" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jconsole \- start a graphical console to monitor and manage Java applications @@ -17,7 +17,7 @@ Sets the update interval to \f[CR]n\f[R] seconds (default is 4 seconds). .TP \f[CR]\-notile\f[R] -Doesn\[aq]t tile the windows for two or more connections. +Doesn\(aqt tile the windows for two or more connections. .TP \f[CR]\-pluginpath\f[R] \f[I]path\f[R] Specifies the path that \f[CR]jconsole\f[R] uses to look up plug\-ins. @@ -35,16 +35,16 @@ A connection is described by either \f[I]pid\f[R], \f[I]host\f[R]\f[CR]:\f[R]\f[I]port\f[R] or \f[I]jmxURL\f[R]. .RS -.IP \[bu] 2 +.IP \(bu 2 The \f[I]pid\f[R] value is the process ID of a target process. The JVM must be running with the same user ID as the user ID running the \f[CR]jconsole\f[R] command. -.IP \[bu] 2 +.IP \(bu 2 The \f[I]host\f[R]\f[CR]:\f[R]\f[I]port\f[R] values are the name of the host system on which the JVM is running, and the port number specified by the system property \f[CR]com.sun.management.jmxremote.port\f[R] when the JVM was started. -.IP \[bu] 2 +.IP \(bu 2 The \f[I]jmxUrl\f[R] value is the address of the JMX agent to be connected to as described in JMXServiceURL. .RE @@ -60,7 +60,7 @@ lets you monitor and manage Java applications and virtual machines on a local or remote machine. .PP -On Windows, the \f[CR]jconsole\f[R] command doesn\[aq]t associate with a +On Windows, the \f[CR]jconsole\f[R] command doesn\(aqt associate with a console window. It does, however, display a dialog box with error information when the \f[CR]jconsole\f[R] command fails. diff -Nru openjdk-25-25.0.3+9/debian/man/jdb.1 openjdk-25-25.0.4+7/debian/man/jdb.1 --- openjdk-25-25.0.3+9/debian/man/jdb.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jdb.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JDB" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JDB" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jdb \- find and fix bugs in Java platform programs .SH SYNOPSIS @@ -30,7 +30,7 @@ the main class of the application to be debugged. Do this by substituting the \f[CR]jdb\f[R] command for the \f[CR]java\f[R] command in the command line. -For example, if your application\[aq]s main class is \f[CR]MyClass\f[R], +For example, if your application\(aqs main class is \f[CR]MyClass\f[R], then use the following command to debug it under the JDB: .RS .PP @@ -39,10 +39,10 @@ .PP When started this way, the \f[CR]jdb\f[R] command calls a second JVM with the specified parameters, loads the specified class, and stops the -JVM before executing that class\[aq]s first instruction. +JVM before executing that class\(aqs first instruction. .PP Another way to use the \f[CR]jdb\f[R] command is by attaching it to a -JVM that\[aq]s already running. +JVM that\(aqs already running. Syntax for starting a JVM to which the \f[CR]jdb\f[R] command attaches when the JVM is running is as follows. This loads in\-process debugging libraries and specifies the kind of @@ -61,9 +61,9 @@ .PP 8000 is the address of the running JVM. .PP -The \f[CR]MyClass\f[R] argument isn\[aq]t specified in the -\f[CR]jdb\f[R] command line in this case because the \f[CR]jdb\f[R] -command is connecting to an existing JVM instead of launching a new JVM. +The \f[CR]MyClass\f[R] argument isn\(aqt specified in the \f[CR]jdb\f[R] +command line in this case because the \f[CR]jdb\f[R] command is +connecting to an existing JVM instead of launching a new JVM. .PP There are many other ways to connect the debugger to a JVM, and all of them are supported by the \f[CR]jdb\f[R] command. @@ -72,14 +72,14 @@ .SH BREAKPOINTS Breakpoints can be set in the JDB at line numbers or at the first instruction of a method, for example: -.IP \[bu] 2 +.IP \(bu 2 The command \f[CR]stop at MyClass:22\f[R] sets a breakpoint at the first instruction for line 22 of the source file containing \f[CR]MyClass\f[R]. -.IP \[bu] 2 +.IP \(bu 2 The command \f[CR]stop in java.lang.String.length\f[R] sets a breakpoint at the beginning of the method \f[CR]java.lang.String.length\f[R]. -.IP \[bu] 2 +.IP \(bu 2 The command \f[CR]stop in MyClass.\f[R] uses \f[CR]\f[R] to identify the static initialization code for \f[CR]MyClass\f[R]. .PP @@ -95,12 +95,12 @@ The \f[CR]cont\f[R] command continues execution. .SH STEPPING The \f[CR]step\f[R] command advances execution to the next line whether -it\[aq]s in the current stack frame or a called method. +it\(aqs in the current stack frame or a called method. The \f[CR]next\f[R] command advances execution to the next line in the current stack frame. .SH EXCEPTIONS -When an exception occurs for which there isn\[aq]t a \f[CR]catch\f[R] -statement anywhere in the throwing thread\[aq]s call stack, the JVM +When an exception occurs for which there isn\(aqt a \f[CR]catch\f[R] +statement anywhere in the throwing thread\(aqs call stack, the JVM typically prints an exception trace and exits. When running under the JDB, however, control returns to the JDB at the offending throw. @@ -111,12 +111,12 @@ stop at other thrown exceptions, for example: \f[CR]catch java.io.FileNotFoundException\f[R] or \f[CR]catch\f[R] \f[CR]mypackage.BigTroubleException\f[R]. -Any exception that\[aq]s an instance of the specified class or subclass +Any exception that\(aqs an instance of the specified class or subclass stops the application at the point where the exception is thrown. .PP The \f[CR]ignore\f[R] command negates the effect of an earlier \f[CR]catch\f[R] command. -The \f[CR]ignore\f[R] command doesn\[aq]t cause the debugged JVM to +The \f[CR]ignore\f[R] command doesn\(aqt cause the debugged JVM to ignore specific exceptions, but only to ignore the debugger. .SH OPTIONS FOR THE JDB COMMAND When you use the \f[CR]jdb\f[R] command instead of the \f[CR]java\f[R] @@ -205,7 +205,7 @@ A nonstandard target JVM option. .PP Other options are supported to provide alternate mechanisms for -connecting the debugger to the JVM that it\[aq]s to debug. +connecting the debugger to the JVM that it\(aqs to debug. .SH WORKING WITH VIRTUAL THREADS Often virtual theads are created in such large numbers and frequency that they can overwhelm a debugger. @@ -225,7 +225,7 @@ be enabled to change this behavior so all known virtual threads will be included in the list. The JDB \f[CR]\-trackallthreads\f[R] option will cause JDB to -automatically enable the Debug Agent\[aq]s +automatically enable the Debug Agent\(aqs \f[CR]includevirtualthreads\f[R] option when JDB launches an application to debug. However, keep in mind that the Debug Agent may not know about any diff -Nru openjdk-25-25.0.3+9/debian/man/jdeprscan.1 openjdk-25-25.0.4+7/debian/man/jdeprscan.1 --- openjdk-25-25.0.3+9/debian/man/jdeprscan.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jdeprscan.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JDEPRSCAN" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JDEPRSCAN" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jdeprscan \- static analysis tool that scans a jar file (or some other aggregation of class files) for uses of deprecated API elements @@ -16,27 +16,21 @@ deprecated APIs. The arguments can be a: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[I]dir\f[R]: Directory -.IP \[bu] 2 +.IP \(bu 2 \f[I]jar\f[R]: JAR file -.IP \[bu] 2 +.IP \(bu 2 \f[I]class\f[R]: Class name or class file -.PP The class name should use a dot (\f[CR].\f[R]) as a separator. For example: -.PP \f[CR]java.lang.Thread\f[R] -.PP For nested classes, the dollar sign \f[CR]$\f[R] separator character should be used. For example: -.PP \f[CR]java.lang.Thread$State\f[R] -.PP A class file can also be named. For example: -.PP \f[CR]build/classes/java/lang/Thread$State.class\f[R] .RE .SH DESCRIPTION @@ -45,7 +39,7 @@ uses of deprecated API elements. The deprecated APIs identified by the \f[CR]jdeprscan\f[R] tool are only those that are defined by Java SE. -Deprecated APIs defined by third\-party libraries aren\[aq]t reported. +Deprecated APIs defined by third\-party libraries aren\(aqt reported. .PP To scan a JAR file or a set of class files, you must first ensure that all of the classes that the scanned classes depend upon are present in @@ -55,8 +49,8 @@ Typically, you would use the same class path as the one that you use when invoking your application. .PP -If the \f[CR]jdeprscan\f[R] can\[aq]t find all the dependent classes, it -will generate an error message for each class that\[aq]s missing. +If the \f[CR]jdeprscan\f[R] can\(aqt find all the dependent classes, it +will generate an error message for each class that\(aqs missing. These error messages are typically of the form: .RS .PP @@ -71,11 +65,10 @@ \f[CR]\-\-class\-path\f[R] \f[I]path\f[R] Provides a search path for resolution of dependent classes. .RS -.PP \f[I]path\f[R] can be a search path that consists of one or more directories separated by the system\-specific path separator. For example: -.IP \[bu] 2 +.IP \(bu 2 \f[B]Linux and macOS:\f[R] .RS 2 .RS @@ -83,24 +76,22 @@ \f[CR]\-\-class\-path /some/directory:/another/different/dir\f[R] .RE .RE -.PP \f[B]Note:\f[R] -.PP On Windows, use a semicolon (\f[CR];\f[R]) as the separator instead of a colon (\f[CR]:\f[R]). -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] .RS 2 .RS .PP -\f[CR]\-\-class\-path \[rs]some\[rs]directory;\[rs]another\[rs]different\[rs]dir\f[R] +\f[CR]\-\-class\-path \(rssome\(rsdirectory;\(rsanother\(rsdifferent\(rsdir\f[R] .RE .RE .RE .TP \f[CR]\-\-for\-removal\f[R] Limits scanning or listing to APIs that are deprecated for removal. -Can\[aq]t be used with a release value of 6, 7, or 8. +Can\(aqt be used with a release value of 6, 7, or 8. .TP \f[CR]\-\-full\-version\f[R] Prints out the full version string of the tool. diff -Nru openjdk-25-25.0.3+9/debian/man/jdeps.1 openjdk-25-25.0.4+7/debian/man/jdeps.1 --- openjdk-25-25.0.3+9/debian/man/jdeps.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jdeps.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JDEPS" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JDEPS" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jdeps \- launch the Java class dependency analyzer .SH SYNOPSIS @@ -10,13 +10,13 @@ Command\-line options. For detailed descriptions of the options that can be used, see .RS -.IP \[bu] 2 +.IP \(bu 2 \f[B]Possible Options\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Module Dependence Analysis Options\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Options to Filter Dependences\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Options to Filter Classes to be Analyzed\f[R] .RE .TP @@ -79,10 +79,9 @@ By default, this option analyzes all classes specified in the \f[CR]\-\-classpath\f[R] option and input files unless you specified the \f[CR]\-include\f[R] option. -You can\[aq]t use this option with the \f[CR]\-p\f[R], \f[CR]\-e\f[R], +You can\(aqt use this option with the \f[CR]\-p\f[R], \f[CR]\-e\f[R], and \f[CR]\-s\f[R] options. .RS -.PP \f[B]Warning\f[R]: The JDK internal APIs are inaccessible. .RE .TP @@ -106,7 +105,7 @@ \f[I]version\f[R] should be an integer >=9 or base. .TP \f[CR]\-q\f[R] or \f[CR]\-quiet\f[R] -Doesn\[aq]t show missing dependencies from +Doesn\(aqt show missing dependencies from \f[CR]\-generate\-module\-info\f[R] output. .TP \f[CR]\-version\f[R] or \f[CR]\-\-version\f[R] @@ -260,7 +259,7 @@ \f[B]Windows:\f[R] .IP .EX -C:\[rs]Java\[rs]jdk1.9.0>jdeps demo\[rs]jfc\[rs]Notepad\[rs]Notepad.jar +C:\(rsJava\(rsjdk1.9.0>jdeps demo\(rsjfc\(rsNotepad\(rsNotepad.jar Notepad.jar \-> java.base Notepad.jar \-> java.desktop Notepad.jar \-> java.logging diff -Nru openjdk-25-25.0.3+9/debian/man/jfr.1 openjdk-25-25.0.4+7/debian/man/jfr.1 --- openjdk-25-25.0.3+9/debian/man/jfr.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jfr.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JFR" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JFR" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jfr \- print and manipulate Flight Recorder files .SH SYNOPSIS @@ -62,21 +62,21 @@ helps developers to debug performance issues with Java applications. .SS Subcommands The \f[CR]jfr\f[R] command has several subcommands: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]print\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]view\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]configure\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]metadata\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]summary\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]scrub\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]assemble\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]disassemble\f[R] .SS \f[CR]jfr print\f[R] subcommand Use \f[CR]jfr print\f[R] to print the contents of a flight recording @@ -128,8 +128,8 @@ To reduce the amount of data displayed, it is possible to filter out events or categories of events. The filter operates on the symbolic name of an event, set by using the -\f[CR]\[at]Name\f[R] annotation, or the category name, set by using the -\f[CR]\[at]Category\f[R] annotation. +\f[CR]\(atName\f[R] annotation, or the category name, set by using the +\f[CR]\(atCategory\f[R] annotation. If multiple filters are used, events from both filters will be included. If no filter is used, all the events will be printed. If a combination of a category filter and event filter is used, the @@ -170,8 +170,8 @@ .TP \f[CR]\-\-truncate\f[R] <\f[I]mode\f[R]> How to truncate content that exceeds space in a table cell. -Mode can be \[aq]beginning\[aq] or \[aq]end\[aq]. -Default value is \[aq]end\[aq]. +Mode can be \(aqbeginning\(aq or \(aqend\(aq. +Default value is \(aqend\(aq. .TP \f[CR]\-\-cell\-height\f[R] <\f[I]integer\f[R]> Maximum number of rows in a table cell. @@ -208,7 +208,7 @@ is based. If no file is specified, the default file in the JDK is used (default.jfc). -If \[aq]none\[aq] is specified, the new configuration starts empty. +If \(aqnone\(aq is specified, the new configuration starts empty. .TP \f[CR]\-\-output\f[R] <\f[I]file\f[R]> The filename of the generated output file. @@ -222,7 +222,7 @@ The event setting value to modify. Use the form: <\f[I]event\-name\f[R]>#<\f[I]setting\-name\f[R]>=<\f[I]value\f[R]> To -add a new event setting, prefix the event name with \[aq]+\[aq]. +add a new event setting, prefix the event name with \(aq+\(aq. .PP The whitespace delimiter can be omitted for timespan values, i.e. 20ms. @@ -251,7 +251,7 @@ Location of the recording file (.jfr) .PP If the parameter is omitted, metadata from the JDK where the -\[aq]jfr\[aq] tool is located will be used. +\(aqjfr\(aq tool is located will be used. .SS \f[CR]jfr summary\f[R] subcommand Use \f[CR]jfr summary\f[R] to print statistics for a recording. For example, a summary can illustrate the number of recorded events and @@ -303,7 +303,7 @@ <\f[I]output\-file\f[R]> The output file to write filter events to. If no file is specified, it will be written to the same path as the -input file, but with \[dq]\-scrubbed\[dq] appended to the filename. +input file, but with \(dq\-scrubbed\(dq appended to the filename. .PP The filter is a comma\-separated list of names, simple and/or qualified, and/or quoted glob patterns. @@ -378,19 +378,19 @@ where: .PP [\f[I]subcommand\f[R]] is any of: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]print\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]view\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]configure\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]metadata\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]summary\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]scrub\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]assemble\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]disassemble\f[R] diff -Nru openjdk-25-25.0.3+9/debian/man/jhsdb.1 openjdk-25-25.0.4+7/debian/man/jhsdb.1 --- openjdk-25-25.0.3+9/debian/man/jhsdb.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jhsdb.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JHSDB" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JHSDB" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jhsdb \- attach to a Java process or launch a postmortem debugger to analyze the content of a core dump from a crashed Java Virtual Machine @@ -25,22 +25,22 @@ \f[CR]jhsdb\f[R] \f[CR]jstack\f[R] (\f[CR]\-\-pid\f[R] \f[I]pid\f[R] | \f[CR]\-\-exe\f[R] \f[I]executable\f[R] \f[CR]\-\-core\f[R] \f[I]coredump\f[R] | \f[CR]\-\-connect\f[R] -\f[I][server\-id\[at]]debugd\-host\f[R]) [\f[I]options\f[R]] +\f[I][server\-id\(at]debugd\-host\f[R]) [\f[I]options\f[R]] .PP \f[CR]jhsdb\f[R] \f[CR]jmap\f[R] (\f[CR]\-\-pid\f[R] \f[I]pid\f[R] | \f[CR]\-\-exe\f[R] \f[I]executable\f[R] \f[CR]\-\-core\f[R] \f[I]coredump\f[R] | \f[CR]\-\-connect\f[R] -\f[I][server\-id\[at]]debugd\-host\f[R]) [\f[I]options\f[R]] +\f[I][server\-id\(at]debugd\-host\f[R]) [\f[I]options\f[R]] .PP \f[CR]jhsdb\f[R] \f[CR]jinfo\f[R] (\f[CR]\-\-pid\f[R] \f[I]pid\f[R] | \f[CR]\-\-exe\f[R] \f[I]executable\f[R] \f[CR]\-\-core\f[R] \f[I]coredump\f[R] | \f[CR]\-\-connect\f[R] -\f[I][server\-id\[at]]debugd\-host\f[R]) [\f[I]options\f[R]] +\f[I][server\-id\(at]debugd\-host\f[R]) [\f[I]options\f[R]] .PP \f[CR]jhsdb\f[R] \f[CR]jsnap\f[R] (\f[CR]\-\-pid\f[R] \f[I]pid\f[R] | \f[CR]\-\-exe\f[R] \f[I]executable\f[R] \f[CR]\-\-core\f[R] \f[I]coredump\f[R] | \f[CR]\-\-connect\f[R] -\f[I][server\-id\[at]]debugd\-host\f[R]) [\f[I]options\f[R]] +\f[I][server\-id\(at]debugd\-host\f[R]) [\f[I]options\f[R]] .TP \f[I]pid\f[R] The process ID to which the \f[CR]jhsdb\f[R] tool should attach. @@ -55,7 +55,7 @@ \f[I]coredump\f[R] The core file to which the \f[CR]jhsdb\f[R] tool should attach. .TP -\f[I][server\-id\[at]]debugd\-host\f[R] +\f[I][server\-id\(at]debugd\-host\f[R] An optional server ID and the address of the remote debug server (debugd). .TP @@ -68,7 +68,7 @@ \f[B]Note:\f[R] .PP Either the \f[I]pid\f[R] or the pair of \f[I]executable\f[R] and -\f[I]core\f[R] files or the \f[I][server\-id\[at]]debugd\-host\f[R] must +\f[I]core\f[R] files or the \f[I][server\-id\(at]debugd\-host\f[R] must be provided for \f[CR]debugd\f[R], \f[CR]jstack\f[R], \f[CR]jmap\f[R], \f[CR]jinfo\f[R] and \f[CR]jsnap\f[R] modes. .SH DESCRIPTION @@ -122,7 +122,7 @@ \f[CR]\-\-registryport\f[R] \f[I]port\f[R] Sets the RMI registry port. This option overrides the system property -\[aq]sun.jvm.hotspot.rmi.port\[aq]. +\(aqsun.jvm.hotspot.rmi.port\(aq. If not specified, the system property is used. If the system property is not set, the default port 1099 is used. .TP @@ -130,7 +130,7 @@ Sets the hostname the RMI connector is bound. The value could be a hostname or an IPv4/IPv6 address. This option overrides the system property -\[aq]java.rmi.server.hostname\[aq]. +\(aqjava.rmi.server.hostname\(aq. If not specified, the system property is used. If the system property is not set, a system hostname is used. .SH OPTIONS FOR THE JINFO MODE diff -Nru openjdk-25-25.0.3+9/debian/man/jinfo.1 openjdk-25-25.0.4+7/debian/man/jinfo.1 --- openjdk-25-25.0.3+9/debian/man/jinfo.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jinfo.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JINFO" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JINFO" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jinfo \- generate Java configuration information for a specified Java process @@ -36,7 +36,7 @@ In Windows Systems where \f[CR]dbgeng.dll\f[R] is not present, the Debugging Tools for Windows must be installed to have these tools work. The \f[CR]PATH\f[R] environment variable should contain the location of -the \f[CR]jvm.dll\f[R] that\[aq]s used by the target process or the +the \f[CR]jvm.dll\f[R] that\(aqs used by the target process or the location from which the core dump file was produced. .SH OPTIONS FOR THE JINFO COMMAND \f[B]Note:\f[R] diff -Nru openjdk-25-25.0.3+9/debian/man/jlink.1 openjdk-25-25.0.4+7/debian/man/jlink.1 --- openjdk-25-25.0.3+9/debian/man/jlink.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jlink.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JLINK" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JLINK" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jlink \- assemble and optimize a set of modules and their dependencies into a custom runtime image @@ -41,11 +41,11 @@ \f[CR]\-c ={0|1|2}\f[R] or \f[CR]\-\-compress={0|1|2}\f[R] Enable compression of resources: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]0\f[R]: No compression -.IP \[bu] 2 +.IP \(bu 2 \f[CR]1\f[R]: Constant string sharing -.IP \[bu] 2 +.IP \(bu 2 \f[CR]2\f[R]: ZIP .RE .TP @@ -55,7 +55,7 @@ .TP \f[CR]\-\-endian\f[R] {\f[CR]little\f[R]|\f[CR]big\f[R]} Specifies the byte order of the generated image. -The default value is the format of your system\[aq]s architecture. +The default value is the format of your system\(aqs architecture. .TP \f[CR]\-h\f[R] or \f[CR]\-\-help\f[R] Prints the help message. @@ -63,8 +63,8 @@ \f[CR]\-\-ignore\-signing\-information\f[R] Suppresses a fatal error when signed modular JARs are linked in the runtime image. -The signature\-related files of the signed modular JARs aren\[aq]t -copied to the runtime image. +The signature\-related files of the signed modular JARs aren\(aqt copied +to the runtime image. .TP \f[CR]\-\-launcher\f[R] \f[I]command\f[R]\f[CR]=\f[R]\f[I]module\f[R] or \f[CR]\-\-launcher\f[R] \f[I]command\f[R]\f[CR]=\f[R]\f[I]module\f[R]\f[CR]/\f[R]\f[I]main\f[R] Specifies the launcher command name for the module or the command name @@ -84,7 +84,6 @@ \f[CR]\-p\f[R] or \f[CR]\-\-module\-path\f[R] \f[I]modulepath\f[R] Specifies the module path. .RS -.PP If this option is not specified, then the default module path is \f[CR]$JAVA_HOME/jmods\f[R]. This directory contains the \f[CR]java.base\f[R] module and the other @@ -113,17 +112,15 @@ \f[CR]\-\-version\f[R] Prints version information. .TP -\f[CR]\[at]\f[R]\f[I]filename\f[R] +\f[CR]\(at\f[R]\f[I]filename\f[R] Reads options from the specified file. .RS -.PP An options file is a text file that contains the options and values that you would typically enter in a command prompt. Options may appear on one line or on several lines. You may not specify environment variables for path names. You may comment out lines by prefixing a hash symbol (\f[CR]#\f[R]) to the beginning of the line. -.PP The following is an example of an options file for the \f[CR]jlink\f[R] command: .IP @@ -137,22 +134,22 @@ .SH JLINK PLUG\-INS \f[B]Note:\f[R] .PP -Plug\-ins not listed in this section aren\[aq]t supported and are -subject to change. +Plug\-ins not listed in this section aren\(aqt supported and are subject +to change. .PP For plug\-in options that require a \f[I]pattern\-list\f[R], the value is a comma\-separated list of elements, with each element using one the following forms: -.IP \[bu] 2 +.IP \(bu 2 \f[I]glob\-pattern\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]glob:\f[R]\f[I]glob\-pattern\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]regex:\f[R]\f[I]regex\-pattern\f[R] -.IP \[bu] 2 -\f[CR]\[at]\f[R]\f[I]filename\f[R] +.IP \(bu 2 +\f[CR]\(at\f[R]\f[I]filename\f[R] .RS 2 -.IP \[bu] 2 +.IP \(bu 2 \f[I]filename\f[R] is the name of a file that contains patterns to be used, one pattern per line. .RE @@ -167,13 +164,12 @@ Description Compresses all resources in the output image. .RS -.IP \[bu] 2 +.IP \(bu 2 Level 0: No compression -.IP \[bu] 2 +.IP \(bu 2 Level 1: Constant string sharing -.IP \[bu] 2 +.IP \(bu 2 Level 2: ZIP -.PP An optional \f[I]pattern\-list\f[R] filter can be specified to list the pattern of files to include. .RE @@ -188,7 +184,6 @@ This option supports locale matching as defined in RFC 4647. Ensure that you add the module jdk.localedata when using this option. .RS -.PP Example: .RS .PP @@ -202,15 +197,14 @@ .TP Description Orders the specified paths in priority order. -If \f[CR]\[at]\f[R]\f[I]filename\f[R] is specified, then each line in +If \f[CR]\(at\f[R]\f[I]filename\f[R] is specified, then each line in \f[I]pattern\-list\f[R] must be an exact match for the paths to be ordered. .RS -.PP Example: .RS .PP -\f[CR]\-\-order\-resources=/module\-info.class,\[at]classlist,/java.base/java/lang/\f[R] +\f[CR]\-\-order\-resources=/module\-info.class,\(atclasslist,/java.base/java/lang/\f[R] .RE .RE .SS Plugin \f[CR]strip\-debug\f[R] @@ -243,13 +237,13 @@ .EX greetingsapp/bin/java \-\-list\-modules com.greetings -java.base\[at]11 -java.logging\[at]11 -org.astro\[at]1.0 +java.base\(at11 +java.logging\(at11 +org.astro\(at1.0 .EE .PP The following command creates a runtime image in the directory -compressedrt that\[aq]s stripped of debug symbols, uses compression to +compressedrt that\(aqs stripped of debug symbols, uses compression to reduce space, and includes French language locale information: .IP .EX @@ -257,8 +251,8 @@ .EE .PP The following example compares the size of the runtime image -\f[CR]compressedrt\f[R] with \f[CR]fr_rt\f[R], which isn\[aq]t stripped -of debug symbols and doesn\[aq]t use compression: +\f[CR]compressedrt\f[R] with \f[CR]fr_rt\f[R], which isn\(aqt stripped +of debug symbols and doesn\(aqt use compression: .IP .EX jlink \-\-add\-modules jdk.localedata \-\-include\-locales=fr \-\-output fr_rt @@ -311,40 +305,40 @@ .EX greetingsapp/bin/java \-\-list\-modules com.greetings -java.base\[at]11 -java.compiler\[at]11 -java.datatransfer\[at]11 -java.desktop\[at]11 -java.logging\[at]11 -java.management\[at]11 -java.management.rmi\[at]11 -java.naming\[at]11 -java.prefs\[at]11 -java.rmi\[at]11 -java.security.jgss\[at]11 -java.security.sasl\[at]11 -java.smartcardio\[at]11 -java.xml\[at]11 -java.xml.crypto\[at]11 -jdk.accessibility\[at]11 -jdk.charsets\[at]11 -jdk.compiler\[at]11 -jdk.crypto.cryptoki\[at]11 -jdk.crypto.ec\[at]11 -jdk.crypto.mscapi\[at]11 -jdk.internal.opt\[at]11 -jdk.jartool\[at]11 -jdk.javadoc\[at]11 -jdk.jdeps\[at]11 -jdk.jfr\[at]11 -jdk.jlink\[at]11 -jdk.localedata\[at]11 -jdk.management\[at]11 -jdk.management.jfr\[at]11 -jdk.naming.dns\[at]11 -jdk.naming.rmi\[at]11 -jdk.security.auth\[at]11 -jdk.security.jgss\[at]11 -jdk.zipfs\[at]11 -org.astro\[at]1.0 +java.base\(at11 +java.compiler\(at11 +java.datatransfer\(at11 +java.desktop\(at11 +java.logging\(at11 +java.management\(at11 +java.management.rmi\(at11 +java.naming\(at11 +java.prefs\(at11 +java.rmi\(at11 +java.security.jgss\(at11 +java.security.sasl\(at11 +java.smartcardio\(at11 +java.xml\(at11 +java.xml.crypto\(at11 +jdk.accessibility\(at11 +jdk.charsets\(at11 +jdk.compiler\(at11 +jdk.crypto.cryptoki\(at11 +jdk.crypto.ec\(at11 +jdk.crypto.mscapi\(at11 +jdk.internal.opt\(at11 +jdk.jartool\(at11 +jdk.javadoc\(at11 +jdk.jdeps\(at11 +jdk.jfr\(at11 +jdk.jlink\(at11 +jdk.localedata\(at11 +jdk.management\(at11 +jdk.management.jfr\(at11 +jdk.naming.dns\(at11 +jdk.naming.rmi\(at11 +jdk.security.auth\(at11 +jdk.security.jgss\(at11 +jdk.zipfs\(at11 +org.astro\(at1.0 .EE diff -Nru openjdk-25-25.0.3+9/debian/man/jmap.1 openjdk-25-25.0.4+7/debian/man/jmap.1 --- openjdk-25-25.0.3+9/debian/man/jmap.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jmap.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JMAP" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JMAP" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jmap \- print details of a specified process .SH SYNOPSIS @@ -27,11 +27,11 @@ .PP This command is unsupported and might not be available in future releases of the JDK. -On Windows Systems where the \f[CR]dbgeng.dll\f[R] file isn\[aq]t +On Windows Systems where the \f[CR]dbgeng.dll\f[R] file isn\(aqt present, the Debugging Tools for Windows must be installed to make these tools work. The \f[CR]PATH\f[R] environment variable should contain the location of -the \f[CR]jvm.dll\f[R] file that\[aq]s used by the target process or the +the \f[CR]jvm.dll\f[R] file that\(aqs used by the target process or the location from which the core dump file was produced. .SH OPTIONS FOR THE JMAP COMMAND .TP @@ -53,16 +53,15 @@ Connects to a running process and dumps the Java heap. The \f[I]dump_options\f[R] include: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]live\f[R] \-\-\- When specified, dumps only the live objects; if not specified, then dumps all objects in the heap. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]format=b\f[R] \-\-\- Dumps the Java heap in \f[CR]hprof\f[R] binary format -.IP \[bu] 2 +.IP \(bu 2 \f[CR]file=\f[R]\f[I]filename\f[R] \-\-\- Dumps the heap to \f[I]filename\f[R] -.PP Example: \f[CR]jmap \-dump:live,format=b,file=heap.bin\f[R] \f[I]pid\f[R] .RE diff -Nru openjdk-25-25.0.3+9/debian/man/jmod.1 openjdk-25-25.0.4+7/debian/man/jmod.1 --- openjdk-25-25.0.3+9/debian/man/jmod.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jmod.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JMOD" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JMOD" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jmod \- create JMOD files and list the content of existing JMOD files .SH SYNOPSIS @@ -58,9 +58,9 @@ the pattern specified by the \f[CR]\-\-exclude\f[R] option. .PP With the \f[CR]\-\-hash\-modules\f[R] option or the \f[CR]jmod hash\f[R] -command, you can, in each module\[aq]s descriptor, record hashes of the +command, you can, in each module\(aqs descriptor, record hashes of the content of the modules that are allowed to depend upon it, thus -\[dq]tying\[dq] together these modules. +\(dqtying\(dq together these modules. This enables a package to be exported to one or more specifically\-named modules and to no others through qualified exports. The runtime verifies if the recorded hash of a module matches the one @@ -89,7 +89,7 @@ \f[CR]\-\-date\f[R]\f[I]TIMESTAMP\f[R] The timestamp in ISO\-8601 extended offset date\-time with optional time\-zone format, to use for the timestamp of the entries, e.g. -\[dq]2022\-02\-12T12:30:00\-05:00\[dq]. +\(dq2022\-02\-12T12:30:00\-05:00\(dq. .TP \f[CR]\-\-dir\f[R] \f[I]path\f[R] Specifies the location where \f[CR]jmod\f[R] puts extracted files from @@ -104,13 +104,12 @@ Excludes files matching the supplied comma\-separated pattern list, each element using one the following forms: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[I]glob\-pattern\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]glob:\f[R]\f[I]glob\-pattern\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]regex:\f[R]\f[I]regex\-pattern\f[R] -.PP See the \f[B]\f[CB]FileSystem.getPathMatcher\f[B]\f[R] method for the syntax of \f[I]glob\-pattern\f[R]. See the \f[B]\f[CB]Pattern\f[B]\f[R] class for the syntax of @@ -164,17 +163,15 @@ \f[CR]\-\-version\f[R] Prints version information of the \f[CR]jmod\f[R] tool. .TP -\f[CR]\[at]\f[R]\f[I]filename\f[R] +\f[CR]\(at\f[R]\f[I]filename\f[R] Reads options from the specified file. .RS -.PP An options file is a text file that contains the options and values that you would ordinarily enter in a command prompt. Options may appear on one line or on several lines. You may not specify environment variables for path names. You may comment out lines by prefixinga hash symbol (\f[CR]#\f[R]) to the beginning of the line. -.PP The following is an example of an options file for the \f[CR]jmod\f[R] command: .IP @@ -184,8 +181,8 @@ \-\-cmds commands \-\-config configfiles \-\-header\-files src/h \-\-libs lib \-\-main\-class com.greetings.Main \-\-man\-pages man \-\-module\-version 1.0 - \-\-os\-arch \[dq]x86_x64\[dq] \-\-os\-name \[dq]macOS\[dq] - \-\-os\-version \[dq]10.10.5\[dq] greetingsmod + \-\-os\-arch \(dqx86_x64\(dq \-\-os\-name \(dqmacOS\(dq + \-\-os\-version \(dq10.10.5\(dq greetingsmod .EE .RE .SH EXTRA OPTIONS FOR JMOD @@ -205,8 +202,8 @@ jmod create \-\-class\-path mods/com.greetings \-\-cmds commands \-\-config configfiles \-\-header\-files src/h \-\-libs lib \-\-main\-class com.greetings.Main \-\-man\-pages man \-\-module\-version 1.0 - \-\-os\-arch \[dq]x86_x64\[dq] \-\-os\-name \[dq]macOS\[dq] - \-\-os\-version \[dq]10.10.5\[dq] greetingsmod + \-\-os\-arch \(dqx86_x64\(dq \-\-os\-name \(dqmacOS\(dq + \-\-os\-version \(dq10.10.5\(dq greetingsmod .EE .PP Create a JMOD file specifying the date for the entries as @@ -220,11 +217,11 @@ The following example demonstrates what happens when you try to link a leaf module (in this example, \f[CR]ma\f[R]) with a required module (\f[CR]mb\f[R]), and the hash value recorded in the required module -doesn\[aq]t match that of the leaf module. +doesn\(aqt match that of the leaf module. .IP "1." 3 Create and compile the following \f[CR].java\f[R] files: .RS 4 -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmodhashex/src/ma/module\-info.java\f[R] .RS 2 .IP @@ -234,7 +231,7 @@ } .EE .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmodhashex/src/mb/module\-info.java\f[R] .RS 2 .IP @@ -243,7 +240,7 @@ } .EE .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmodhashex2/src/ma/module\-info.java\f[R] .RS 2 .IP @@ -253,7 +250,7 @@ } .EE .RE -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmodhashex2/src/mb/module\-info.java\f[R] .RS 2 .IP @@ -270,9 +267,9 @@ the \f[CR]jmodhashex\f[R] directory, then from the \f[CR]jmodhashex2\f[R] directory: .RS 4 -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmod create \-\-class\-path mods/ma jmods/ma.jmod\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]jmod create \-\-class\-path mods/mb jmods/mb.jmod\f[R] .RE .IP "3." 3 @@ -336,7 +333,7 @@ from the directory \f[CR]jmodhashex\f[R]. Run the following command from the \f[CR]jmodhashex2\f[R] directory: .RS 4 -.IP \[bu] 2 +.IP \(bu 2 \f[B]Linux and macOS:\f[R] .RS 2 .RS @@ -344,7 +341,7 @@ \f[CR]jlink \-\-module\-path $JAVA_HOME/jmods:jmods/ma.jmod:../jmodhashex/jmods/mb.jmod \-\-add\-modules ma \-\-output ma\-app\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] .RS 2 .RS diff -Nru openjdk-25-25.0.3+9/debian/man/jnativescan.1 openjdk-25-25.0.4+7/debian/man/jnativescan.1 --- openjdk-25-25.0.3+9/debian/man/jnativescan.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jnativescan.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JNATIVESCAN" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JNATIVESCAN" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jnativescan \- static analysis tool that scans one or more jar files for uses of native functionalities, such as restricted method calls or @@ -42,12 +42,11 @@ The list of jar files that will be scanned depends on the \f[CR]\-\-add\-modules\f[R] option. .RS -.PP For both the \f[CR]\-\-class\-path\f[R] and \f[CR]\-\-module\-path\f[R] options, \f[I]path\f[R] should be a search path that consists of one or more jar files, separated by the system\-specific path separator. For example: -.IP \[bu] 2 +.IP \(bu 2 \f[B]Linux and macOS:\f[R] .RS 2 .RS @@ -55,17 +54,15 @@ \f[CR]\-\-class\-path /some/foo.jar:/another/different/bar.jar\f[R] .RE .RE -.PP \f[B]Note:\f[R] -.PP On Windows, use a semicolon (\f[CR];\f[R]) as the separator instead of a colon (\f[CR]:\f[R]). -.IP \[bu] 2 +.IP \(bu 2 \f[B]Windows:\f[R] .RS 2 .RS .PP -\f[CR]\-\-class\-path C:\[rs]some\[rs]foo.jar;C:\[rs]another\[rs]different\[rs]bar.jar\f[R] +\f[CR]\-\-class\-path C:\(rssome\(rsfoo.jar;C:\(rsanother\(rsdifferent\(rsbar.jar\f[R] .RE .RE .RE @@ -76,7 +73,7 @@ All the root modules will be scanned, as well as any modules that they depend on. This includes dependencies on service implementations specified through -the \f[CR]uses\f[R] directive in a module\[aq]s \f[CR]module\-info\f[R] +the \f[CR]uses\f[R] directive in a module\(aqs \f[CR]module\-info\f[R] file. All modules found on the module path that provide an implementation of such a service will be scanned as well. diff -Nru openjdk-25-25.0.3+9/debian/man/jpackage.1 openjdk-25-25.0.4+7/debian/man/jpackage.1 --- openjdk-25-25.0.3+9/debian/man/jpackage.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jpackage.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JPACKAGE" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JPACKAGE" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jpackage \- tool for packaging self\-contained Java applications. .SH SYNOPSIS @@ -22,7 +22,7 @@ .SH JPACKAGE OPTIONS .SS Generic Options: .TP -\f[CR]\[at]\f[R]\f[I]filename\f[R] +\f[CR]\(at\f[R]\f[I]filename\f[R] Read options from a file. .RS .PP @@ -32,10 +32,8 @@ \f[CR]\-\-type\f[R] or \f[CR]\-t\f[R] \f[I]type\f[R] The type of package to create .RS -.PP -Valid values are: {\[dq]app\-image\[dq], \[dq]exe\[dq], \[dq]msi\[dq], -\[dq]rpm\[dq], \[dq]deb\[dq], \[dq]pkg\[dq], \[dq]dmg\[dq]} -.PP +Valid values are: {\(dqapp\-image\(dq, \(dqexe\(dq, \(dqmsi\(dq, +\(dqrpm\(dq, \(dqdeb\(dq, \(dqpkg\(dq, \(dqdmg\(dq} If this option is not specified a platform dependent default type will be created. .RE @@ -106,7 +104,7 @@ .SS Options for creating the runtime image: .TP \f[CR]\-\-add\-modules\f[R] \f[I]module\-name\f[R] [\f[CR],\f[R]\f[I]module\-name\f[R]...] -A comma (\[dq],\[dq]) separated list of modules to add +A comma (\(dq,\(dq) separated list of modules to add .RS .PP This module list, along with the main module (if specified) will be @@ -132,8 +130,8 @@ A space separated list of options to pass to jlink .RS .PP -If not specified, defaults to \[dq]\-\-strip\-native\-commands -\-\-strip\-debug \-\-no\-man\-pages \-\-no\-header\-files\[dq] +If not specified, defaults to \(dq\-\-strip\-native\-commands +\-\-strip\-debug \-\-no\-man\-pages \-\-no\-header\-files\(dq .PP This option can be used multiple times. .RE @@ -176,11 +174,11 @@ .PP (absolute path or relative to the current directory) .PP -The keys \[dq]module\[dq], \[dq]main\-jar\[dq], \[dq]main\-class\[dq], -\[dq]description\[dq], \[dq]arguments\[dq], \[dq]java\-options\[dq], -\[dq]icon\[dq], \[dq]launcher\-as\-service\[dq], \[dq]win\-console\[dq], -\[dq]win\-shortcut\[dq], \[dq]win\-menu\[dq], and -\[dq]linux\-shortcut\[dq] can be used. +The keys \(dqmodule\(dq, \(dqmain\-jar\(dq, \(dqmain\-class\(dq, +\(dqdescription\(dq, \(dqarguments\(dq, \(dqjava\-options\(dq, +\(dqicon\(dq, \(dqlauncher\-as\-service\(dq, \(dqwin\-console\(dq, +\(dqwin\-shortcut\(dq, \(dqwin\-menu\(dq, and \(dqlinux\-shortcut\(dq +can be used. .PP These options are added to, or used to overwrite, the original command line options to build an additional alternative launcher. @@ -200,11 +198,11 @@ .PP Value can contain substrings that will be expanded at runtime. Two types of such substrings are supported: environment variables and -\[dq]APPDIR\[dq], \[dq]BINDIR\[dq], and \[dq]ROOTDIR\[dq] tokens. +\(dqAPPDIR\(dq, \(dqBINDIR\(dq, and \(dqROOTDIR\(dq tokens. .PP An expandable substring should be enclosed between the dollar sign character ($) and the first following non\-alphanumeric character. -Alternatively, it can be enclosed between \[dq]${\[dq] and \[dq]}\[dq] +Alternatively, it can be enclosed between \(dq${\(dq and \(dq}\(dq substrings. .PP Expandable substrings are case\-sensitive on Unix and case\-insensitive @@ -212,11 +210,11 @@ No string expansion occurs if the referenced environment variable is undefined. .PP -Environment variables with names \[dq]APPDIR\[dq], \[dq]BINDIR\[dq], and -\[dq]ROOTDIR\[dq] will be ignored, and these expandable substrings will -be replaced by values calculated by the app launcher. +Environment variables with names \(dqAPPDIR\(dq, \(dqBINDIR\(dq, and +\(dqROOTDIR\(dq will be ignored, and these expandable substrings will be +replaced by values calculated by the app launcher. .PP -Prefix the dollar sign character with the backslash character (\[rs]) to +Prefix the dollar sign character with the backslash character (\(rs) to prevent substring expansion. .RE .TP @@ -286,8 +284,8 @@ .TP \f[CR]\-\-mac\-package\-signing\-prefix\f[R] \f[I]prefix\f[R] When signing the application package, this value is prefixed to all -components that need to be signed that don\[aq]t have an existing -package identifier. +components that need to be signed that don\(aqt have an existing package +identifier. .TP \f[CR]\-\-mac\-sign\f[R] Request that the package or the predefined application image be signed. @@ -313,12 +311,12 @@ String used to construct LSApplicationCategoryType in application plist .RS .PP -The default value is \[dq]utilities\[dq]. +The default value is \(dqutilities\(dq. .RE .SS Options for creating the application package: .TP \f[CR]\-\-about\-url\f[R] \f[I]url\f[R] -URL of the application\[aq]s home page +URL of the application\(aqs home page .TP \f[CR]\-\-app\-image\f[R] \f[I]directory\f[R] Location of the predefined application image that is used to build an @@ -334,8 +332,8 @@ .PP (absolute path or relative to the current directory) .PP -The keys \[dq]extension\[dq], \[dq]mime\-type\[dq], \[dq]icon\[dq], and -\[dq]description\[dq] can be used to describe the association. +The keys \(dqextension\(dq, \(dqmime\-type\(dq, \(dqicon\(dq, and +\(dqdescription\(dq can be used to describe the association. .PP This option can be used multiple times. .RE @@ -343,7 +341,7 @@ \f[CR]\-\-install\-dir\f[R] \f[I]path\f[R] Absolute path of the installation directory of the application (on macOS or linux), or relative sub\-path of the installation directory such as -\[dq]Program Files\[dq] or \[dq]AppData\[dq] (on Windows) +\(dqProgram Files\(dq or \(dqAppData\(dq (on Windows) .TP \f[CR]\-\-license\-file\f[R] \f[I]path\f[R] Path to the license file @@ -414,8 +412,7 @@ Required packages or capabilities for the application .TP \f[CR]\-\-linux\-rpm\-license\-type\f[R] \f[I]type\f[R] -Type of the license (\[dq]License: \f[I]value\f[R]\[dq] of the RPM -\&.spec) +Type of the license (\(dqLicense: \f[I]value\f[R]\(dq of the RPM .spec) .TP \f[CR]\-\-linux\-app\-release\f[R] \f[I]release\f[R] Release value of the RPM .spec file or Debian revision value of @@ -445,7 +442,7 @@ For a modular application: jpackage \-n name \-p modulePath \-m moduleName/className For a non\-modular application: - jpackage \-i inputDir \-n name \[rs] + jpackage \-i inputDir \-n name \(rs \-\-main\-class className \-\-main\-jar myJar.jar From a pre\-built application image: jpackage \-n name \-\-app\-image appImageDir @@ -457,16 +454,16 @@ .IP .EX For a modular application: - jpackage \-\-type app\-image \-n name \-p modulePath \[rs] + jpackage \-\-type app\-image \-n name \-p modulePath \(rs \-m moduleName/className For a non\-modular application: - jpackage \-\-type app\-image \-i inputDir \-n name \[rs] + jpackage \-\-type app\-image \-i inputDir \-n name \(rs \-\-main\-class className \-\-main\-jar myJar.jar To provide your own options to jlink, run jlink separately: - jlink \-\-output appRuntimeImage \-p modulePath \[rs] - \-\-add\-modules moduleName \[rs] + jlink \-\-output appRuntimeImage \-p modulePath \(rs + \-\-add\-modules moduleName \(rs \-\-no\-header\-files [...] - jpackage \-\-type app\-image \-n name \[rs] + jpackage \-\-type app\-image \-n name \(rs \-m moduleName/className \-\-runtime\-image appRuntimeImage .EE .IP @@ -483,7 +480,7 @@ .EE .IP .EX -jpackage \-\-type app\-image \-\-app\-image \[rs] +jpackage \-\-type app\-image \-\-app\-image \(rs \-\-mac\-sign [...] Note: the only additional options that are permitted in this mode are: @@ -642,7 +639,7 @@ .TP \f[CR]InstallDirNotEmptyDlg.wxs\f[R] WiX project file for installer UI dialog checking installation directory -doesn\[aq]t exist or is empty +doesn\(aqt exist or is empty .RS .PP Default resource is \f[I]InstallDirNotEmptyDlg.wxs\f[R] diff -Nru openjdk-25-25.0.3+9/debian/man/jps.1 openjdk-25-25.0.4+7/debian/man/jps.1 --- openjdk-25-25.0.3+9/debian/man/jps.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jps.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JPS" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JPS" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jps \- list the instrumented JVMs on the target system .SH SYNOPSIS @@ -19,17 +19,17 @@ \f[CR]\-mlvV\f[R] You can specify any combination of these options. .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-m\f[R] displays the arguments passed to the \f[CR]main\f[R] method. The output may be \f[CR]null\f[R] for embedded JVMs. -.IP \[bu] 2 -\f[CR]\-l\f[R] displays the full package name for the application\[aq]s -\f[CR]main\f[R] class or the full path name to the application\[aq]s JAR +.IP \(bu 2 +\f[CR]\-l\f[R] displays the full package name for the application\(aqs +\f[CR]main\f[R] class or the full path name to the application\(aqs JAR file. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-v\f[R] displays the arguments passed to the JVM. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-V\f[R] suppresses the output of the class name, JAR file name, and arguments passed to the \f[CR]main\f[R] method, producing a list of only local JVM identifiers. @@ -61,18 +61,18 @@ The \f[CR]jps\f[R] command reports the local JVM identifier, or \f[CR]lvmid\f[R], for each instrumented JVM found on the target system. The \f[CR]lvmid\f[R] is typically, but not necessarily, the operating -system\[aq]s process identifier for the JVM process. +system\(aqs process identifier for the JVM process. With no options, the \f[CR]jps\f[R] command lists each Java -application\[aq]s \f[CR]lvmid\f[R] followed by the short form of the -application\[aq]s class name or jar file name. -The short form of the class name or JAR file name omits the class\[aq]s +application\(aqs \f[CR]lvmid\f[R] followed by the short form of the +application\(aqs class name or jar file name. +The short form of the class name or JAR file name omits the class\(aqs package information or the JAR files path information. .PP The \f[CR]jps\f[R] command uses the Java launcher to find the class name and arguments passed to the main method. If the target JVM is started with a custom launcher, then the class or -JAR file name, and the arguments to the \f[CR]main\f[R] method -aren\[aq]t available. +JAR file name, and the arguments to the \f[CR]main\f[R] method aren\(aqt +available. In this case, the \f[CR]jps\f[R] command outputs the string \f[CR]Unknown\f[R] for the class name, or JAR file name, and for the arguments to the \f[CR]main\f[R] method. @@ -94,7 +94,7 @@ .TP \f[I]protocol\f[R] The communications protocol. -If the \f[I]protocol\f[R] is omitted and a \f[I]hostname\f[R] isn\[aq]t +If the \f[I]protocol\f[R] is omitted and a \f[I]hostname\f[R] isn\(aqt specified, then the default protocol is a platform\-specific, optimized, local protocol. If the protocol is omitted and a host name is specified, then the @@ -130,7 +130,7 @@ .RS .PP \f[I]lvmid\f[R] [ [ \f[I]classname\f[R] | \f[I]JARfilename\f[R] | -\f[CR]\[dq]Unknown\[dq]\f[R]] [ \f[I]arg\f[R]* ] [ \f[I]jvmarg\f[R]* ] ] +\f[CR]\(dqUnknown\(dq\f[R]] [ \f[I]arg\f[R]* ] [ \f[I]jvmarg\f[R]* ] ] .RE .PP All output tokens are separated by white space. @@ -140,7 +140,7 @@ .PP \f[B]Note:\f[R] .PP -It\[aq]s recommended that you don\[aq]t write scripts to parse +It\(aqs recommended that you don\(aqt write scripts to parse \f[CR]jps\f[R] output because the format might change in future releases. If you write scripts that parse \f[CR]jps\f[R] output, then expect to diff -Nru openjdk-25-25.0.3+9/debian/man/jrunscript.1 openjdk-25-25.0.4+7/debian/man/jrunscript.1 --- openjdk-25-25.0.3+9/debian/man/jrunscript.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jrunscript.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JRUNSCRIPT" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JRUNSCRIPT" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jrunscript \- run a command\-line script shell that supports interactive and batch modes @@ -52,7 +52,7 @@ Uses the specified scripting language. By default, JavaScript is used. To use other scripting languages, you must specify the corresponding -script engine\[aq]s JAR file with the \f[CR]\-cp\f[R] or +script engine\(aqs JAR file with the \f[CR]\-cp\f[R] or \f[CR]\-classpath\f[R] option. .TP \f[CR]\-e\f[R] \f[I]script\f[R] @@ -86,11 +86,11 @@ .SH EXAMPLE OF EXECUTING INLINE SCRIPTS .RS .PP -\f[CR]jrunscript \-e \[dq]print(\[aq]hello world\[aq])\[dq]\f[R] +\f[CR]jrunscript \-e \(dqprint(\(aqhello world\(aq)\(dq\f[R] .RE .RS .PP -\f[CR]jrunscript \-e \[dq]cat(\[aq]http://www.example.com\[aq])\[dq]\f[R] +\f[CR]jrunscript \-e \(dqcat(\(aqhttp://www.example.com\(aq)\(dq\f[R] .RE .SH EXAMPLE OF USING SPECIFIED LANGUAGE AND EVALUATE THE SCRIPT FILE .RS @@ -101,11 +101,11 @@ .IP .EX jrunscript -js> print(\[aq]Hello World\[rs]n\[aq]); +js> print(\(aqHello World\(rsn\(aq); Hello World js> 34 + 55 89.0 -js> t = new java.lang.Thread(function() { print(\[aq]Hello World\[rs]n\[aq]); }) +js> t = new java.lang.Thread(function() { print(\(aqHello World\(rsn\(aq); }) Thread[Thread\-0,5,main] js> t.start() js> Hello World diff -Nru openjdk-25-25.0.3+9/debian/man/jshell.1 openjdk-25-25.0.4+7/debian/man/jshell.1 --- openjdk-25-25.0.3+9/debian/man/jshell.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jshell.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,7 +1,7 @@ '\" t -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JSHELL" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JSHELL" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jshell \- interactively evaluate declarations, statements, and expressions of the Java programming language in a read\-eval\-print loop @@ -17,7 +17,6 @@ One or more scripts to run when the tool is started. Scripts can contain any valid code snippets or JShell commands. .RS -.PP The script can be a local file or one of following predefined scripts: .TP \f[CR]DEFAULT\f[R] @@ -34,14 +33,12 @@ Defines \f[CR]javac\f[R], \f[CR]jar\f[R], and other methods for running JDK tools via their command\-line interface within the \f[CR]jshell\f[R] tool. -.PP For more than one script, use a space to separate the names. -Scripts are run in the order in which they\[aq]re entered on the command +Scripts are run in the order in which they\(aqre entered on the command line. Command\-line scripts are run after startup scripts. To run a script after JShell is started, use the \f[CR]/open\f[R] command. -.PP To accept input from standard input and suppress the interactive I/O, enter a hyphen (\-) for \f[I]load\-files\f[R]. This option enables the use of the \f[CR]jshell\f[R] tool in pipe @@ -56,8 +53,7 @@ definitions, import statements, and expressions are accepted. The bits of code entered are called snippets. .PP -As snippets are entered, they\[aq]re evaluated, and feedback is -provided. +As snippets are entered, they\(aqre evaluated, and feedback is provided. Feedback varies from the results and explanations of actions to nothing, depending on the snippet entered and the feedback mode chosen. Errors are described regardless of the feedback mode. @@ -94,8 +90,8 @@ files. This option overrides the path in the \f[CR]CLASSPATH\f[R] environment variable. -If the environment variable isn\[aq]t set and this option isn\[aq]t -used, then the current directory is searched. +If the environment variable isn\(aqt set and this option isn\(aqt used, +then the current directory is searched. For Linux and macOS, use a colon (:) to separate items in the path. For Windows, use a semicolon (;) to separate items. .TP @@ -109,13 +105,12 @@ the spec. .TP \f[CR]\-\-feedback\f[R] \f[I]mode\f[R] -Sets the initial level of feedback provided in response to what\[aq]s +Sets the initial level of feedback provided in response to what\(aqs entered. The initial level can be overridden within a session by using the \f[CR]/set feedback\f[R] \f[I]mode\f[R] command. The default is \f[CR]normal\f[R]. .RS -.PP The following values are valid for \f[I]mode\f[R]: .TP \f[CR]verbose\f[R] @@ -167,7 +162,7 @@ Use this option to run only the scripts entered on the command line when JShell is started, or to start JShell without any preloaded information if no scripts are entered. -This option can\[aq]t be used if the \f[CR]\-\-startup\f[R] option is +This option can\(aqt be used if the \f[CR]\-\-startup\f[R] option is used. .TP \f[CR]\-q\f[R] @@ -178,8 +173,8 @@ passes \f[I]flag\f[R] to the runtime system only when code snippets are executed. For example, \f[CR]\-R\-Dfoo=bar\f[R] means that execution of the -snippet \f[CR]System.getProperty(\[dq]foo\[dq])\f[R] will return -\f[CR]\[dq]bar\[dq]\f[R]. +snippet \f[CR]System.getProperty(\(dqfoo\(dq)\f[R] will return +\f[CR]\(dqbar\(dq\f[R]. .TP \f[CR]\-s\f[R] Sets the feedback mode to \f[CR]silent\f[R], which is the same as @@ -192,7 +187,6 @@ Overrides the default startup script for this session. The script can contain any valid code snippets or commands. .RS -.PP The script can be a local file or one of the following predefined scripts: .TP @@ -210,17 +204,15 @@ Defines \f[CR]javac\f[R], \f[CR]jar\f[R], and other methods for running JDK tools via their command\-line interface within the \f[CR]jshell\f[R] tool. -.PP For more than one script, provide a separate instance of this option for each script. Startup scripts are run when JShell is first started and when the session is restarted with the \f[CR]/reset\f[R], \f[CR]/reload\f[R], or \f[CR]/env\f[R] command. -Startup scripts are run in the order in which they\[aq]re entered on the +Startup scripts are run in the order in which they\(aqre entered on the command line. -.PP -This option can\[aq]t be used if the \f[CR]\-\-no\-startup\f[R] option -is used. +This option can\(aqt be used if the \f[CR]\-\-no\-startup\f[R] option is +used. .RE .TP \f[CR]\-v\f[R] @@ -245,7 +237,6 @@ Opens an editor. If no option is entered, then the editor opens with the active snippets. .RS -.PP The following options are valid: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] @@ -262,11 +253,9 @@ \f[CR]\-start\f[R] Opens the editor with startup snippets that were evaluated when JShell was started. -.PP To exit edit mode, close the editor window, or respond to the prompt provided if the \f[CR]\-wait\f[R] option was used when the editor was set. -.PP Use the \f[CR]/set editor\f[R] command to specify the editor to use. If no editor is set, then the following environment variables are checked in order: \f[CR]JSHELLEDITOR\f[R], \f[CR]VISUAL\f[R], and @@ -283,23 +272,21 @@ If one or more options are entered, then the session is restarted as follows: .RS -.IP \[bu] 2 +.IP \(bu 2 Updates the environment settings with the provided options. -.IP \[bu] 2 +.IP \(bu 2 Resets the execution state. -.IP \[bu] 2 +.IP \(bu 2 Runs the startup scripts. -.IP \[bu] 2 +.IP \(bu 2 Silently replays the history in the order entered. The history includes all valid snippets or \f[CR]/drop\f[R] commands entered at the \f[CR]jshell\f[R] prompt, in scripts entered on the command line, or scripts entered with the \f[CR]/open\f[R] command. -.PP Environment settings entered on the command line or provided with a previous \f[CR]/reset\f[R], \f[CR]/env\f[R], or \f[CR]/reload\f[R] command are maintained unless an \f[I]option\f[R] is entered that overwrites the setting. -.PP The following options are valid: .TP \f[CR]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CR],\f[R]\f[I]module\f[R]...] @@ -314,8 +301,8 @@ files. This option overrides the path in the \f[CR]CLASSPATH\f[R] environment variable. -If the environment variable isn\[aq]t set and this option isn\[aq]t -used, then the current directory is searched. +If the environment variable isn\(aqt set and this option isn\(aqt used, +then the current directory is searched. For Linux and macOS, use a colon (\f[CR]:\f[R]) to separate items in the path. For Windows, use a semicolon (\f[CR];\f[R]) to separate items. @@ -347,7 +334,6 @@ If a valid subject is entered, then information about that subject is displayed. .RS -.PP The following values for \f[I]subject\f[R] are valid: .TP \f[CR]context\f[R] @@ -370,9 +356,8 @@ \f[CR]/list\f[R] [\f[I]option\f[R]] Displays a list of snippets and their IDs. If no option is entered, then all active snippets are displayed, but -startup snippets aren\[aq]t. +startup snippets aren\(aqt. .RS -.PP The following options are valid: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] @@ -396,7 +381,6 @@ If no option is entered, then the name, parameter types, and return type of all active methods are displayed. .RS -.PP The following options are valid: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] @@ -440,23 +424,21 @@ \f[CR]/reload\f[R] [\f[I]options\f[R]] Restarts the session as follows: .RS -.IP \[bu] 2 +.IP \(bu 2 Updates the environment settings with the provided options, if any. -.IP \[bu] 2 +.IP \(bu 2 Resets the execution state. -.IP \[bu] 2 +.IP \(bu 2 Runs the startup scripts. -.IP \[bu] 2 +.IP \(bu 2 Replays the history in the order entered. The history includes all valid snippets or \f[CR]/drop\f[R] commands entered at the \f[CR]jshell\f[R] prompt, in scripts entered on the command line, or scripts entered with the \f[CR]/open\f[R] command. -.PP Environment settings entered on the command line or provided with a previous \f[CR]/reset\f[R], \f[CR]/env\f[R], or \f[CR]/reload\f[R] command are maintained unless an \f[I]option\f[R] is entered that overwrites the setting. -.PP The following options are valid: .TP \f[CR]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CR],\f[R]\f[I]module\f[R]...] @@ -471,8 +453,8 @@ files. This option overrides the path in the \f[CR]CLASSPATH\f[R] environment variable. -If the environment variable isn\[aq]t set and this option isn\[aq]t -used, then the current directory is searched. +If the environment variable isn\(aqt set and this option isn\(aqt used, +then the current directory is searched. For Linux and macOS, use a colon (\f[CR]:\f[R]) to separate items in the path. For Windows, use a semicolon (\f[CR];\f[R]) to separate items. @@ -498,21 +480,18 @@ \f[CR]/reset\f[R] [\f[I]options\f[R]] Discards all entered snippets and restarts the session as follows: .RS -.IP \[bu] 2 +.IP \(bu 2 Updates the environment settings with the provided options, if any. -.IP \[bu] 2 +.IP \(bu 2 Resets the execution state. -.IP \[bu] 2 +.IP \(bu 2 Runs the startup scripts. -.PP History is not replayed. All code that was entered is lost. -.PP Environment settings entered on the command line or provided with a previous \f[CR]/reset\f[R], \f[CR]/env\f[R], or \f[CR]/reload\f[R] command are maintained unless an \f[I]option\f[R] is entered that overwrites the setting. -.PP The following options are valid: .TP \f[CR]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CR],\f[R]\f[I]module\f[R]...] @@ -527,8 +506,8 @@ files. This option overrides the path in the \f[CR]CLASSPATH\f[R] environment variable. -If the environment variable isn\[aq]t set and this option isn\[aq]t -used, then the current directory is searched. +If the environment variable isn\(aqt set and this option isn\(aqt used, +then the current directory is searched. For Linux and macOS, use a colon (\f[CR]:\f[R]) to separate items in the path. For Windows, use a semicolon (\f[CR];\f[R]) to separate items. @@ -544,7 +523,6 @@ Saves snippets and commands to the file specified. If no options are entered, then active snippets are saved. .RS -.PP The following options are valid: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] @@ -575,7 +553,6 @@ If no setting is entered, then the current setting for the editor, startup settings, and feedback mode are displayed. .RS -.PP The following values are valid for \f[CR]setting\f[R]: .TP \f[CR]editor\f[R] [\f[I]options\f[R]] [\f[I]command\f[R]] @@ -585,12 +562,11 @@ If no command or options are entered, then the current setting is displayed. .RS -.PP The following options are valid: .TP \f[CR]\-default\f[R] Sets the editor to the default editor provided with JShell. -This option can\[aq]t be used if a command for starting an editor is +This option can\(aqt be used if a command for starting an editor is entered. .TP \f[CR]\-delete\f[R] @@ -602,8 +578,7 @@ If none of the editor environment variables are set, then this option sets the editor to the default editor. .RS -.PP -This option can\[aq]t be used if a command for starting an editor is +This option can\(aqt be used if a command for starting an editor is entered. .RE .TP @@ -625,13 +600,12 @@ Sets the feedback mode used to respond to input. If no mode is entered, then the current mode is displayed. .RS -.PP The following modes are valid: \f[CR]concise\f[R], \f[CR]normal\f[R], \f[CR]silent\f[R], \f[CR]verbose\f[R], and any custom mode created with the \f[CR]/set mode\f[R] command. .RE .TP -\f[CR]format\f[R] \f[I]mode\f[R] \f[I]field\f[R] \f[CR]\[dq]\f[R]\f[I]format\-string\f[R]\f[CR]\[dq]\f[R] \f[I]selector\f[R] +\f[CR]format\f[R] \f[I]mode\f[R] \f[I]field\f[R] \f[CR]\(dq\f[R]\f[I]format\-string\f[R]\f[CR]\(dq\f[R] \f[I]selector\f[R] Sets the format of the feedback provided in response to input. If no mode is entered, then the current formats for all fields for all feedback modes are displayed. @@ -640,7 +614,6 @@ If only a mode and field are entered, then the current formats for that field are displayed. .RS -.PP To define a format, the following arguments are required: .TP \f[I]mode\f[R] @@ -654,7 +627,7 @@ The fields are described in the online help, which is accessed from JShell using the \f[CR]/help /set format\f[R] command. .TP -\f[CR]\[dq]\f[R]\f[I]format\-string\f[R]\f[CR]\[dq]\f[R] +\f[CR]\(dq\f[R]\f[I]format\-string\f[R]\f[CR]\(dq\f[R] Specifies the string to use as the response format for the specified field and selector. The structure of the format string is described in the online help, @@ -675,7 +648,6 @@ If the name of an existing mode is provided, then the settings from the existing mode are copied to the mode being created. .RS -.PP The following options are valid: .TP \f[CR]\-command\f[R]|\f[CR]\-quiet\f[R] @@ -692,26 +664,23 @@ The name of the mode to delete is required. To permanently delete a retained mode, use the \f[CR]\-retain\f[R] option with this option. -Predefined modes can\[aq]t be deleted. +Predefined modes can\(aqt be deleted. .TP \f[CR]\-retain\f[R] Saves the named feedback mode across sessions. The name of the mode to retain is required. -.PP Configure the new feedback mode using the \f[CR]/set prompt\f[R], \f[CR]/set format\f[R], and \f[CR]/set truncation\f[R] commands. -.PP To start using the new mode, use the \f[CR]/set feedback\f[R] command. .RE .TP -\f[CR]prompt\f[R] \f[I]mode\f[R] \f[CR]\[dq]\f[R]\f[I]prompt\-string\f[R]\f[CR]\[dq]\f[R] \f[CR]\[dq]\f[R]\f[I]continuation\-prompt\-string\f[R]\f[CR]\[dq]\f[R] +\f[CR]prompt\f[R] \f[I]mode\f[R] \f[CR]\(dq\f[R]\f[I]prompt\-string\f[R]\f[CR]\(dq\f[R] \f[CR]\(dq\f[R]\f[I]continuation\-prompt\-string\f[R]\f[CR]\(dq\f[R] Sets the prompts for input within JShell. If no mode is entered, then the current prompts for all feedback modes are displayed. If only a mode is entered, then the current prompts for that mode are displayed. .RS -.PP To define a prompt, the following arguments are required: .TP \f[I]mode\f[R] @@ -719,10 +688,10 @@ Only custom modes created with the \f[CR]/set mode\f[R] command can be modified. .TP -\f[CR]\[dq]\f[R]\f[I]prompt\-string\f[R]\f[CR]\[dq]\f[R] +\f[CR]\(dq\f[R]\f[I]prompt\-string\f[R]\f[CR]\(dq\f[R] Specifies the string to use as the prompt for the first line of input. .TP -\f[CR]\[dq]\f[R]\f[I]continuation\-prompt\-string\f[R]\f[CR]\[dq]\f[R] +\f[CR]\(dq\f[R]\f[I]continuation\-prompt\-string\f[R]\f[CR]\(dq\f[R] Specifies the string to use as the prompt for the additional input lines needed to complete a snippet. .RE @@ -736,7 +705,6 @@ If no scripts or options are entered, then the current startup settings are displayed. .RS -.PP The scripts can be local files or one of the following predefined scripts: .TP @@ -754,7 +722,6 @@ Defines \f[CR]javac\f[R], \f[CR]jar\f[R], and other methods for running JDK tools via their command\-line interface within the \f[CR]jshell\f[R] tool. -.PP The following options are valid: .TP \f[CR]\-default\f[R] @@ -762,7 +729,6 @@ .TP \f[CR]\-none\f[R] Specifies that no startup settings are used. -.PP Use the \f[CR]\-retain\f[R] option to save the start setting across sessions. .RE @@ -774,7 +740,6 @@ If only a mode is entered, then the current truncation values for that mode are displayed. .RS -.PP To define truncation values, the following arguments are required: .TP \f[I]mode\f[R] @@ -798,7 +763,6 @@ If no option is entered, then all current active classes, interfaces, and enums are displayed. .RS -.PP The following options are valid: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] @@ -824,7 +788,6 @@ If no option is entered, then all current active variables are displayed. .RS -.PP The following options are valid: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] @@ -862,7 +825,7 @@ Reruns the \-\f[I]n\f[R]th previous snippet. For example, if 15 code snippets were entered, then \f[CR]/\-4\f[R] runs the 11th snippet. -Commands aren\[aq]t included in the count. +Commands aren\(aqt included in the count. .SH INPUT SHORTCUTS The following shortcuts are available for entering commands and snippets in JShell. @@ -871,11 +834,10 @@ \f[B]\f[R] When entering snippets, commands, subcommands, command arguments, or command options, use the Tab key to automatically complete the item. -If the item can\[aq]t be determined from what was entered, then possible +If the item can\(aqt be determined from what was entered, then possible options are provided. .RS -.PP -When entering a method call, use the Tab key after the method call\[aq]s +When entering a method call, use the Tab key after the method call\(aqs opening parenthesis to see the parameters for the method. If the method has more than one signature, then all signatures are displayed. @@ -897,7 +859,7 @@ expression. .TP \f[B]Shift+ I\f[R] -When an identifier is entered that can\[aq]t be resolved, use this key +When an identifier is entered that can\(aqt be resolved, use this key sequence to show possible imports that resolve the identifier based on the content of the specified class path. .SS Command abbreviations @@ -905,9 +867,9 @@ identifies a command. For example, \f[CR]/l\f[R] is recognized as the \f[CR]/list\f[R] command. -However, \f[CR]/s\f[R] isn\[aq]t a valid abbreviation because it -can\[aq]t be determined if the \f[CR]/set\f[R] or \f[CR]/save\f[R] -command is meant. +However, \f[CR]/s\f[R] isn\(aqt a valid abbreviation because it can\(aqt +be determined if the \f[CR]/set\f[R] or \f[CR]/save\f[R] command is +meant. Use \f[CR]/se\f[R] for the \f[CR]/set\f[R] command or \f[CR]/sa\f[R] for the \f[CR]/save\f[R] command. .PP @@ -933,7 +895,7 @@ shells. Keyboard keys and key combinations provide line editing shortcuts. The Ctrl key and Meta key are used in key combinations. -If your keyboard doesn\[aq]t have a Meta key, then the Alt key is often +If your keyboard doesn\(aqt have a Meta key, then the Alt key is often mapped to provide Meta key functionality. .PP Line Editing Shortcuts @@ -1035,7 +997,7 @@ the \f[CR]/list \-start\f[R] command. The default startup snippets are import statements for common packages. The ID for each snippet begins with the letter \f[I]s\f[R], which -indicates it\[aq]s a startup snippet. +indicates it\(aqs a startup snippet. .IP .EX jshell> /list \-start @@ -1066,7 +1028,7 @@ Snippets are Java statements, variable definitions, method definitions, class definitions, import statements, and expressions. Terminating semicolons are automatically added to the end of a completed -snippet if they\[aq]re missing. +snippet if they\(aqre missing. .PP The following example shows two variables and a method being defined, and the method being run. @@ -1097,14 +1059,14 @@ .EX jshell> String grade(int testScore) { ...> if (testScore >= 90) { - ...> return \[dq]Pass\[dq]; + ...> return \(dqPass\(dq; ...> } - ...> return \[dq]Fail\[dq]; + ...> return \(dqFail\(dq; ...> } | created method grade(int) jshell> grade(88) -$3 ==> \[dq]Fail\[dq] +$3 ==> \(dqFail\(dq .EE .PP To change the method \f[CR]grade\f[R] to allow more students to pass, @@ -1118,14 +1080,14 @@ .EX jshell> String grade(int testScore) { ...> if (testScore >= 80) { - ...> return \[dq]Pass\[dq]; + ...> return \(dqPass\(dq; ...> } - ...> return \[dq]Fail\[dq]; + ...> return \(dqFail\(dq; ...> } | modified method grade(int) jshell> grade(88) -$5 ==> \[dq]Pass\[dq] +$5 ==> \(dqPass\(dq .EE .PP For snippets that are more than a few lines long, or to make more than a @@ -1145,13 +1107,13 @@ 6 : String grade(int testScore) { if (testScore >= 85) { - return \[dq]Pass\[dq]; + return \(dqPass\(dq; } - return \[dq]Fail\[dq]; + return \(dqFail\(dq; } .EE .SH EXAMPLE OF CREATING A CUSTOM FEEDBACK MODE -The feedback mode determines the prompt that\[aq]s displayed, the +The feedback mode determines the prompt that\(aqs displayed, the feedback messages that are provided as snippets are entered, and the maximum length of a displayed value. Predefined feedback modes are provided. @@ -1177,9 +1139,9 @@ .IP .EX jshell> /set prompt mymode -| /set prompt mymode \[dq]\[rs]njshell> \[dq] \[dq] ...> \[dq] +| /set prompt mymode \(dq\(rsnjshell> \(dq \(dq ...> \(dq -jshell> /set prompt mymode \[dq]\[rs]nprompt$ \[dq] \[dq] continue$ \[dq] +jshell> /set prompt mymode \(dq\(rsnprompt$ \(dq \(dq continue$ \(dq .EE .PP The maximum length of a displayed value is controlled by the truncation @@ -1203,7 +1165,7 @@ \f[CR]defined\f[R]: .IP .EX -jshell> /set format mymode action \[dq]defined\[dq] added\-primary +jshell> /set format mymode action \(dqdefined\(dq added\-primary .EE .PP Use the \f[CR]/set feedback\f[R] command to start using the feedback diff -Nru openjdk-25-25.0.3+9/debian/man/jstack.1 openjdk-25-25.0.4+7/debian/man/jstack.1 --- openjdk-25-25.0.3+9/debian/man/jstack.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jstack.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JSTACK" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JSTACK" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jstack \- print Java stack traces of Java threads for a specified Java process @@ -24,7 +24,7 @@ for a specified Java process. For each Java frame, the full class name, method name, byte code index (BCI), and line number, when available, are printed. -C++ mangled names aren\[aq]t demangled. +C++ mangled names aren\(aqt demangled. To demangle C++ names, the output of this command can be piped to \f[CR]c++filt\f[R]. When the specified process is running on a 64\-bit JVM, you might need @@ -35,7 +35,7 @@ .PP This command is unsupported and might not be available in future releases of the JDK. -In Windows Systems where the \f[CR]dbgeng.dll\f[R] file isn\[aq]t +In Windows Systems where the \f[CR]dbgeng.dll\f[R] file isn\(aqt present, the Debugging Tools for Windows must be installed so that these tools work. The \f[CR]PATH\f[R] environment variable needs to contain the location diff -Nru openjdk-25-25.0.3+9/debian/man/jstat.1 openjdk-25-25.0.4+7/debian/man/jstat.1 --- openjdk-25-25.0.3+9/debian/man/jstat.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jstat.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JSTAT" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JSTAT" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jstat \- monitor JVM statistics .SH SYNOPSIS @@ -68,8 +68,8 @@ All options and their functionality are subject to change or removal in future releases. .SH GENERAL OPTIONS -If you specify one of the general options, then you can\[aq]t specify -any other option or parameter. +If you specify one of the general options, then you can\(aqt specify any +other option or parameter. .TP \f[CR]\-help\f[R] Displays a help message. @@ -78,12 +78,12 @@ Displays a list of static options. See \f[B]Output Options for the jstat Command\f[R]. .SH OUTPUT OPTIONS FOR THE JSTAT COMMAND -If you don\[aq]t specify a general option, then you can specify output +If you don\(aqt specify a general option, then you can specify output options. Output options determine the content and format of the \f[CR]jstat\f[R] -command\[aq]s output, and consist of a single \f[CR]statOption\f[R], -plus any of the other output options (\f[CR]\-h\f[R], \f[CR]\-t\f[R], -and \f[CR]\-J\f[R]). +command\(aqs output, and consist of a single \f[CR]statOption\f[R], plus +any of the other output options (\f[CR]\-h\f[R], \f[CR]\-t\f[R], and +\f[CR]\-J\f[R]). The \f[CR]statOption\f[R] must come first. .PP Output is formatted as a table, with columns that are separated by @@ -109,8 +109,8 @@ .PP \f[B]Note:\f[R] .PP -Don\[aq]t write scripts to parse the \f[CR]jstat\f[R] command\[aq]s -output because the format might change in future releases. +Don\(aqt write scripts to parse the \f[CR]jstat\f[R] command\(aqs output +because the format might change in future releases. If you write scripts that parse the \f[CR]jstat\f[R] command output, then expect to modify them for future releases of this tool. .TP @@ -122,41 +122,29 @@ options for a particular platform installation. See \f[B]Stat Options and Output\f[R]. .RS -.PP \f[CR]class\f[R]: Displays statistics about the behavior of the class loader. -.PP \f[CR]compiler\f[R]: Displays statistics about the behavior of the Java HotSpot VM Just\-in\-Time compiler. -.PP \f[CR]gc\f[R]: Displays statistics about the behavior of the garbage collected heap. -.PP \f[CR]gccapacity\f[R]: Displays statistics about the capacities of the generations and their corresponding spaces. -.PP \f[CR]gccause\f[R]: Displays a summary about garbage collection statistics (same as \f[CR]\-gcutil\f[R]), with the cause of the last and current (when applicable) garbage collection events. -.PP \f[CR]gcnew\f[R]: Displays statistics about the behavior of the new generation. -.PP \f[CR]gcnewcapacity\f[R]: Displays statistics about the sizes of the new generations and their corresponding spaces. -.PP \f[CR]gcold\f[R]: Displays statistics about the behavior of the old generation and metaspace statistics. -.PP \f[CR]gcoldcapacity\f[R]: Displays statistics about the sizes of the old generation. -.PP \f[CR]gcmetacapacity\f[R]: Displays statistics about the sizes of the metaspace. -.PP \f[CR]gcutil\f[R]: Displays a summary about garbage collection statistics. -.PP \f[CR]printcompilation\f[R]: Displays Java HotSpot VM compilation method statistics. .RE @@ -172,15 +160,10 @@ \f[CR]\-class\f[R] \f[I]option\f[R] Class loader statistics. .RS -.PP \f[CR]Loaded\f[R]: Number of classes loaded. -.PP \f[CR]Bytes\f[R]: Number of KB loaded. -.PP \f[CR]Unloaded\f[R]: Number of classes unloaded. -.PP \f[CR]Bytes\f[R]: Number of KB unloaded. -.PP \f[CR]Time\f[R]: Time spent performing class loading and unloading operations. .RE @@ -188,17 +171,11 @@ \f[CR]\-compiler\f[R] \f[I]option\f[R] Java HotSpot VM Just\-in\-Time compiler statistics. .RS -.PP \f[CR]Compiled\f[R]: Number of compilation tasks performed. -.PP \f[CR]Failed\f[R]: Number of compilations tasks failed. -.PP \f[CR]Invalid\f[R]: Number of compilation tasks that were invalidated. -.PP \f[CR]Time\f[R]: Time spent performing compilation tasks. -.PP \f[CR]FailedType\f[R]: Compile type of the last failed compilation. -.PP \f[CR]FailedMethod\f[R]: Class name and method of the last failed compilation. .RE @@ -206,81 +183,46 @@ \f[CR]\-gc\f[R] \f[I]option\f[R] Garbage collected heap statistics. .RS -.PP \f[CR]S0C\f[R]: Current survivor space 0 capacity (KB). -.PP \f[CR]S1C\f[R]: Current survivor space 1 capacity (KB). -.PP \f[CR]S0U\f[R]: Survivor space 0 utilization (KB). -.PP \f[CR]S1U\f[R]: Survivor space 1 utilization (KB). -.PP \f[CR]EC\f[R]: Current eden space capacity (KB). -.PP \f[CR]EU\f[R]: Eden space utilization (KB). -.PP \f[CR]OC\f[R]: Current old space capacity (KB). -.PP \f[CR]OU\f[R]: Old space utilization (KB). -.PP \f[CR]MC\f[R]: Metaspace Committed Size (KB). -.PP \f[CR]MU\f[R]: Metaspace utilization (KB). -.PP \f[CR]CCSC\f[R]: Compressed class committed size (KB). -.PP \f[CR]CCSU\f[R]: Compressed class space used (KB). -.PP \f[CR]YGC\f[R]: Number of young generation garbage collection (GC) events. -.PP \f[CR]YGCT\f[R]: Young generation garbage collection time. -.PP \f[CR]FGC\f[R]: Number of full GC events. -.PP \f[CR]FGCT\f[R]: Full garbage collection time. -.PP \f[CR]GCT\f[R]: Total garbage collection time. .RE .TP \f[CR]\-gccapacity\f[R] \f[I]option\f[R] Memory pool generation and space capacities. .RS -.PP \f[CR]NGCMN\f[R]: Minimum new generation capacity (KB). -.PP \f[CR]NGCMX\f[R]: Maximum new generation capacity (KB). -.PP \f[CR]NGC\f[R]: Current new generation capacity (KB). -.PP \f[CR]S0C\f[R]: Current survivor space 0 capacity (KB). -.PP \f[CR]S1C\f[R]: Current survivor space 1 capacity (KB). -.PP \f[CR]EC\f[R]: Current eden space capacity (KB). -.PP \f[CR]OGCMN\f[R]: Minimum old generation capacity (KB). -.PP \f[CR]OGCMX\f[R]: Maximum old generation capacity (KB). -.PP \f[CR]OGC\f[R]: Current old generation capacity (KB). -.PP \f[CR]OC\f[R]: Current old space capacity (KB). -.PP \f[CR]MCMN\f[R]: Minimum metaspace capacity (KB). -.PP \f[CR]MCMX\f[R]: Maximum metaspace capacity (KB). -.PP \f[CR]MC\f[R]: Metaspace Committed Size (KB). -.PP \f[CR]CCSMN\f[R]: Compressed class space minimum capacity (KB). -.PP \f[CR]CCSMX\f[R]: Compressed class space maximum capacity (KB). -.PP \f[CR]CCSC\f[R]: Compressed class committed size (KB). -.PP \f[CR]YGC\f[R]: Number of young generation GC events. -.PP \f[CR]FGC\f[R]: Number of full GC events. .RE .TP @@ -292,179 +234,113 @@ In addition to the columns listed for \f[CR]\-gcutil\f[R], this option adds the following columns: .RS -.PP \f[CR]LGCC\f[R]: Cause of last garbage collection -.PP \f[CR]GCC\f[R]: Cause of current garbage collection .RE .TP \f[CR]\-gcnew\f[R] \f[I]option\f[R] New generation statistics. .RS -.PP \f[CR]S0C\f[R]: Current survivor space 0 capacity (KB). -.PP \f[CR]S1C\f[R]: Current survivor space 1 capacity (KB). -.PP \f[CR]S0U\f[R]: Survivor space 0 utilization (KB). -.PP \f[CR]S1U\f[R]: Survivor space 1 utilization (KB). -.PP \f[CR]TT\f[R]: Tenuring threshold. -.PP \f[CR]MTT\f[R]: Maximum tenuring threshold. -.PP \f[CR]DSS\f[R]: Desired survivor size (KB). -.PP \f[CR]EC\f[R]: Current eden space capacity (KB). -.PP \f[CR]EU\f[R]: Eden space utilization (KB). -.PP \f[CR]YGC\f[R]: Number of young generation GC events. -.PP \f[CR]YGCT\f[R]: Young generation garbage collection time. .RE .TP \f[CR]\-gcnewcapacity\f[R] \f[I]option\f[R] New generation space size statistics. .RS -.PP \f[CR]NGCMN\f[R]: Minimum new generation capacity (KB). -.PP \f[CR]NGCMX\f[R]: Maximum new generation capacity (KB). -.PP \f[CR]NGC\f[R]: Current new generation capacity (KB). -.PP \f[CR]S0CMX\f[R]: Maximum survivor space 0 capacity (KB). -.PP \f[CR]S0C\f[R]: Current survivor space 0 capacity (KB). -.PP \f[CR]S1CMX\f[R]: Maximum survivor space 1 capacity (KB). -.PP \f[CR]S1C\f[R]: Current survivor space 1 capacity (KB). -.PP \f[CR]ECMX\f[R]: Maximum eden space capacity (KB). -.PP \f[CR]EC\f[R]: Current eden space capacity (KB). -.PP \f[CR]YGC\f[R]: Number of young generation GC events. -.PP \f[CR]FGC\f[R]: Number of full GC events. .RE .TP \f[CR]\-gcold\f[R] \f[I]option\f[R] Old generation size statistics. .RS -.PP \f[CR]MC\f[R]: Metaspace Committed Size (KB). -.PP \f[CR]MU\f[R]: Metaspace utilization (KB). -.PP \f[CR]CCSC\f[R]: Compressed class committed size (KB). -.PP \f[CR]CCSU\f[R]: Compressed class space used (KB). -.PP \f[CR]OC\f[R]: Current old space capacity (KB). -.PP \f[CR]OU\f[R]: Old space utilization (KB). -.PP \f[CR]YGC\f[R]: Number of young generation GC events. -.PP \f[CR]FGC\f[R]: Number of full GC events. -.PP \f[CR]FGCT\f[R]: Full garbage collection time. -.PP \f[CR]GCT\f[R]: Total garbage collection time. .RE .TP \f[CR]\-gcoldcapacity\f[R] \f[I]option\f[R] Old generation statistics. .RS -.PP \f[CR]OGCMN\f[R]: Minimum old generation capacity (KB). -.PP \f[CR]OGCMX\f[R]: Maximum old generation capacity (KB). -.PP \f[CR]OGC\f[R]: Current old generation capacity (KB). -.PP \f[CR]OC\f[R]: Current old space capacity (KB). -.PP \f[CR]YGC\f[R]: Number of young generation GC events. -.PP \f[CR]FGC\f[R]: Number of full GC events. -.PP \f[CR]FGCT\f[R]: Full garbage collection time. -.PP \f[CR]GCT\f[R]: Total garbage collection time. .RE .TP \f[CR]\-gcmetacapacity\f[R] \f[I]option\f[R] Metaspace size statistics. .RS -.PP \f[CR]MCMN\f[R]: Minimum metaspace capacity (KB). -.PP \f[CR]MCMX\f[R]: Maximum metaspace capacity (KB). -.PP \f[CR]MC\f[R]: Metaspace Committed Size (KB). -.PP \f[CR]CCSMN\f[R]: Compressed class space minimum capacity (KB). -.PP \f[CR]CCSMX\f[R]: Compressed class space maximum capacity (KB). -.PP \f[CR]YGC\f[R]: Number of young generation GC events. -.PP \f[CR]FGC\f[R]: Number of full GC events. -.PP \f[CR]FGCT\f[R]: Full garbage collection time. -.PP \f[CR]GCT\f[R]: Total garbage collection time. .RE .TP \f[CR]\-gcutil\f[R] \f[I]option\f[R] Summary of garbage collection statistics. .RS -.PP \f[CR]S0\f[R]: Survivor space 0 utilization as a percentage of the -space\[aq]s current capacity. -.PP +space\(aqs current capacity. \f[CR]S1\f[R]: Survivor space 1 utilization as a percentage of the -space\[aq]s current capacity. -.PP -\f[CR]E\f[R]: Eden space utilization as a percentage of the space\[aq]s +space\(aqs current capacity. +\f[CR]E\f[R]: Eden space utilization as a percentage of the space\(aqs current capacity. -.PP -\f[CR]O\f[R]: Old space utilization as a percentage of the space\[aq]s +\f[CR]O\f[R]: Old space utilization as a percentage of the space\(aqs current capacity. -.PP -\f[CR]M\f[R]: Metaspace utilization as a percentage of the space\[aq]s +\f[CR]M\f[R]: Metaspace utilization as a percentage of the space\(aqs current capacity. -.PP \f[CR]CCS\f[R]: Compressed class space utilization as a percentage. -.PP \f[CR]YGC\f[R]: Number of young generation GC events. -.PP \f[CR]YGCT\f[R]: Young generation garbage collection time. -.PP \f[CR]FGC\f[R]: Number of full GC events. -.PP \f[CR]FGCT\f[R]: Full garbage collection time. -.PP \f[CR]GCT\f[R]: Total garbage collection time. .RE .TP \f[CR]\-printcompilation\f[R] \f[I]option\f[R] Java HotSpot VM compiler method statistics. .RS -.PP \f[CR]Compiled\f[R]: Number of compilation tasks performed by the most recently compiled method. -.PP \f[CR]Size\f[R]: Number of bytes of byte code of the most recently compiled method. -.PP \f[CR]Type\f[R]: Compilation type of the most recently compiled method. -.PP \f[CR]Method\f[R]: Class name and method name identifying the most recently compiled method. Class name uses a slash (/) instead of a dot (.) @@ -478,7 +354,7 @@ URI: .RS .PP -[\f[I]protocol\f[R]\f[CR]:\f[R]][\f[CR]//\f[R]]\f[I]lvmid\f[R][\f[CR]\[at]\f[R]\f[I]hostname\f[R][\f[CR]:\f[R]\f[I]port\f[R]][\f[CR]/\f[R]\f[I]servername\f[R]] +[\f[I]protocol\f[R]\f[CR]:\f[R]][\f[CR]//\f[R]]\f[I]lvmid\f[R][\f[CR]\(at\f[R]\f[I]hostname\f[R][\f[CR]:\f[R]\f[I]port\f[R]][\f[CR]/\f[R]\f[I]servername\f[R]] .RE .PP The syntax of the \f[CR]vmid\f[R] string corresponds to the syntax of a @@ -490,7 +366,7 @@ .TP \f[I]protocol\f[R] The communications protocol. -If the \f[I]protocol\f[R] value is omitted and a host name isn\[aq]t +If the \f[I]protocol\f[R] value is omitted and a host name isn\(aqt specified, then the default protocol is a platform\-specific optimized local protocol. If the \f[I]protocol\f[R] value is omitted and a host name is specified, @@ -503,7 +379,7 @@ The \f[I]lvmid\f[R] is the only required component of a virtual machine identifier. The \f[I]lvmid\f[R] is typically, but not necessarily, the operating -system\[aq]s process identifier for the target JVM process. +system\(aqs process identifier for the target JVM process. You can use the \f[CR]jps\f[R] command to determine the \f[I]lvmid\f[R] provided the JVM processes is not running in a separate docker instance. You can also determine the \f[I]lvmid\f[R] on Linux and macOS platforms @@ -548,7 +424,7 @@ space (E) to the old space (O), resulting in an increase of old space utilization from 66.80% to 68.19%. Before the collection, the survivor space was 97.02% utilized, but after -this collection it\[aq]s 91.03% utilized. +this collection it\(aqs 91.03% utilized. .IP .EX jstat \-gcutil 21891 250 7 @@ -621,14 +497,14 @@ samples taken every second indefinitely. .PP The lvmid is combined with the name of the remote host to construct a -vmid of \f[CR]40496\[at]remote.domain\f[R]. +vmid of \f[CR]40496\(atremote.domain\f[R]. This vmid results in the use of the \f[CR]rmi\f[R] protocol to communicate to the default \f[CR]jstatd\f[R] server on the remote host. The \f[CR]jstatd\f[R] server is located using the \f[CR]rmiregistry\f[R] -command on \f[CR]remote.domain\f[R] that\[aq]s bound to the default port +command on \f[CR]remote.domain\f[R] that\(aqs bound to the default port of the \f[CR]rmiregistry\f[R] command (port 1099). .IP .EX -jstat \-gcutil 40496\[at]remote.domain 1000 +jstat \-gcutil 40496\(atremote.domain 1000 \&... output omitted .EE diff -Nru openjdk-25-25.0.3+9/debian/man/jstatd.1 openjdk-25-25.0.4+7/debian/man/jstatd.1 --- openjdk-25-25.0.3+9/debian/man/jstatd.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jstatd.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JSTATD" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JSTATD" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jstatd \- monitor the creation and termination of instrumented Java HotSpot VMs @@ -26,7 +26,7 @@ the default port, or on the port you specify with the \f[CR]\-p\f[R] \f[CR]port\f[R] option. If an RMI registry is not found, then one is created within the -\f[CR]jstatd\f[R] application that\[aq]s bound to the port that\[aq]s +\f[CR]jstatd\f[R] application that\(aqs bound to the port that\(aqs indicated by the \f[CR]\-p\f[R] \f[CR]port\f[R] option or to the default RMI registry port when the \f[CR]\-p\f[R] \f[CR]port\f[R] option is omitted. @@ -36,13 +36,13 @@ .TP \f[CR]\-nr\f[R] This option does not attempt to create an internal RMI registry within -the \f[CR]jstatd\f[R] process when an existing RMI registry isn\[aq]t +the \f[CR]jstatd\f[R] process when an existing RMI registry isn\(aqt found. .TP \f[CR]\-p\f[R] \f[I]port\f[R] This option sets the port number where the RMI registry is expected to be found, or when not found, created if the \f[CR]\-nr\f[R] option -isn\[aq]t specified. +isn\(aqt specified. .TP \f[CR]\-r\f[R] \f[I]rmiport\f[R] This option sets the port number to which the RMI connector is bound. @@ -56,7 +56,7 @@ the name of the exported RMI object for each server can be made unique by specifying this option. However, doing so requires that the unique server name be included in -the monitoring client\[aq]s \f[CR]hostid\f[R] and \f[CR]vmid\f[R] +the monitoring client\(aqs \f[CR]hostid\f[R] and \f[CR]vmid\f[R] strings. .TP \f[CR]\-J\f[R]\f[I]option\f[R] @@ -76,7 +76,7 @@ A \f[CR]jstatd\f[R] process running with such credentials can monitor any JVM on the system, but introduces additional security concerns. .PP -The \f[CR]jstatd\f[R] server doesn\[aq]t provide any authentication of +The \f[CR]jstatd\f[R] server doesn\(aqt provide any authentication of remote clients. Therefore, running a \f[CR]jstatd\f[R] server process exposes the instrumentation export by all JVMs for which the \f[CR]jstatd\f[R] @@ -84,12 +84,12 @@ This exposure might be undesirable in your environment, and therefore, local security policies should be considered before you start the \f[CR]jstatd\f[R] process, particularly in production environments or on -networks that aren\[aq]t secure. +networks that aren\(aqt secure. .PP For security purposes, the \f[CR]jstatd\f[R] server uses an RMI ObjectInputFilter to allow only essential classes to be deserialized. .PP -If your security concerns can\[aq]t be addressed, then the safest action +If your security concerns can\(aqt be addressed, then the safest action is to not run the \f[CR]jstatd\f[R] server and use the \f[CR]jstat\f[R] and \f[CR]jps\f[R] tools locally. However, when using \f[CR]jps\f[R] to get a list of instrumented JVMs, @@ -138,7 +138,7 @@ .EE .PP This example starts a \f[CR]jstatd\f[R] session with an external RMI -registry on port 2020 that\[aq]s bound to +registry on port 2020 that\(aqs bound to \f[CR]AlternateJstatdServerName\f[R]. .IP .EX @@ -146,11 +146,10 @@ jstatd \-p 2020 \-n AlternateJstatdServerName .EE .SH STOP THE CREATION OF AN IN\-PROCESS RMI REGISTRY -This example starts a \f[CR]jstatd\f[R] session that doesn\[aq]t create -an RMI registry when one isn\[aq]t found. +This example starts a \f[CR]jstatd\f[R] session that doesn\(aqt create +an RMI registry when one isn\(aqt found. This example assumes an RMI registry is already running. -If an RMI registry isn\[aq]t running, then an error message is -displayed. +If an RMI registry isn\(aqt running, then an error message is displayed. .RS .PP \f[CR]jstatd \-nr\f[R] diff -Nru openjdk-25-25.0.3+9/debian/man/jwebserver.1 openjdk-25-25.0.4+7/debian/man/jwebserver.1 --- openjdk-25-25.0.3+9/debian/man/jwebserver.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/jwebserver.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "JWEBSERVER" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "JWEBSERVER" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME jwebserver \- launch the Java Simple Web Server .SH SYNOPSIS @@ -19,12 +19,12 @@ Any other requests receive a \f[CR]501 \- Not Implemented\f[R] or a \f[CR]405 \- Not Allowed\f[R] response. GET requests are mapped to the directory being served, as follows: -.IP \[bu] 2 +.IP \(bu 2 If the requested resource is a file, its content is served. -.IP \[bu] 2 +.IP \(bu 2 If the requested resource is a directory that contains an index file, the content of the index file is served. -.IP \[bu] 2 +.IP \(bu 2 Otherwise, the names of all files and subdirectories of the directory are listed. Symbolic links and hidden files are not listed or served. @@ -88,7 +88,7 @@ .IP .EX $ jwebserver -Binding to loopback by default. For all interfaces use \[dq]\-b 0.0.0.0\[dq] or \[dq]\-b ::\[dq]. +Binding to loopback by default. For all interfaces use \(dq\-b 0.0.0.0\(dq or \(dq\-b ::\(dq. Serving /cwd and subdirectories on 127.0.0.1 port 8000 URL http://127.0.0.1:8000/ .EE @@ -122,7 +122,7 @@ The output looks like this: .IP .EX -127.0.0.1 \- \- [10/Feb/2021:14:34:11 +0000] \[dq]GET /some/subdirectory/ HTTP/1.1\[dq] 200 \- +127.0.0.1 \- \- [10/Feb/2021:14:34:11 +0000] \(dqGET /some/subdirectory/ HTTP/1.1\(dq 200 \- .EE .PP Logging output can be changed with the \f[CR]\-o\f[R] option. diff -Nru openjdk-25-25.0.3+9/debian/man/keytool.1 openjdk-25-25.0.4+7/debian/man/keytool.1 --- openjdk-25-25.0.3+9/debian/man/keytool.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/keytool.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,7 +1,7 @@ '\" t -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "KEYTOOL" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "KEYTOOL" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME keytool \- a key and certificate management utility .SH SYNOPSIS @@ -10,45 +10,44 @@ \f[I]commands\f[R] Commands for \f[CR]keytool\f[R] include the following: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-certreq\f[R]: Generates a certificate request -.IP \[bu] 2 -\f[CR]\-changealias\f[R]: Changes an entry\[aq]s alias -.IP \[bu] 2 +.IP \(bu 2 +\f[CR]\-changealias\f[R]: Changes an entry\(aqs alias +.IP \(bu 2 \f[CR]\-delete\f[R]: Deletes an entry -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-exportcert\f[R]: Exports certificate -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-genkeypair\f[R]: Generates a key pair -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-genseckey\f[R]: Generates a secret key -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-gencert\f[R]: Generates a certificate from a certificate request -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-importcert\f[R]: Imports a certificate or a certificate chain -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-importpass\f[R]: Imports a password -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-importkeystore\f[R]: Imports one or all entries from another keystore -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-keypasswd\f[R]: Changes the key password of an entry -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-list\f[R]: Lists entries in a keystore -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-printcert\f[R]: Prints the content of a certificate -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-printcertreq\f[R]: Prints the content of a certificate request -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-printcrl\f[R]: Prints the content of a Certificate Revocation List (CRL) file -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-storepasswd\f[R]: Changes the store password of a keystore -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-showinfo\f[R]: Displays security\-related information -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-version\f[R]: Prints the program version -.PP See \f[B]Commands and Options\f[R] for a description of these commands with their options. .RE @@ -67,7 +66,7 @@ information) of some other entity has a particular value. When data is digitally signed, the signature can be verified to check the data integrity and authenticity. -Integrity means that the data hasn\[aq]t been modified or tampered with, +Integrity means that the data hasn\(aqt been modified or tampered with, and authenticity means that the data comes from the individual who claims to have created and signed it. .PP @@ -86,19 +85,19 @@ It emits warnings when disabled or legacy algorithms are being used. The \f[CR]jdk.certpath.disabledAlgorithms\f[R] and \f[CR]jdk.security.legacyAlgorithms\f[R] security properties are defined -in the \f[CR]java.security\f[R] file (located in the JDK\[aq]s +in the \f[CR]java.security\f[R] file (located in the JDK\(aqs \f[CR]$JAVA_HOME/conf/security\f[R] directory). .SH COMMAND AND OPTION NOTES The following notes apply to the descriptions in \f[B]Commands and Options\f[R]: -.IP \[bu] 2 +.IP \(bu 2 All command and option names are preceded by a hyphen sign (\f[CR]\-\f[R]). -.IP \[bu] 2 +.IP \(bu 2 Only one command can be provided. -.IP \[bu] 2 +.IP \(bu 2 Options for each command can be provided in any order. -.IP \[bu] 2 +.IP \(bu 2 There are two kinds of options, one is single\-valued which should be only provided once. If a single\-valued option is provided multiple times, the value of the @@ -107,25 +106,25 @@ and all values are used. The only multi\-valued option currently supported is the \f[CR]\-ext\f[R] option used to generate X.509v3 certificate extensions. -.IP \[bu] 2 +.IP \(bu 2 All items not italicized or in braces ({ }) or brackets ([ ]) are required to appear as is. -.IP \[bu] 2 +.IP \(bu 2 Braces surrounding an option signify that a default value is used when -the option isn\[aq]t specified on the command line. +the option isn\(aqt specified on the command line. Braces are also used around the \f[CR]\-v\f[R], \f[CR]\-rfc\f[R], and \f[CR]\-J\f[R] options, which have meaning only when they appear on the command line. -They don\[aq]t have any default values. -.IP \[bu] 2 +They don\(aqt have any default values. +.IP \(bu 2 Brackets surrounding an option signify that the user is prompted for the -values when the option isn\[aq]t specified on the command line. -For the \f[CR]\-keypass\f[R] option, if you don\[aq]t specify the option +values when the option isn\(aqt specified on the command line. +For the \f[CR]\-keypass\f[R] option, if you don\(aqt specify the option on the command line, then the \f[CR]keytool\f[R] command first attempts to use the keystore password to recover the private/secret key. If this attempt fails, then the \f[CR]keytool\f[R] command prompts you for the private/secret key password. -.IP \[bu] 2 +.IP \(bu 2 Items in italics (option values) represent the actual values that must be supplied. For example, here is the format of the \f[CR]\-printcert\f[R] command: @@ -140,7 +139,7 @@ \f[I]cert_file\f[R] with the actual file name, as follows: \f[CR]keytool \-printcert \-file VScert.cer\f[R] .RE -.IP \[bu] 2 +.IP \(bu 2 Option values must be enclosed in quotation marks when they contain a blank (space). .SH COMMANDS AND OPTIONS @@ -148,55 +147,55 @@ they perform. .PP \f[B]Commands for Creating or Adding Data to the Keystore\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-gencert\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-genkeypair\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-genseckey\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-importcert\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-importpass\f[R] .PP \f[B]Commands for Importing Contents from Another Keystore\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-importkeystore\f[R] .PP \f[B]Commands for Generating a Certificate Request\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-certreq\f[R] .PP \f[B]Commands for Exporting Data\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-exportcert\f[R] .PP \f[B]Commands for Displaying Data\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-list\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-printcert\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-printcertreq\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-printcrl\f[R] .PP \f[B]Commands for Managing the Keystore\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-storepasswd\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-keypasswd\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-delete\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-changealias\f[R] .PP \f[B]Commands for Displaying Security\-related Information\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-showinfo\f[R] .PP \f[B]Commands for Displaying Program Version\f[R]: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-version\f[R] .SH COMMANDS FOR CREATING OR ADDING DATA TO THE KEYSTORE .TP @@ -204,36 +203,36 @@ The following are the available options for the \f[CR]\-gencert\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-rfc\f[R]}: Output in RFC (Request For Comment) style -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-infile\f[R] \f[I]infile\f[R]}: Input file name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-outfile\f[R] \f[I]outfile\f[R]}: Output file name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-sigalg\f[R] \f[I]sigalg\f[R]}: Signature algorithm name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-dname\f[R] \f[I]dname\f[R]}: Distinguished name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-startdate\f[R] \f[I]startdate\f[R]}: Certificate validity start date and time -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-ext\f[R] \f[I]ext\f[R]}*: X.509 extension -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-validity\f[R] \f[I]days\f[R]}: Validity number of days -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-keypass\f[R] \f[I]arg\f[R]]: Key password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Adds a security provider by name (such as SunPKCS11) with an optional configure argument. @@ -258,7 +257,7 @@ For legacy security providers located on classpath and loaded by reflection, \f[CR]\-providerclass\f[R] should still be used. .RE -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. @@ -271,45 +270,39 @@ \f[CR]keytool \-providerclass com.example.MyProvider ...\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password provided through a protected mechanism -.PP Use the \f[CR]\-gencert\f[R] command to generate a certificate as a response to a certificate request file (which can be created by the \f[CR]keytool \-certreq\f[R] command). The command reads the request either from \f[I]infile\f[R] or, if -omitted, from the standard input, signs it by using the alias\[aq]s +omitted, from the standard input, signs it by using the alias\(aqs private key, and outputs the X.509 certificate into either \f[I]outfile\f[R] or, if omitted, to the standard output. When \f[CR]\-rfc\f[R] is specified, the output format is Base64\-encoded PEM; otherwise, a binary DER is created. -.PP The \f[CR]\-sigalg\f[R] value specifies the algorithm that should be used to sign the certificate. The \f[I]startdate\f[R] argument is the start time and date that the certificate is valid. The \f[I]days\f[R] argument tells the number of days for which the certificate should be considered valid. -.PP When \f[I]dname\f[R] is provided, it is used as the subject of the generated certificate. Otherwise, the one from the certificate request is used. -.PP The \f[CR]\-ext\f[R] value shows what X.509 extensions will be embedded in the certificate. Read \f[B]Common Command Options\f[R] for the grammar of \f[CR]\-ext\f[R]. -.PP The \f[CR]\-gencert\f[R] option enables you to create certificate chains. The following example creates a certificate, \f[CR]e1\f[R], that contains three certificates in its certificate chain. -.PP The following commands creates four key pairs named \f[CR]ca\f[R], \f[CR]ca1\f[R], \f[CR]ca2\f[R], and \f[CR]e1\f[R]: .IP @@ -319,7 +312,6 @@ keytool \-alias ca2 \-dname CN=CA \-genkeypair \-keyalg rsa keytool \-alias e1 \-dname CN=E1 \-genkeypair \-keyalg rsa .EE -.PP The following two commands create a chain of signed certificates; \f[CR]ca\f[R] signs \f[CR]ca1\f[R] and \f[CR]ca1\f[R] signs \f[CR]ca2\f[R], all of which are self\-issued: @@ -333,7 +325,6 @@ keytool \-alias ca1 \-gencert \-ext san=dns:ca2 | keytool \-alias ca2 \-importcert .EE -.PP The following command creates the certificate \f[CR]e1\f[R] and stores it in the \f[CR]e1.cert\f[R] file, which is signed by \f[CR]ca2\f[R]. As a result, \f[CR]e1\f[R] should contain \f[CR]ca\f[R], \f[CR]ca1\f[R], @@ -348,56 +339,55 @@ The following are the available options for the \f[CR]\-genkeypair\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-keyalg\f[R] \f[I]alg\f[R]: Key algorithm name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keysize\f[R] \f[I]size\f[R]}: Key bit size -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-groupname\f[R] \f[I]name\f[R]}: Group name. For example, an Elliptic Curve name. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-sigalg\f[R] \f[I]alg\f[R]}: Signature algorithm name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-signer\f[R] \f[I]alias\f[R]}: Signer alias -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-signerkeypass\f[R] \f[I]arg\f[R]]: Signer key password -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-dname\f[R] \f[I]name\f[R]]: Distinguished name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-startdate\f[R] \f[I]date\f[R]}: Certificate validity start date and time -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-ext\f[R] \f[I]value\f[R]}*: X.509 extension -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-validity\f[R] \f[I]days\f[R]}: Validity number of days -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-keypass\f[R] \f[I]arg\f[R]]: Key password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]] }: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password provided through a protected mechanism -.PP Use the \f[CR]\-genkeypair\f[R] command to generate a key pair (a public key and associated private key). When the \f[CR]\-signer\f[R] option is not specified, the public key is @@ -406,10 +396,9 @@ When the \f[CR]\-signer\f[R] option is specified, a new certificate is generated and signed by the designated signer and stored as a multiple\-element certificate chain (containing the generated -certificate itself, and the signer\[aq]s certificate chain). +certificate itself, and the signer\(aqs certificate chain). The certificate chain and private key are stored in a new keystore entry that is identified by its alias. -.PP The \f[CR]\-keyalg\f[R] value specifies the algorithm to be used to generate the key pair. The \f[CR]\-keysize\f[R] value specifies the size of each key to be @@ -417,7 +406,6 @@ The \f[CR]\-groupname\f[R] value specifies the named group (for example, the standard or predefined name of an Elliptic Curve) of the key to be generated. -.PP When a \f[CR]\-keysize\f[R] value is provided, it will be used to initialize a \f[CR]KeyPairGenerator\f[R] object using the \f[CR]initialize(int keysize)\f[R] method. @@ -425,35 +413,30 @@ initialize a \f[CR]KeyPairGenerator\f[R] object using the \f[CR]initialize(AlgorithmParameterSpec params)\f[R] method where \f[CR]params\f[R] is \f[CR]new NamedParameterSpec(groupname)\f[R]. -.PP Only one of \f[CR]\-groupname\f[R] and \f[CR]\-keysize\f[R] can be specified. If an algorithm has multiple named groups that have the same key size, the \f[CR]\-groupname\f[R] option should usually be used. -In this case, if \f[CR]\-keysize\f[R] is specified, it\[aq]s up to the +In this case, if \f[CR]\-keysize\f[R] is specified, it\(aqs up to the security provider to determine which named group is chosen when generating a key pair. -.PP The \f[CR]\-sigalg\f[R] value specifies the algorithm that should be used to sign the certificate. This algorithm must be compatible with the \f[CR]\-keyalg\f[R] value. -.PP The \f[CR]\-signer\f[R] value specifies the alias of a \f[CR]PrivateKeyEntry\f[R] for the signer that already exists in the keystore. -This option is used to sign the certificate with the signer\[aq]s -private key. +This option is used to sign the certificate with the signer\(aqs private +key. This is especially useful for key agreement algorithms (i.e. the \f[CR]\-keyalg\f[R] value is \f[CR]XDH\f[R], \f[CR]X25519\f[R], \f[CR]X448\f[R], or \f[CR]DH\f[R]) as these keys cannot be used for digital signatures, and therefore a self\-signed certificate cannot be created. -.PP The \f[CR]\-signerkeypass\f[R] value specifies the password of the -signer\[aq]s private key. +signer\(aqs private key. It can be specified if the private key of the signer entry is protected by a password different from the store password. -.PP The \f[CR]\-dname\f[R] value specifies the X.500 Distinguished Name to be associated with the value of \f[CR]\-alias\f[R]. If the \f[CR]\-signer\f[R] option is not specified, the issuer and @@ -461,29 +444,23 @@ specified distinguished name. If the \f[CR]\-signer\f[R] option is specified, the subject field of the certificate is populated with the specified distinguished name and the -issuer field is populated with the subject field of the signer\[aq]s +issuer field is populated with the subject field of the signer\(aqs certificate. If a distinguished name is not provided at the command line, then the user is prompted for one. -.PP The value of \f[CR]\-keypass\f[R] is a password used to protect the private key of the generated key pair. If a password is not provided, then the user is prompted for it. If you press the \f[B]Return\f[R] key at the prompt, then the key password is set to the same password as the keystore password. The \f[CR]\-keypass\f[R] value must have at least six characters. -.PP The value of \f[CR]\-startdate\f[R] specifies the issue time of the -certificate, also known as the \[dq]Not Before\[dq] value of the X.509 -certificate\[aq]s Validity field. -.PP +certificate, also known as the \(dqNot Before\(dq value of the X.509 +certificate\(aqs Validity field. The option value can be set in one of these two forms: -.PP ([\f[CR]+\-\f[R]]\f[I]nnn\f[R][\f[CR]ymdHMS\f[R]])+ -.PP [\f[I]yyyy\f[R]\f[CR]/\f[R]\f[I]mm\f[R]\f[CR]/\f[R]\f[I]dd\f[R]] [\f[I]HH\f[R]\f[CR]:\f[R]\f[I]MM\f[R]\f[CR]:\f[R]\f[I]SS\f[R]] -.PP With the first form, the issue time is shifted by the specified value from the current time. The value is a concatenation of a sequence of subvalues. @@ -505,7 +482,6 @@ c.add(Calendar.DATE, \-1); return c.getTime() .EE -.PP With the second form, the user sets the exact issue time in two parts, year/month/day and hour:minute:second (using the local time zone). The user can provide only one part, which means the other part is the @@ -515,13 +491,11 @@ When both date and time are provided, there is one (and only one) space character between the two parts. The hour should always be provided in 24\-hour format. -.PP -When the option isn\[aq]t provided, the start date is the current time. +When the option isn\(aqt provided, the start date is the current time. The option can only be provided one time. -.PP The value of \f[I]date\f[R] specifies the number of days (starting at the date specified by \f[CR]\-startdate\f[R], or the current date when -\f[CR]\-startdate\f[R] isn\[aq]t specified) for which the certificate +\f[CR]\-startdate\f[R] isn\(aqt specified) for which the certificate should be considered valid. .RE .TP @@ -529,42 +503,40 @@ The following are the available options for the \f[CR]\-genseckey\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-keypass\f[R] \f[I]arg\f[R]]: Key password -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-keyalg\f[R] \f[I]alg\f[R]: Key algorithm name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keysize\f[R] \f[I]size\f[R]}: Key bit size -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password provided through a protected mechanism -.PP Use the \f[CR]\-genseckey\f[R] command to generate a secret key and store it in a new \f[CR]KeyStore.SecretKeyEntry\f[R] identified by \f[CR]alias\f[R]. -.PP The value of \f[CR]\-keyalg\f[R] specifies the algorithm to be used to generate the secret key, and the value of \f[CR]\-keysize\f[R] specifies the size of the key that is generated. @@ -581,42 +553,41 @@ The following are the available options for the \f[CR]\-importcert\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-noprompt\f[R]}: Do not prompt -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-trustcacerts\f[R]}: Trust certificates from cacerts -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password is provided through protected mechanism -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-file\f[R] \f[I]file\f[R]}: Input file name -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-keypass\f[R] \f[I]arg\f[R]]: Key password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-cacerts\f[R]}: Access the cacerts keystore -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.PP Use the \f[CR]\-importcert\f[R] command to read the certificate or certificate chain (where the latter is supplied in a PKCS#7 formatted reply or in a sequence of X.509 certificates) from \f[CR]\-file\f[R] @@ -624,7 +595,6 @@ by \f[CR]\-alias\f[R]. If \f[CR]\-file\f[R] \f[I]file\f[R] is not specified, then the certificate or certificate chain is read from \f[CR]stdin\f[R]. -.PP The \f[CR]keytool\f[R] command can import X.509 v1, v2, and v3 certificates, and PKCS#7 formatted certificate chains consisting of certificates of that type. @@ -634,63 +604,60 @@ In the latter case, the encoding must be bounded at the beginning by a string that starts with \f[CR]\-\-\-\-\-BEGIN\f[R], and bounded at the end by a string that starts with \f[CR]\-\-\-\-\-END\f[R]. -.PP You import a certificate for two reasons: To add it to the list of trusted certificates, and to import a certificate reply received from a certificate authority (CA) as the result of submitting a Certificate Signing Request (CSR) to that CA. See the \f[CR]\-certreq\f[R] command in \f[B]Commands for Generating a Certificate Request\f[R]. -.PP The type of import is indicated by the value of the \f[CR]\-alias\f[R] option. -If the alias doesn\[aq]t point to a key entry, then the +If the alias doesn\(aqt point to a key entry, then the \f[CR]keytool\f[R] command assumes you are adding a trusted certificate entry. -In this case, the alias shouldn\[aq]t already exist in the keystore. +In this case, the alias shouldn\(aqt already exist in the keystore. If the alias does exist, then the \f[CR]keytool\f[R] command outputs an error because a trusted certificate already exists for that alias, and -doesn\[aq]t import the certificate. +doesn\(aqt import the certificate. If \f[CR]\-alias\f[R] points to a key entry, then the \f[CR]keytool\f[R] -command assumes that you\[aq]re importing a certificate reply. +command assumes that you\(aqre importing a certificate reply. .RE .TP \f[CR]\-importpass\f[R] The following are the available options for the \f[CR]\-importpass\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-keypass\f[R] \f[I]arg\f[R]]: Key password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keyalg\f[R] \f[I]alg\f[R]}: Key algorithm name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keysize\f[R] \f[I]size\f[R]}: Key bit size -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password provided through a protected mechanism -.PP Use the \f[CR]\-importpass\f[R] command to imports a passphrase and store it in a new \f[CR]KeyStore.SecretKeyEntry\f[R] identified by \f[CR]\-alias\f[R]. @@ -710,111 +677,102 @@ The following are the available options for the \f[CR]\-importkeystore\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[CR]\-srckeystore\f[R] \f[I]keystore\f[R]: Source keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-destkeystore\f[R] \f[I]keystore\f[R]}: Destination keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-srcstoretype\f[R] \f[I]type\f[R]}: Source keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-deststoretype\f[R] \f[I]type\f[R]}: Destination keystore type -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-srcstorepass\f[R] \f[I]arg\f[R]]: Source keystore password -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-deststorepass\f[R] \f[I]arg\f[R]]: Destination keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-srcprotected\f[R]}: Source keystore password protected -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-destprotected\f[R]}: Destination keystore password protected -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-srcprovidername\f[R] \f[I]name\f[R]}: Source keystore provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-destprovidername\f[R] \f[I]name\f[R]}: Destination keystore provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-srcalias\f[R] \f[I]alias\f[R]}: Source alias -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-destalias\f[R] \f[I]alias\f[R]}: Destination alias -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-srckeypass\f[R] \f[I]arg\f[R]]: Source key password -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-destkeypass\f[R] \f[I]arg\f[R]]: Destination key password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-noprompt\f[R]}: Do not prompt -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.PP \f[B]Note:\f[R] -.PP This is the first line of all options: .RS .PP \f[CR]\-srckeystore\f[R] \f[I]keystore\f[R] \f[CR]\-destkeystore\f[R] \f[I]keystore\f[R] .RE -.PP Use the \f[CR]\-importkeystore\f[R] command to import a single entry or all entries from a source keystore to a destination keystore. -.PP \f[B]Note:\f[R] -.PP If you do not specify \f[CR]\-destkeystore\f[R] when using the \f[CR]keytool \-importkeystore\f[R] command, then the default keystore used is \f[CR]$HOME/.keystore\f[R]. -.PP When the \f[CR]\-srcalias\f[R] option is provided, the command imports the single entry identified by the alias to the destination keystore. -If a destination alias isn\[aq]t provided with \f[CR]\-destalias\f[R], +If a destination alias isn\(aqt provided with \f[CR]\-destalias\f[R], then \f[CR]\-srcalias\f[R] is used as the destination alias. If the source entry is protected by a password, then \f[CR]\-srckeypass\f[R] is used to recover the entry. -If \f[CR]\-srckeypass\f[R] isn\[aq]t provided, then the +If \f[CR]\-srckeypass\f[R] isn\(aqt provided, then the \f[CR]keytool\f[R] command attempts to use \f[CR]\-srcstorepass\f[R] to recover the entry. If \f[CR]\-srcstorepass\f[R] is not provided or is incorrect, then the user is prompted for a password. The destination entry is protected with \f[CR]\-destkeypass\f[R]. -If \f[CR]\-destkeypass\f[R] isn\[aq]t provided, then the destination +If \f[CR]\-destkeypass\f[R] isn\(aqt provided, then the destination entry is protected with the source entry password. For example, most third\-party tools require \f[CR]storepass\f[R] and \f[CR]keypass\f[R] in a PKCS #12 keystore to be the same. To create a PKCS#12 keystore for these tools, always specify a \f[CR]\-destkeypass\f[R] that is the same as \f[CR]\-deststorepass\f[R]. -.PP -If the \f[CR]\-srcalias\f[R] option isn\[aq]t provided, then all entries +If the \f[CR]\-srcalias\f[R] option isn\(aqt provided, then all entries in the source keystore are imported into the destination keystore. Each destination entry is stored under the alias from the source entry. If the source entry is protected by a password, then \f[CR]\-srcstorepass\f[R] is used to recover the entry. If \f[CR]\-srcstorepass\f[R] is not provided or is incorrect, then the user is prompted for a password. -If a source keystore entry type isn\[aq]t supported in the destination +If a source keystore entry type isn\(aqt supported in the destination keystore, or if an error occurs while storing an entry into the destination keystore, then the user is prompted either to skip the entry and continue or to quit. The destination entry is protected with the source entry password. -.PP If the destination alias already exists in the destination keystore, then the user is prompted either to overwrite the entry or to create a new entry under a different alias name. -.PP -If the \f[CR]\-noprompt\f[R] option is provided, then the user isn\[aq]t +If the \f[CR]\-noprompt\f[R] option is provided, then the user isn\(aqt prompted for a new destination alias. Existing entries are overwritten with the destination alias name. -Entries that can\[aq]t be imported are skipped and a warning is +Entries that can\(aqt be imported are skipped and a warning is displayed. .RE .SH COMMANDS FOR GENERATING A CERTIFICATE REQUEST @@ -823,68 +781,62 @@ The following are the available options for the \f[CR]\-certreq\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-sigalg\f[R] \f[I]alg\f[R]}: Signature algorithm name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-file\f[R] \f[I]file\f[R]}: Output file name -.IP \[bu] 2 +.IP \(bu 2 [ \f[CR]\-keypass\f[R] \f[I]arg\f[R]]: Key password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-dname\f[R] \f[I]name\f[R]}: Distinguished name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-ext\f[R] \f[I]value\f[R]}: X.509 extension -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password provided through a protected mechanism -.PP Use the \f[CR]\-certreq\f[R] command to generate a Certificate Signing Request (CSR) using the PKCS #10 format. -.PP A CSR is intended to be sent to a CA. The CA authenticates the certificate requestor (usually offline) and returns a certificate or certificate chain to replace the existing certificate chain (initially a self\-signed certificate) in the keystore. -.PP The private key associated with \f[I]alias\f[R] is used to create the PKCS #10 certificate request. To access the private key, the correct password must be provided. -If \f[CR]\-keypass\f[R] isn\[aq]t provided at the command line and is +If \f[CR]\-keypass\f[R] isn\(aqt provided at the command line and is different from the password used to protect the integrity of the keystore, then the user is prompted for it. If \f[CR]\-dname\f[R] is provided, then it is used as the subject in the CSR. Otherwise, the X.500 Distinguished Name associated with alias is used. -.PP The \f[CR]\-sigalg\f[R] value specifies the algorithm that should be used to sign the CSR. -.PP The CSR is stored in the \f[CR]\-file\f[R] \f[I]file\f[R]. If a file is not specified, then the CSR is output to \f[CR]\-stdout\f[R]. -.PP Use the \f[CR]\-importcert\f[R] command to import the response from the CA. .RE @@ -894,49 +846,46 @@ The following are the available options for the \f[CR]\-exportcert\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-rfc\f[R]}: Output in RFC style -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-file\f[R] \f[I]file\f[R]}: Output file name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-cacerts\f[R]}: Access the cacerts keystore -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]] }: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password provided through a protected mechanism -.PP Use the \f[CR]\-exportcert\f[R] command to read a certificate from the keystore that is associated with \f[CR]\-alias\f[R] \f[I]alias\f[R] and store it in the \f[CR]\-file\f[R] \f[I]file\f[R]. When a file is not specified, the certificate is output to \f[CR]stdout\f[R]. -.PP By default, the certificate is output in binary encoding. If the \f[CR]\-rfc\f[R] option is specified, then the output in the printable encoding format defined by the Internet RFC 1421 Certificate Encoding Standard. -.PP If \f[CR]\-alias\f[R] refers to a trusted certificate, then that certificate is output. Otherwise, \f[CR]\-alias\f[R] refers to a key entry with an associated @@ -951,41 +900,39 @@ The following are the available options for the \f[CR]\-list\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-rfc\f[R]}: Output in RFC style -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-cacerts\f[R]}: Access the cacerts keystore -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]] }: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password provided through a protected mechanism -.PP Use the \f[CR]\-list\f[R] command to print the contents of the keystore entry identified by \f[CR]\-alias\f[R] to \f[CR]stdout\f[R]. If \f[CR]\-alias\f[R] \f[I]alias\f[R] is not specified, then the contents of the entire keystore are printed. -.PP By default, this command prints the SHA\-256 fingerprint of a certificate. If the \f[CR]\-v\f[R] option is specified, then the certificate is @@ -994,10 +941,8 @@ If the \f[CR]\-rfc\f[R] option is specified, then the certificate contents are printed by using the printable encoding format, as defined by the Internet RFC 1421 Certificate Encoding Standard. -.PP \f[B]Note:\f[R] -.PP -You can\[aq]t specify both \f[CR]\-v\f[R] and \f[CR]\-rfc\f[R] in the +You can\(aqt specify both \f[CR]\-v\f[R] and \f[CR]\-rfc\f[R] in the same command. Otherwise, an error is reported. .RE @@ -1006,41 +951,40 @@ The following are the available options for the \f[CR]\-printcert\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-rfc\f[R]}: Output in RFC style -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-file\f[R] \f[I]cert_file\f[R]}: Input file name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-sslserver\f[R] \f[I]server\f[R][\f[CR]:\f[R]\f[I]port\f[R]]}:: Secure Sockets Layer (SSL) server host and port -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-jarfile\f[R] \f[I]JAR_file\f[R]}: Signed \f[CR].jar\f[R] file -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-trustcacerts\f[R]}: Trust certificates from cacerts -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password is provided through protected mechanism -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.PP Use the \f[CR]\-printcert\f[R] command to read and print the certificate from \f[CR]\-file\f[R] \f[I]cert_file\f[R], the SSL server located at \f[CR]\-sslserver\f[R] \f[I]server\f[R][\f[CR]:\f[R]\f[I]port\f[R]], or @@ -1048,32 +992,25 @@ \f[I]JAR_file\f[R]. It prints its contents in a human\-readable format. When a port is not specified, the standard HTTPS port 443 is assumed. -.PP \f[B]Note:\f[R] -.PP -The \f[CR]\-sslserver\f[R] and \f[CR]\-file\f[R] options can\[aq]t be +The \f[CR]\-sslserver\f[R] and \f[CR]\-file\f[R] options can\(aqt be provided in the same command. Otherwise, an error is reported. -If you don\[aq]t specify either option, then the certificate is read -from \f[CR]stdin\f[R]. -.PP +If you don\(aqt specify either option, then the certificate is read from +\f[CR]stdin\f[R]. When\f[CR]\-rfc\f[R] is specified, the \f[CR]keytool\f[R] command prints the certificate in PEM mode as defined by the Internet RFC 1421 Certificate Encoding standard. -.PP If the certificate is read from a file or \f[CR]stdin\f[R], then it might be either binary encoded or in printable encoding format, as defined by the RFC 1421 Certificate Encoding standard. -.PP If the SSL server is behind a firewall, then the \f[CR]\-J\-Dhttps.proxyHost=proxyhost\f[R] and \f[CR]\-J\-Dhttps.proxyPort=proxyport\f[R] options can be specified on the command line for proxy tunneling. -.PP \f[B]Note:\f[R] -.PP This command can be used independently of a keystore. -This command does not check for the weakness of a certificate\[aq]s +This command does not check for the weakness of a certificate\(aqs signature algorithm if it is a trusted certificate in the user keystore (specified by \f[CR]\-keystore\f[R]) or in the \f[CR]cacerts\f[R] keystore (if \f[CR]\-trustcacerts\f[R] is specified). @@ -1083,11 +1020,10 @@ The following are the available options for the \f[CR]\-printcertreq\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-file\f[R] \f[I]file\f[R]}: Input file name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.PP Use the \f[CR]\-printcertreq\f[R] command to print the contents of a PKCS #10 format certificate request, which can be generated by the \f[CR]keytool \-certreq\f[R] command. @@ -1099,42 +1035,39 @@ The following are the available options for the \f[CR]\-printcrl\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-file crl\f[R]}: Input file name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-trustcacerts\f[R]}: Trust certificates from cacerts -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password is provided through protected mechanism -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.PP Use the \f[CR]\-printcrl\f[R] command to read the Certificate Revocation List (CRL) from \f[CR]\-file crl\f[R] . A CRL is a list of the digital certificates that were revoked by the CA that issued them. The CA generates the \f[CR]crl\f[R] file. -.PP \f[B]Note:\f[R] -.PP This command can be used independently of a keystore. This command attempts to verify the CRL using a certificate from the user keystore (specified by \f[CR]\-keystore\f[R]) or the @@ -1147,31 +1080,30 @@ The following are the available options for the \f[CR]\-storepasswd\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-new\f[R] \f[I]arg\f[R]]: New password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-cacerts\f[R]}: Access the cacerts keystore -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.PP Use the \f[CR]\-storepasswd\f[R] command to change the password used to protect the integrity of the keystore contents. The new password is set by \f[CR]\-new\f[R] \f[I]arg\f[R] and must @@ -1182,45 +1114,42 @@ The following are the available options for the \f[CR]\-keypasswd\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-keypass\f[R] \f[I]old_keypass\f[R]]: Key password -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-new\f[R] \f[I]new_keypass\f[R]]: New password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storepass\f[R] \f[I]arg\f[R]}: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.PP Use the \f[CR]\-keypasswd\f[R] command to change the password (under which private/secret keys identified by \f[CR]\-alias\f[R] are protected) from \f[CR]\-keypass\f[R] \f[I]old_keypass\f[R] to \f[CR]\-new\f[R] \f[I]new_keypass\f[R]. The password value must contain at least six characters. -.PP -If the \f[CR]\-keypass\f[R] option isn\[aq]t provided at the command -line and the \f[CR]\-keypass\f[R] password is different from the -keystore password (\f[CR]\-storepass\f[R] \f[I]arg\f[R]), then the user -is prompted for it. -.PP -If the \f[CR]\-new\f[R] option isn\[aq]t provided at the command line, +If the \f[CR]\-keypass\f[R] option isn\(aqt provided at the command line +and the \f[CR]\-keypass\f[R] password is different from the keystore +password (\f[CR]\-storepass\f[R] \f[I]arg\f[R]), then the user is +prompted for it. +If the \f[CR]\-new\f[R] option isn\(aqt provided at the command line, then the user is prompted for it. .RE .TP @@ -1228,34 +1157,33 @@ The following are the available options for the \f[CR]\-delete\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-alias\f[R] \f[I]alias\f[R]]: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-cacerts\f[R]}: Access the cacerts keystore -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password provided through a protected mechanism -.PP Use the \f[CR]\-delete\f[R] command to delete the \f[CR]\-alias\f[R] \f[I]alias\f[R] entry from the keystore. When not provided at the command line, the user is prompted for the @@ -1266,38 +1194,37 @@ The following are the available options for the \f[CR]\-changealias\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-alias\f[R] \f[I]alias\f[R]}: Alias name of the entry to process -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-destalias\f[R] \f[I]alias\f[R]]: Destination alias -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-keypass\f[R] \f[I]arg\f[R]]: Key password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-keystore\f[R] \f[I]keystore\f[R]}: Keystore name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-cacerts\f[R]}: Access the cacerts keystore -.IP \[bu] 2 +.IP \(bu 2 [\f[CR]\-storepass\f[R] \f[I]arg\f[R]]: Keystore password -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-storetype\f[R] \f[I]type\f[R]}: Keystore type -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providername\f[R] \f[I]name\f[R]}: Provider name -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-addprovider\f[R] \f[I]name\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by name (such as SunPKCS11) with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerclass\f[R] \f[I]class\f[R] [\f[CR]\-providerarg\f[R] \f[I]arg\f[R]]}: Add security provider by fully qualified class name with an optional configure argument. -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-providerpath\f[R] \f[I]list\f[R]}: Provider classpath -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-protected\f[R]}: Password provided through a protected mechanism -.PP Use the \f[CR]\-changealias\f[R] command to move an existing keystore entry from \f[CR]\-alias\f[R] \f[I]alias\f[R] to a new \f[CR]\-destalias\f[R] \f[I]alias\f[R]. @@ -1315,11 +1242,10 @@ The following are the available options for the \f[CR]\-showinfo\f[R] command: .RS -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-tls\f[R]}: Displays TLS configuration information -.IP \[bu] 2 +.IP \(bu 2 {\f[CR]\-v\f[R]}: Verbose output -.PP Use the \f[CR]\-showinfo\f[R] command to display various security\-related information. The \f[CR]\-tls\f[R] option displays TLS configurations, such as the @@ -1332,7 +1258,7 @@ You can use \f[CR]\-\-help\f[R] to display a list of \f[CR]keytool\f[R] commands or to display help information about a specific \f[CR]keytool\f[R] command. -.IP \[bu] 2 +.IP \(bu 2 To display a list of \f[CR]keytool\f[R] commands, enter: .RS 2 .RS @@ -1340,7 +1266,7 @@ \f[CR]keytool \-\-help\f[R] .RE .RE -.IP \[bu] 2 +.IP \(bu 2 To display help information about a specific \f[CR]keytool\f[R] command, enter: .RS 2 @@ -1358,8 +1284,8 @@ The \f[CR]\-J\f[R]\f[I]option\f[R] argument can appear for any command. When the \f[CR]\-J\f[R]\f[I]option\f[R] is used, the specified \f[I]option\f[R] string is passed directly to the Java interpreter. -This option doesn\[aq]t contain any spaces. -It\[aq]s useful for adjusting the execution environment or memory usage. +This option doesn\(aqt contain any spaces. +It\(aqs useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, enter \f[CR]java \-h\f[R] or \f[CR]java \-X\f[R] at the command line. .PP @@ -1371,24 +1297,22 @@ \f[CR]\-keystore\f[R] \f[I]keystore\f[R] The keystore location. .RS -.PP -If the JKS \f[CR]storetype\f[R] is used and a keystore file doesn\[aq]t +If the JKS \f[CR]storetype\f[R] is used and a keystore file doesn\(aqt yet exist, then certain \f[CR]keytool\f[R] commands can result in a new keystore file being created. For example, if \f[CR]keytool \-genkeypair\f[R] is called and the -\f[CR]\-keystore\f[R] option isn\[aq]t specified, the default keystore -file named \f[CR].keystore\f[R] is created in the user\[aq]s home -directory if it doesn\[aq]t already exist. +\f[CR]\-keystore\f[R] option isn\(aqt specified, the default keystore +file named \f[CR].keystore\f[R] is created in the user\(aqs home +directory if it doesn\(aqt already exist. Similarly, if the \f[CR]\-keystore ks_file\f[R] option is specified but -\f[CR]ks_file\f[R] doesn\[aq]t exist, then it is created. +\f[CR]ks_file\f[R] doesn\(aqt exist, then it is created. For more information on the JKS \f[CR]storetype\f[R], see the \f[B]KeyStore Implementation\f[R] section in \f[B]KeyStore aliases\f[R]. -.PP Note that the input stream from the \f[CR]\-keystore\f[R] option is passed to the \f[CR]KeyStore.load\f[R] method. If \f[CR]NONE\f[R] is specified as the URL, then a null stream is passed to the \f[CR]KeyStore.load\f[R] method. -\f[CR]NONE\f[R] should be specified if the keystore isn\[aq]t +\f[CR]NONE\f[R] should be specified if the keystore isn\(aqt file\-based. For example, when the keystore resides on a hardware token device. .RE @@ -1405,46 +1329,42 @@ \f[CR]\-storepass\f[R] [\f[CR]:env\f[R] | \f[CR]:file\f[R] ] \f[I]argument\f[R] The password that is used to protect the integrity of the keystore. .RS -.PP -If the modifier \f[CR]env\f[R] or \f[CR]file\f[R] isn\[aq]t specified, +If the modifier \f[CR]env\f[R] or \f[CR]file\f[R] isn\(aqt specified, then the password has the value \f[I]argument\f[R], which must contain at least six characters. Otherwise, the password is retrieved as follows: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]env\f[R]: Retrieve the password from the environment variable named \f[I]argument\f[R]. -.IP \[bu] 2 +.IP \(bu 2 \f[CR]file\f[R]: Retrieve the password from the file named \f[I]argument\f[R]. -.PP \f[B]Note:\f[R] All other options that require passwords, such as \f[CR]\-keypass\f[R], \f[CR]\-srckeypass\f[R], \f[CR]\-destkeypass\f[R], \f[CR]\-srcstorepass\f[R], and \f[CR]\-deststorepass\f[R], accept the \f[CR]env\f[R] and \f[CR]file\f[R] modifiers. Remember to separate the password option and the modifier with a colon (:). -.PP The password must be provided to all commands that access the keystore contents. -For such commands, when the \f[CR]\-storepass\f[R] option isn\[aq]t +For such commands, when the \f[CR]\-storepass\f[R] option isn\(aqt provided at the command line, the user is prompted for it. -.PP When retrieving information from the keystore, the password is optional. If a password is not specified, then the integrity of the retrieved -information can\[aq]t be verified and a warning is displayed. +information can\(aqt be verified and a warning is displayed. .RE .TP \f[CR]\-providername\f[R] \f[I]name\f[R] -Used to identify a cryptographic service provider\[aq]s name when listed +Used to identify a cryptographic service provider\(aqs name when listed in the security properties file. .TP \f[CR]\-addprovider\f[R] \f[I]name\f[R] Used to add a security provider by name (such as SunPKCS11) . .TP \f[CR]\-providerclass\f[R] \f[I]class\f[R] -Used to specify the name of a cryptographic service provider\[aq]s -master class file when the service provider isn\[aq]t listed in the -security properties file. +Used to specify the name of a cryptographic service provider\(aqs master +class file when the service provider isn\(aqt listed in the security +properties file. .TP \f[CR]\-providerpath\f[R] \f[I]list\f[R] Used to specify the provider classpath. @@ -1477,7 +1397,7 @@ When \f[I]value\f[R] is omitted, the default value of the extension or the extension itself requires no argument. The \f[CR]:critical\f[R] modifier, when provided, means the -extension\[aq]s \f[CR]isCritical\f[R] attribute is \f[CR]true\f[R]; +extension\(aqs \f[CR]isCritical\f[R] attribute is \f[CR]true\f[R]; otherwise, it is \f[CR]false\f[R]. You can use \f[CR]:c\f[R] in place of \f[CR]:critical\f[R]. .TP @@ -1487,22 +1407,22 @@ A pre\-configured options file is a Java properties file that can be specified with the \f[CR]\-conf\f[R] option. Each property represents the default option(s) for a keytool command -using \[dq]keytool.\f[I]command_name\f[R]\[dq] as the property name. -A special property named \[dq]keytool.all\[dq] represents the default +using \(dqkeytool.\f[I]command_name\f[R]\(dq as the property name. +A special property named \(dqkeytool.all\(dq represents the default option(s) applied to all commands. A property value can include \f[CR]${prop}\f[R] which will be expanded to the system property associated with it. If an option value includes white spaces inside, it should be surrounded -by quotation marks (\[dq] or \[aq]). +by quotation marks (\(dq or \(aq). All property names must be in lower case. .PP When \f[CR]keytool\f[R] is launched with a pre\-configured options file, -the value for \[dq]keytool.all\[dq] (if it exists) is prepended to the +the value for \(dqkeytool.all\(dq (if it exists) is prepended to the \f[CR]keytool\f[R] command line first, with the value for the command name (if it exists) comes next, and the existing options on the command line at last. For a single\-valued option, this allows the property for a specific -command to override the \[dq]keytool.all\[dq] value, and the value +command to override the \(dqkeytool.all\(dq value, and the value specified on the command line to override both. For multiple\-valued options, all of them will be used by \f[CR]keytool\f[R]. @@ -1519,27 +1439,27 @@ \f[CR]keytool \-conf preconfig \-list\f[R] is identical to .RS .PP -\f[CR]keytool \-keystore \[ti]/ks \-v \-list\f[R] +\f[CR]keytool \-keystore \(ti/ks \-v \-list\f[R] .RE .PP \f[CR]keytool \-conf preconfig \-genkeypair \-alias me\f[R] is identical to .RS .PP -\f[CR]keytool \-keystore \[ti]/ks \-keyalg rsa \-genkeypair \-alias me\f[R] +\f[CR]keytool \-keystore \(ti/ks \-keyalg rsa \-genkeypair \-alias me\f[R] .RE .PP \f[CR]keytool \-conf preconfig \-genkeypair \-alias you \-keyalg ec\f[R] is identical to .RS .PP -\f[CR]keytool \-keystore \[ti]/ks \-keyalg rsa \-genkeypair \-alias you \-keyalg ec\f[R] +\f[CR]keytool \-keystore \(ti/ks \-keyalg rsa \-genkeypair \-alias you \-keyalg ec\f[R] .RE .PP which is equivalent to .RS .PP -\f[CR]keytool \-keystore \[ti]/ks \-genkeypair \-alias you \-keyalg ec\f[R] +\f[CR]keytool \-keystore \(ti/ks \-genkeypair \-alias you \-keyalg ec\f[R] .RE .PP because \f[CR]\-keyalg\f[R] is a single\-valued option and the @@ -1549,26 +1469,26 @@ The following examples show the defaults for various option values: .IP .EX -\-alias \[dq]mykey\[dq] +\-alias \(dqmykey\(dq \-keysize - 2048 (when using \-genkeypair and \-keyalg is \[dq]DSA\[dq]) - 3072 (when using \-genkeypair and \-keyalg is \[dq]RSA\[dq], \[dq]RSASSA\-PSS\[dq], or \[dq]DH\[dq]) - 384 (when using \-genkeypair and \-keyalg is \[dq]EC\[dq]) - 56 (when using \-genseckey and \-keyalg is \[dq]DES\[dq]) - 168 (when using \-genseckey and \-keyalg is \[dq]DESede\[dq]) + 2048 (when using \-genkeypair and \-keyalg is \(dqDSA\(dq) + 3072 (when using \-genkeypair and \-keyalg is \(dqRSA\(dq, \(dqRSASSA\-PSS\(dq, or \(dqDH\(dq) + 384 (when using \-genkeypair and \-keyalg is \(dqEC\(dq) + 56 (when using \-genseckey and \-keyalg is \(dqDES\(dq) + 168 (when using \-genseckey and \-keyalg is \(dqDESede\(dq) \-groupname - ed25519 (when using \-genkeypair and \-keyalg is \[dq]EdDSA\[dq], key size is 255) - x25519 (when using \-genkeypair and \-keyalg is \[dq]XDH\[dq], key size is 255) + ed25519 (when using \-genkeypair and \-keyalg is \(dqEdDSA\(dq, key size is 255) + x25519 (when using \-genkeypair and \-keyalg is \(dqXDH\(dq, key size is 255) \-validity 90 -\-keystore +\-keystore -\-destkeystore +\-destkeystore -\-storetype @@ -1687,16 +1607,16 @@ Ed448 T} .TE -.IP \[bu] 2 +.IP \(bu 2 The key size, measured in bits, corresponds to the size of the private key. This size is determined by the value of the \f[CR]\-keysize\f[R] or \f[CR]\-groupname\f[R] options or the value derived from a default setting. -.IP \[bu] 2 +.IP \(bu 2 An RSASSA\-PSS signature algorithm uses a \f[CR]MessageDigest\f[R] algorithm as its hash and MGF1 algorithms. -.IP \[bu] 2 +.IP \(bu 2 If neither a default \f[CR]\-keysize\f[R] or \f[CR]\-groupname\f[R] is defined for an algorithm, the security provider will choose a default setting. @@ -1713,17 +1633,15 @@ default values at your own risk. .SH SUPPORTED NAMED EXTENSIONS The \f[CR]keytool\f[R] command supports these named extensions. -The names aren\[aq]t case\-sensitive. +The names aren\(aqt case\-sensitive. .TP \f[CR]BC\f[R] or \f[CR]BasicConstraints\f[R] Values: .RS -.PP The full form is \f[CR]ca:\f[R]{\f[CR]true\f[R]|\f[CR]false\f[R]}[\f[CR],pathlen:\f[R]\f[I]len\f[R]] or \f[I]len\f[R], which is short for \f[CR]ca:true,pathlen:\f[R]\f[I]len\f[R]. -.PP When \f[I]len\f[R] is omitted, the resulting value is \f[CR]ca:true\f[R]. .RE @@ -1731,29 +1649,26 @@ \f[CR]KU\f[R] or \f[CR]KeyUsage\f[R] Values: .RS -.PP \f[I]usage\f[R](\f[CR],\f[R] \f[I]usage\f[R])* -.PP \f[I]usage\f[R] can be one of the following: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]digitalSignature\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]nonRepudiation\f[R] (\f[CR]contentCommitment\f[R]) -.IP \[bu] 2 +.IP \(bu 2 \f[CR]keyEncipherment\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]dataEncipherment\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]keyAgreement\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]keyCertSign\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]cRLSign\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]encipherOnly\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]decipherOnly\f[R] -.PP Provided there is no ambiguity, the \f[I]usage\f[R] argument can be abbreviated with the first few letters (such as \f[CR]dig\f[R] for \f[CR]digitalSignature\f[R]) or in camel\-case style (such as @@ -1765,27 +1680,24 @@ \f[CR]EKU\f[R] or \f[CR]ExtendedKeyUsage\f[R] Values: .RS -.PP \f[I]usage\f[R](\f[CR],\f[R] \f[I]usage\f[R])* -.PP \f[I]usage\f[R] can be one of the following: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]anyExtendedKeyUsage\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]serverAuth\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]clientAuth\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]codeSigning\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]emailProtection\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]timeStamping\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]OCSPSigning\f[R] -.IP \[bu] 2 +.IP \(bu 2 Any OID string -.PP Provided there is no ambiguity, the \f[I]usage\f[R] argument can be abbreviated with the first few letters or in camel\-case style. The \f[I]usage\f[R] values are case\-sensitive. @@ -1794,22 +1706,19 @@ \f[CR]SAN\f[R] or \f[CR]SubjectAlternativeName\f[R] Values: .RS -.PP \f[I]type\f[R]\f[CR]:\f[R]\f[I]value\f[R](\f[CR],\f[R] \f[I]type\f[R]\f[CR]:\f[R]\f[I]value\f[R])* -.PP \f[I]type\f[R] can be one of the following: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]EMAIL\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]URI\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]DNS\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]IP\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]OID\f[R] -.PP The \f[I]value\f[R] argument is the string format value for the \f[I]type\f[R]. .RE @@ -1817,25 +1726,21 @@ \f[CR]IAN\f[R] or \f[CR]IssuerAlternativeName\f[R] Values: .RS -.PP Same as \f[CR]SAN\f[R] or \f[CR]SubjectAlternativeName\f[R]. .RE .TP \f[CR]SIA\f[R] or \f[CR]SubjectInfoAccess\f[R] Values: .RS -.PP \f[I]method\f[R]\f[CR]:\f[R]\f[I]location\-type\f[R]\f[CR]:\f[R]\f[I]location\-value\f[R](\f[CR],\f[R] \f[I]method\f[R]\f[CR]:\f[R]\f[I]location\-type\f[R]\f[CR]:\f[R]\f[I]location\-value\f[R])* -.PP \f[I]method\f[R] can be one of the following: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]timeStamping\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]caRepository\f[R] -.IP \[bu] 2 +.IP \(bu 2 Any OID -.PP The \f[I]location\-type\f[R] and \f[I]location\-value\f[R] arguments can be any \f[I]type\f[R]\f[CR]:\f[R]\f[I]value\f[R] supported by the \f[CR]SubjectAlternativeName\f[R] extension. @@ -1844,15 +1749,13 @@ \f[CR]AIA\f[R] or \f[CR]AuthorityInfoAccess\f[R] Values: .RS -.PP Same as \f[CR]SIA\f[R] or \f[CR]SubjectInfoAccess\f[R]. -.PP The \f[I]method\f[R] argument can be one of the following: -.IP \[bu] 2 +.IP \(bu 2 \f[CR]ocsp\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[CR]caIssuers\f[R] -.IP \[bu] 2 +.IP \(bu 2 Any OID .RE .PP @@ -1874,7 +1777,7 @@ (the named extension is honored, but it uses a different \f[CR]isCritical\f[R] attribute), and \f[CR]\-name\f[R] (used with \f[CR]all\f[R], denotes an exception). -Requested extensions aren\[aq]t honored by default. +Requested extensions aren\(aqt honored by default. .PP If, besides the\f[CR]\-ext honored\f[R] option, another named or OID \f[CR]\-ext\f[R] option is provided, this extension is added to those @@ -1897,19 +1800,19 @@ The following examples describe the sequence actions in creating a keystore for managing public/private key pairs and certificates from trusted entities. -.IP \[bu] 2 +.IP \(bu 2 \f[B]Generating the Key Pair\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Requesting a Signed Certificate from a CA\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Importing a Certificate for the CA\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Importing the Certificate Reply from the CA\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Exporting a Certificate That Authenticates the Public Key\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Importing the Keystore\f[R] -.IP \[bu] 2 +.IP \(bu 2 \f[B]Generating Certificates for an SSL Server\f[R] .SH GENERATING THE KEY PAIR Create a keystore and then generate the key pair. @@ -1917,14 +1820,14 @@ You can enter the command as a single line such as the following: .RS .PP -\f[CR]keytool \-genkeypair \-dname \[dq]cn=myname, ou=mygroup, o=mycompany, c=mycountry\[dq] \-alias business \-keyalg rsa \-keypass\f[R] +\f[CR]keytool \-genkeypair \-dname \(dqcn=myname, ou=mygroup, o=mycompany, c=mycountry\(dq \-alias business \-keyalg rsa \-keypass\f[R] \f[I]password\f[R] \f[CR]\-keystore /working/mykeystore \-storepass password \-validity 180\f[R] .RE .PP The command creates the keystore named \f[CR]mykeystore\f[R] in the -working directory (provided it doesn\[aq]t already exist), and assigns -it the password specified by \f[CR]\-keypass\f[R]. +working directory (provided it doesn\(aqt already exist), and assigns it +the password specified by \f[CR]\-keypass\f[R]. It generates a public/private key pair for the entity whose distinguished name is \f[CR]myname\f[R], \f[CR]mygroup\f[R], \f[CR]mycompany\f[R], and a two\-letter country code of @@ -1957,7 +1860,7 @@ for 90 days. This entry is placed in your home directory in a keystore named \f[CR].keystore\f[R] . -\f[CR].keystore\f[R] is created if it doesn\[aq]t already exist. +\f[CR].keystore\f[R] is created if it doesn\(aqt already exist. You are prompted for the distinguished name information, the keystore password, and the private key password. .PP @@ -2004,31 +1907,31 @@ \f[CR]cacerts\f[R] keystore file. See \f[CR]\-importcert\f[R] in \f[B]Commands\f[R]. .RS 4 -.IP \[bu] 2 +.IP \(bu 2 If the certificate reply is a certificate chain, then you need the top certificate of the chain. The root CA certificate that authenticates the public key of the CA. -.IP \[bu] 2 +.IP \(bu 2 If the certificate reply is a single certificate, then you need a certificate for the issuing CA (the one that signed it). -If that certificate isn\[aq]t self\-signed, then you need a certificate +If that certificate isn\(aqt self\-signed, then you need a certificate for its signer, and so on, up to a self\-signed root CA certificate. .PP The \f[CR]cacerts\f[R] keystore ships with a set of root certificates issued by the CAs of \f[B]the Oracle Java Root Certificate program\f[R] [https://www.oracle.com/java/technologies/javase/carootcertsprogram.html]. If you request a signed certificate from a CA, and a certificate -authenticating that CA\[aq]s public key hasn\[aq]t been added to +authenticating that CA\(aqs public key hasn\(aqt been added to \f[CR]cacerts\f[R], then you must import a certificate from that CA as a trusted certificate. .PP A certificate from a CA is usually self\-signed or signed by another CA. If it is signed by another CA, you need a certificate that authenticates -that CA\[aq]s public key. +that CA\(aqs public key. .PP For example, you have obtained a \f[I]X\f[R]\f[CR].cer\f[R] file from a company that is a CA and the file is supposed to be a self\-signed -certificate that authenticates that CA\[aq]s public key. +certificate that authenticates that CA\(aqs public key. Before you import it as a trusted certificate, you should ensure that the certificate is valid by: .IP "1." 3 @@ -2043,9 +1946,9 @@ public key repository shows. .PP Only when the fingerprints are equal is it assured that the certificate -wasn\[aq]t replaced in transit with somebody else\[aq]s certificate -(such as an attacker\[aq]s certificate). -If such an attack takes place, and you didn\[aq]t check the certificate +wasn\(aqt replaced in transit with somebody else\(aqs certificate (such +as an attacker\(aqs certificate). +If such an attack takes place, and you didn\(aqt check the certificate before you imported it, then you would be trusting anything that the attacker signed. .RE @@ -2060,7 +1963,7 @@ .RS .PP \f[CR]keytool \-importcert \-alias\f[R] \f[I]alias\f[R] -\f[CR]\-file *X*\f[R].cer\[ga] +\f[CR]\-file *X*\f[R].cer\(ga .RE .PP This command creates a trusted certificate entry in the keystore from @@ -2075,9 +1978,9 @@ with a certificate chain. .PP The certificate chain is one of the following: -.IP \[bu] 2 +.IP \(bu 2 Returned by the CA when the CA reply is a chain. -.IP \[bu] 2 +.IP \(bu 2 Constructed when the CA reply is a single certificate. This certificate chain is constructed by using the certificate reply and trusted certificates available either in the keystore where you import @@ -2132,7 +2035,7 @@ During the import, all new entries in the destination keystore will have the same alias names and protection passwords (for secret keys and private keys). -If the \f[CR]keytool\f[R] command can\[aq]t recover the private keys or +If the \f[CR]keytool\f[R] command can\(aqt recover the private keys or secret keys from the source keystore, then it prompts you for a password. If it detects alias duplication, then it asks you for a new alias, and @@ -2166,11 +2069,11 @@ .SH GENERATING CERTIFICATES FOR AN SSL SERVER The following are \f[CR]keytool\f[R] commands used to generate key pairs and certificates for three entities: -.IP \[bu] 2 +.IP \(bu 2 Root CA (\f[CR]root\f[R]) -.IP \[bu] 2 +.IP \(bu 2 Intermediate CA (\f[CR]ca\f[R]) -.IP \[bu] 2 +.IP \(bu 2 SSL server (\f[CR]server\f[R]) .PP Ensure that you store all the certificates in the same keystore. @@ -2204,7 +2107,6 @@ The two most applicable entry types for the \f[CR]keytool\f[R] command include the following: .RS -.PP Key entries: Each entry holds very sensitive cryptographic key information, which is stored in a protected format to prevent unauthorized access. @@ -2215,7 +2117,6 @@ The \f[CR]keytool\f[R] command can handle both types of entries, while the \f[CR]jarsigner\f[R] tool only handles the latter type of entry, that is private keys and their associated certificate chains. -.PP Trusted certificate entries: Each entry contains a single public key certificate that belongs to another party. The entry is called a trusted certificate because the keystore owner @@ -2229,7 +2130,6 @@ All keystore entries (key and trusted certificate entries) are accessed by way of unique aliases. .RS -.PP An alias is specified when you add an entity to the keystore with the \f[CR]\-genseckey\f[R] command to generate a secret key, the \f[CR]\-genkeypair\f[R] command to generate a key pair (public and @@ -2237,7 +2137,6 @@ certificate or certificate chain to the list of trusted certificates. Subsequent \f[CR]keytool\f[R] commands must use this same alias to refer to the entity. -.PP For example, you can use the alias \f[CR]duke\f[R] to generate a new public/private key pair and wrap the public key into a self\-signed certificate with the following command. @@ -2247,22 +2146,20 @@ \f[CR]keytool \-genkeypair \-alias duke \-keyalg rsa \-keypass\f[R] \f[I]passwd\f[R] .RE -.PP This example specifies an initial \f[I]passwd\f[R] required by subsequent commands to access the private key associated with the alias \f[CR]duke\f[R]. -If you later want to change Duke\[aq]s private key password, use a +If you later want to change Duke\(aqs private key password, use a command such as the following: .RS .PP \f[CR]keytool \-keypasswd \-alias duke \-keypass\f[R] \f[I]passwd\f[R] \f[CR]\-new\f[R] \f[I]newpasswd\f[R] .RE -.PP This changes the initial \f[I]passwd\f[R] to \f[I]newpasswd\f[R]. -A password shouldn\[aq]t be specified on a command line or in a script +A password shouldn\(aqt be specified on a command line or in a script unless it is for testing purposes, or you are on a secure system. -If you don\[aq]t specify a required password option on a command line, +If you don\(aqt specify a required password option on a command line, then you are prompted for it. .RE .TP @@ -2274,25 +2171,22 @@ implementations, where each implementation is that for a particular type of keystore. .RS -.PP Currently, two command\-line tools (\f[CR]keytool\f[R] and \f[CR]jarsigner\f[R]) make use of keystore implementations. Because the \f[CR]KeyStore\f[R] class is \f[CR]public\f[R], users can write additional security applications that use it. -.PP In JDK 9 and later, the default keystore implementation is \f[CR]PKCS12\f[R]. This is a cross platform keystore based on the RSA PKCS12 Personal Information Exchange Syntax Standard. -This standard is primarily meant for storing or transporting a -user\[aq]s private keys, certificates, and miscellaneous secrets. +This standard is primarily meant for storing or transporting a user\(aqs +private keys, certificates, and miscellaneous secrets. There is another built\-in implementation, provided by Oracle. It implements the keystore as a file with a proprietary keystore type (format) named \f[CR]JKS\f[R]. It protects each private key with its individual password, and also protects the integrity of the entire keystore with a (possibly different) password. -.PP Keystore implementations are provider\-based. More specifically, the application interfaces supplied by \f[CR]KeyStore\f[R] are implemented in terms of a Service Provider @@ -2306,15 +2200,13 @@ To provide a keystore implementation, clients must implement a provider and supply a \f[CR]KeystoreSpi\f[R] subclass implementation, as described in Steps to Implement and Integrate a Provider. -.PP Applications can choose different types of keystore implementations from different providers, using the \f[CR]getInstance\f[R] factory method supplied in the \f[CR]KeyStore\f[R] class. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private/secret keys in the keystore and the integrity of the keystore. -Keystore implementations of different types aren\[aq]t compatible. -.PP +Keystore implementations of different types aren\(aqt compatible. The \f[CR]keytool\f[R] command works on any file\-based keystore implementation. It treats the keystore location that is passed to it at the command line @@ -2322,22 +2214,19 @@ which it loads the keystore information. The \f[CR]jarsigner\f[R] commands can read a keystore from any location that can be specified with a URL. -.PP For \f[CR]keytool\f[R] and \f[CR]jarsigner\f[R], you can specify a keystore type at the command line, with the \f[CR]\-storetype\f[R] option. -.PP -If you don\[aq]t explicitly specify a keystore type, then the tools +If you don\(aqt explicitly specify a keystore type, then the tools choose a keystore implementation based on the value of the \f[CR]keystore.type\f[R] property specified in the security properties file. The security properties file is called \f[CR]java.security\f[R], and resides in the security properties directory: -.IP \[bu] 2 +.IP \(bu 2 \f[B]Linux and macOS:\f[R] \f[CR]java.home/lib/security\f[R] -.IP \[bu] 2 -\f[B]Windows:\f[R] \f[CR]java.home\[rs]lib\[rs]security\f[R] -.PP +.IP \(bu 2 +\f[B]Windows:\f[R] \f[CR]java.home\(rslib\(rssecurity\f[R] Each tool gets the \f[CR]keystore.type\f[R] value and then examines all the currently installed providers until it finds one that implements a keystores of that type. @@ -2351,7 +2240,6 @@ .PP \f[CR]KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());\f[R] .RE -.PP The default keystore type is \f[CR]pkcs12\f[R], which is a cross\-platform keystore based on the RSA PKCS12 Personal Information Exchange Syntax Standard. @@ -2360,19 +2248,16 @@ .PP \f[CR]keystore.type=pkcs12\f[R] .RE -.PP To have the tools utilize a keystore implementation other than the default, you can change that line to specify a different keystore type. -For example, if you want to use the Oracle\[aq]s \f[CR]jks\f[R] keystore +For example, if you want to use the Oracle\(aqs \f[CR]jks\f[R] keystore implementation, then change the line to the following: .RS .PP \f[CR]keystore.type=jks\f[R] .RE -.PP \f[B]Note:\f[R] -.PP -Case doesn\[aq]t matter in keystore type designations. +Case doesn\(aqt matter in keystore type designations. For example, \f[CR]JKS\f[R] would be considered the same as \f[CR]jks\f[R]. .RE @@ -2384,28 +2269,28 @@ value. The following terms are related to certificates: .RS -.IP \[bu] 2 +.IP \(bu 2 Public Keys: These are numbers associated with a particular entity, and are intended to be known to everyone who needs to have trusted interactions with that entity. Public keys are used to verify signatures. -.IP \[bu] 2 +.IP \(bu 2 Digitally Signed: If some data is digitally signed, then it is stored with the identity of an entity and a signature that proves that entity knows about the data. -The data is rendered unforgeable by signing with the entity\[aq]s -private key. -.IP \[bu] 2 +The data is rendered unforgeable by signing with the entity\(aqs private +key. +.IP \(bu 2 Identity: A known way of addressing an entity. In some systems, the identity is the public key, and in others it can be anything from an Oracle Solaris UID to an email address to an X.509 distinguished name. -.IP \[bu] 2 +.IP \(bu 2 Signature: A signature is computed over some data using the private key of an entity. The signer, which in the case of a certificate is also known as the issuer. -.IP \[bu] 2 +.IP \(bu 2 Private Keys: These are numbers, each of which is supposed to be known only to the particular entity whose private key it is (that is, it is supposed to be kept secret). @@ -2414,11 +2299,10 @@ In a typical public key crypto system, such as DSA, a private key corresponds to exactly one public key. Private keys are used to compute signatures. -.IP \[bu] 2 +.IP \(bu 2 Entity: An entity is a person, organization, program, computer, business, bank, or something else you are trusting to some degree. -.PP -Public key cryptography requires access to users\[aq] public keys. +Public key cryptography requires access to users\(aq public keys. In a large\-scale networked environment, it is impossible to guarantee that prior relationships between communicating entities were established or that a trusted repository exists with all used public keys. @@ -2431,14 +2315,12 @@ because they are bound by legal agreements. There are many public Certification Authorities, such as DigiCert, Comodo, Entrust, and so on. -.PP You can also run your own Certification Authority using products such as Microsoft Certificate Server or the Entrust CA product for your organization. With the \f[CR]keytool\f[R] command, it is possible to display, import, and export certificates. It is also possible to generate self\-signed certificates. -.PP The \f[CR]keytool\f[R] command currently handles X.509 certificates. .RE .TP @@ -2451,10 +2333,9 @@ The Definite Encoding Rules describe a single way to store and transfer that data. .RS -.PP All X.509 certificates have the following data, in addition to the signature: -.IP \[bu] 2 +.IP \(bu 2 Version: This identifies which version of the X.509 standard applies to this certificate, which affects what information can be specified in it. Thus far, three versions are defined. @@ -2462,18 +2343,18 @@ certificates. It generates v3 certificates. .RS 2 -.IP \[bu] 2 +.IP \(bu 2 X.509 Version 1 has been available since 1988, is widely deployed, and is the most generic. -.IP \[bu] 2 +.IP \(bu 2 X.509 Version 2 introduced the concept of subject and issuer unique identifiers to handle the possibility of reuse of subject or issuer names over time. Most certificate profile documents strongly recommend that names not be -reused and that certificates shouldn\[aq]t make use of unique +reused and that certificates shouldn\(aqt make use of unique identifiers. -Version 2 certificates aren\[aq]t widely used. -.IP \[bu] 2 +Version 2 certificates aren\(aqt widely used. +.IP \(bu 2 X.509 Version 3 is the most recent (1996) and supports the notion of extensions where anyone can define an extension and include it in the certificate. @@ -2490,17 +2371,17 @@ certificate extension indicates that the associated private key should only be used for signing certificates and not for SSL use. .RE -.IP \[bu] 2 +.IP \(bu 2 Serial number: The entity that created the certificate is responsible for assigning it a serial number to distinguish it from other certificates it issues. This information is used in numerous ways. For example, when a certificate is revoked its serial number is placed in a Certificate Revocation List (CRL). -.IP \[bu] 2 +.IP \(bu 2 Signature algorithm identifier: This identifies the algorithm used by the CA to sign the certificate. -.IP \[bu] 2 +.IP \(bu 2 Issuer name: The X.500 Distinguished Name of the entity that signed the certificate. This is typically a CA. @@ -2508,7 +2389,7 @@ certificate. In some cases, such as root or top\-level CA certificates, the issuer signs its own certificate. -.IP \[bu] 2 +.IP \(bu 2 Validity period: Each certificate is valid only for a limited amount of time. This period is described by a start date and time and an end date and @@ -2519,7 +2400,7 @@ one is willing to pay for a certificate. This is the expected period that entities can rely on the public value, when the associated private key has not been compromised. -.IP \[bu] 2 +.IP \(bu 2 Subject name: The name of the entity whose public key the certificate identifies. This name uses the X.500 standard, so it is intended to be unique across @@ -2532,10 +2413,10 @@ \f[CR]CN=Java Duke, OU=Java Software Division, O=Oracle Corporation, C=US\f[R] .RE .PP -These refer to the subject\[aq]s common name (CN), organizational unit +These refer to the subject\(aqs common name (CN), organizational unit (OU), organization (O), and country (C). .RE -.IP \[bu] 2 +.IP \(bu 2 Subject public key information: This is the public key of the entity being named with an algorithm identifier that specifies which public key crypto system this key belongs to and any associated key parameters. @@ -2548,7 +2429,6 @@ The first certificate in the chain contains the public key that corresponds to the private key. .RS -.PP When keys are first generated, the chain usually starts off containing a single element, a self\-signed certificate. See \-genkeypair in \f[B]Commands\f[R]. @@ -2560,16 +2440,14 @@ public/private key pair, it also wraps the public key into a self\-signed certificate (unless the \f[CR]\-signer\f[R] option is specified). -.PP Later, after a Certificate Signing Request (CSR) was generated with the \f[CR]\-certreq\f[R] command and sent to a Certification Authority (CA), the response from the CA is imported with \f[CR]\-importcert\f[R], and the self\-signed certificate is replaced by a chain of certificates. At the bottom of the chain is the certificate (reply) issued by the CA -authenticating the subject\[aq]s public key. -The next certificate in the chain is one that authenticates the CA\[aq]s +authenticating the subject\(aqs public key. +The next certificate in the chain is one that authenticates the CA\(aqs public key. -.PP In many cases, this is a self\-signed certificate, which is a certificate from the CA authenticating its own public key, and the last certificate in the chain. @@ -2580,44 +2458,40 @@ by a different CA that authenticates the public key of the CA you sent the CSR to. The next certificate in the chain is a certificate that authenticates -the second CA\[aq]s key, and so on, until a self\-signed root -certificate is reached. +the second CA\(aqs key, and so on, until a self\-signed root certificate +is reached. Each certificate in the chain (after the first) authenticates the public key of the signer of the previous certificate in the chain. -.PP Many CAs only return the issued certificate, with no supporting chain, especially when there is a flat hierarchy (no intermediates CAs). In this case, the certificate chain must be established from trusted certificate information already stored in the keystore. -.PP A different reply format (defined by the PKCS #7 standard) includes the supporting certificate chain in addition to the issued certificate. Both reply formats can be handled by the \f[CR]keytool\f[R] command. -.PP The top\-level (root) CA certificate is self\-signed. -However, the trust into the root\[aq]s public key doesn\[aq]t come from +However, the trust into the root\(aqs public key doesn\(aqt come from the root certificate itself, but from other sources such as a newspaper. This is because anybody could generate a self\-signed certificate with the distinguished name of, for example, the DigiCert root CA. The root CA public key is widely known. The only reason it is stored in a certificate is because this is the format understood by most tools, so the certificate in this case is only -used as a vehicle to transport the root CA\[aq]s public key. +used as a vehicle to transport the root CA\(aqs public key. Before you add the root CA certificate to your keystore, you should view it with the \f[CR]\-printcert\f[R] option and compare the displayed fingerprint with the well\-known fingerprint obtained from a newspaper, -the root CA\[aq]s Web page, and so on. +the root CA\(aqs Web page, and so on. .RE .TP cacerts Certificates File A certificates file named \f[CR]cacerts\f[R] resides in the security properties directory: .RS -.IP \[bu] 2 +.IP \(bu 2 \f[B]Linux and macOS:\f[R] \f[I]JAVA_HOME\f[R]\f[CR]/lib/security\f[R] -.IP \[bu] 2 -\f[B]Windows:\f[R] \f[I]JAVA_HOME\f[R]\f[CR]\[rs]lib\[rs]security\f[R] -.PP +.IP \(bu 2 +\f[B]Windows:\f[R] \f[I]JAVA_HOME\f[R]\f[CR]\(rslib\(rssecurity\f[R] The \f[CR]cacerts\f[R] file represents a system\-wide keystore with CA certificates. System administrators can configure and manage that file with the @@ -2631,14 +2505,11 @@ .PP \f[CR]keytool \-list \-cacerts\f[R] .RE -.PP The initial password of the \f[CR]cacerts\f[R] keystore file is \f[CR]changeit\f[R]. System administrators should change that password and the default access permission of that file upon installing the SDK. -.PP \f[B]Note:\f[R] -.PP It is important to verify your \f[CR]cacerts\f[R] file. Because you trust the CAs in the \f[CR]cacerts\f[R] file as entities for signing and issuing certificates to other entities, you must manage the @@ -2648,12 +2519,11 @@ It is your responsibility to verify the trusted root CA certificates bundled in the \f[CR]cacerts\f[R] file and make your own trust decisions. -.PP To remove an untrusted CA certificate from the \f[CR]cacerts\f[R] file, use the \f[CR]\-delete\f[R] option of the \f[CR]keytool\f[R] command. -You can find the \f[CR]cacerts\f[R] file in the JDK\[aq]s +You can find the \f[CR]cacerts\f[R] file in the JDK\(aqs \f[CR]$JAVA_HOME/lib/security\f[R] directory. -Contact your system administrator if you don\[aq]t have permission to +Contact your system administrator if you don\(aqt have permission to edit this file. .RE .TP @@ -2665,21 +2535,18 @@ export certificates to other applications by email or through some other mechanism. .RS -.PP Certificates read by the \f[CR]\-importcert\f[R] and \f[CR]\-printcert\f[R] commands can be in either this format or binary encoded. The \f[CR]\-exportcert\f[R] command by default outputs a certificate in binary encoding, but will instead output a certificate in the printable encoding format, when the \f[CR]\-rfc\f[R] option is specified. -.PP The \f[CR]\-list\f[R] command by default prints the SHA\-256 fingerprint of a certificate. If the \f[CR]\-v\f[R] option is specified, then the certificate is printed in human\-readable format. If the \f[CR]\-rfc\f[R] option is specified, then the certificate is output in the printable encoding format. -.PP In its printable encoding format, the encoded certificate is bounded at the beginning and end by the following text: .IP @@ -2698,19 +2565,18 @@ fields of X.509 certificates. The \f[CR]keytool\f[R] command supports the following subparts: .RS -.IP \[bu] 2 +.IP \(bu 2 commonName: The common name of a person such as Susan Jones. -.IP \[bu] 2 +.IP \(bu 2 organizationUnit: The small organization (such as department or division) name. For example, Purchasing. -.IP \[bu] 2 +.IP \(bu 2 localityName: The locality (city) name, for example, Palo Alto. -.IP \[bu] 2 +.IP \(bu 2 stateName: State or province name, for example, California. -.IP \[bu] 2 +.IP \(bu 2 country: Two\-letter country code, for example, CH. -.PP When you supply a distinguished name string as the value of a \f[CR]\-dname\f[R] option, such as for the \f[CR]\-genkeypair\f[R] command, the string must be in the following format: @@ -2718,7 +2584,6 @@ .PP \f[CR]CN=cName, OU=orgUnit, O=org, L=city, S=state, C=countryCode\f[R] .RE -.PP All the following items represent actual values and the previous keywords are abbreviations for the following: .IP @@ -2730,44 +2595,38 @@ S=stateName C=country .EE -.PP A sample distinguished name string is: .RS .PP \f[CR]CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, S=California, C=US\f[R] .RE -.PP A sample command using such a string is: .RS .PP -\f[CR]keytool \-genkeypair \-dname \[dq]CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, S=California, C=US\[dq] \-alias mark \-keyalg rsa\f[R] +\f[CR]keytool \-genkeypair \-dname \(dqCN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, S=California, C=US\(dq \-alias mark \-keyalg rsa\f[R] .RE -.PP -Case doesn\[aq]t matter for the keyword abbreviations. +Case doesn\(aqt matter for the keyword abbreviations. For example, CN, cn, and Cn are all treated the same. -.PP Order matters; each subcomponent must appear in the designated order. -However, it isn\[aq]t necessary to have all the subcomponents. +However, it isn\(aqt necessary to have all the subcomponents. You can use a subset, for example: .RS .PP \f[CR]CN=Smith, OU=Java, O=Oracle, C=US\f[R] .RE -.PP If a distinguished name string value contains a comma, then the comma -must be escaped by a backslash (\[rs]) character when you specify the +must be escaped by a backslash (\(rs) character when you specify the string on a command line, as in: .RS .PP -\f[CR]cn=Jack, ou=Java\[rs], Product Development, o=Oracle, c=US\f[R] +\f[CR]cn=Jack, ou=Java\(rs, Product Development, o=Oracle, c=US\f[R] .RE -.PP It is never necessary to specify a distinguished name string on a command line. When the distinguished name is needed for a command, but not supplied on the command line, the user is prompted for each of the subcomponents. -In this case, a comma doesn\[aq]t need to be escaped by a backslash -(\[rs]). +In this case, a comma doesn\(aqt need to be escaped by a backslash +(\(rs). .RE .SH WARNINGS .SH IMPORTING TRUSTED CERTIFICATES WARNING @@ -2782,13 +2641,13 @@ Ensure that the displayed certificate fingerprints match the expected ones. For example, suppose someone sends or emails you a certificate that you -put it in a file named \f[CR]\[rs]tmp\[rs]cert\f[R]. +put it in a file named \f[CR]\(rstmp\(rscert\f[R]. Before you consider adding the certificate to your list of trusted certificates, you can execute a \f[CR]\-printcert\f[R] command to view its fingerprints, as follows: .IP .EX - keytool \-printcert \-file \[rs]tmp\[rs]cert + keytool \-printcert \-file \(rstmp\(rscert Owner: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll Issuer: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll Serial Number: 59092b34 @@ -2829,15 +2688,15 @@ Then call or otherwise contact the person who sent the certificate and compare the fingerprints that you see with the ones that they show. Only when the fingerprints are equal is it guaranteed that the -certificate wasn\[aq]t replaced in transit with somebody else\[aq]s -certificate such as an attacker\[aq]s certificate. -If such an attack took place, and you didn\[aq]t check the certificate +certificate wasn\(aqt replaced in transit with somebody else\(aqs +certificate such as an attacker\(aqs certificate. +If such an attack took place, and you didn\(aqt check the certificate before you imported it, then you would be trusting anything the attacker signed, for example, a JAR file with malicious class files inside. .PP \f[B]Note:\f[R] .PP -It isn\[aq]t required that you execute a \f[CR]\-printcert\f[R] command +It isn\(aqt required that you execute a \f[CR]\-printcert\f[R] command before importing a certificate. This is because before you add a certificate to the list of trusted certificates in the keystore, the \f[CR]\-importcert\f[R] command prints @@ -2852,9 +2711,9 @@ Some commands require a private/secret key password. Passwords can be specified on the command line in the \f[CR]\-storepass\f[R] and \f[CR]\-keypass\f[R] options. -However, a password shouldn\[aq]t be specified on a command line or in a +However, a password shouldn\(aqt be specified on a command line or in a script unless it is for testing, or you are on a secure system. -When you don\[aq]t specify a required password option on a command line, +When you don\(aqt specify a required password option on a command line, you are prompted for it. .SH CERTIFICATE CONFORMANCE WARNING \f[B]Internet X.509 Public Key Infrastructure Certificate and @@ -2863,11 +2722,11 @@ X.509 certificates, which includes what values and value combinations are valid for certificate fields and extensions. .PP -The \f[CR]keytool\f[R] command doesn\[aq]t enforce all of these rules so -it can generate certificates that don\[aq]t conform to the standard, -such as self\-signed certificates that would be used for internal -testing purposes. -Certificates that don\[aq]t conform to the standard might be rejected by +The \f[CR]keytool\f[R] command doesn\(aqt enforce all of these rules so +it can generate certificates that don\(aqt conform to the standard, such +as self\-signed certificates that would be used for internal testing +purposes. +Certificates that don\(aqt conform to the standard might be rejected by the JDK or other applications. Users should ensure that they provide the correct options for \f[CR]\-dname\f[R], \f[CR]\-ext\f[R], and so on. @@ -2901,20 +2760,20 @@ .PP The methods of determining whether the certificate reply is trusted are as follows: -.IP \[bu] 2 +.IP \(bu 2 If the reply is a single X.509 certificate, then the \f[CR]keytool\f[R] command attempts to establish a trust chain, starting at the certificate reply and ending at a self\-signed certificate (belonging to a root CA). The certificate reply and the hierarchy of certificates is used to authenticate the certificate reply from the new certificate chain of aliases. -If a trust chain can\[aq]t be established, then the certificate reply -isn\[aq]t imported. -In this case, the \f[CR]keytool\f[R] command doesn\[aq]t print the +If a trust chain can\(aqt be established, then the certificate reply +isn\(aqt imported. +In this case, the \f[CR]keytool\f[R] command doesn\(aqt print the certificate and prompt the user to verify it, because it is very difficult for a user to determine the authenticity of the certificate reply. -.IP \[bu] 2 +.IP \(bu 2 If the reply is a PKCS #7 formatted certificate chain or a sequence of X.509 certificates, then the chain is ordered with the user certificate first followed by zero or more CA certificates. @@ -2922,16 +2781,16 @@ the\f[CR]\-trustcacerts\f[R] option was specified, the \f[CR]keytool\f[R] command attempts to match it with any of the trusted certificates in the keystore or the \f[CR]cacerts\f[R] keystore file. -If the chain doesn\[aq]t end with a self\-signed root CA certificate and +If the chain doesn\(aqt end with a self\-signed root CA certificate and the \f[CR]\-trustcacerts\f[R] option was specified, the \f[CR]keytool\f[R] command tries to find one from the trusted certificates in the keystore or the \f[CR]cacerts\f[R] keystore file and add it to the end of the chain. -If the certificate isn\[aq]t found and the \f[CR]\-noprompt\f[R] option -isn\[aq]t specified, the information of the last certificate in the -chain is printed, and the user is prompted to verify it. +If the certificate isn\(aqt found and the \f[CR]\-noprompt\f[R] option +isn\(aqt specified, the information of the last certificate in the chain +is printed, and the user is prompted to verify it. .PP -If the public key in the certificate reply matches the user\[aq]s public +If the public key in the certificate reply matches the user\(aqs public key already stored with \f[CR]alias\f[R], then the old certificate chain is replaced with the new certificate chain in the reply. The old chain can only be replaced with a valid \f[CR]keypass\f[R], and diff -Nru openjdk-25-25.0.3+9/debian/man/rmiregistry.1 openjdk-25-25.0.4+7/debian/man/rmiregistry.1 --- openjdk-25-25.0.3+9/debian/man/rmiregistry.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/rmiregistry.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "RMIREGISTRY" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "RMIREGISTRY" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME rmiregistry \- create and start a remote object registry on the specified port on the current host @@ -25,8 +25,8 @@ \f[CR]rmiregistry &\f[R] .RE .PP -A remote object registry is a bootstrap naming service that\[aq]s used -by RMI servers on the same host to bind remote objects to names. +A remote object registry is a bootstrap naming service that\(aqs used by +RMI servers on the same host to bind remote objects to names. Clients on local and remote hosts can then look up remote objects and make remote method invocations. .PP @@ -41,17 +41,17 @@ .PP The URL\-based methods of the \f[CR]java.rmi.Naming\f[R] class operate on a registry and can be used to: -.IP \[bu] 2 +.IP \(bu 2 Bind the specified name to a remote object -.IP \[bu] 2 +.IP \(bu 2 Return an array of the names bound in the registry -.IP \[bu] 2 +.IP \(bu 2 Return a reference, a stub, for the remote object associated with the specified name -.IP \[bu] 2 +.IP \(bu 2 Rebind the specified name to a new remote object -.IP \[bu] 2 -Destroy the binding for the specified name that\[aq]s associated with a +.IP \(bu 2 +Destroy the binding for the specified name that\(aqs associated with a remote object .SH OPTIONS .TP diff -Nru openjdk-25-25.0.3+9/debian/man/serialver.1 openjdk-25-25.0.4+7/debian/man/serialver.1 --- openjdk-25-25.0.3+9/debian/man/serialver.1 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/man/serialver.1 2026-07-22 00:22:54.000000000 +0000 @@ -1,6 +1,6 @@ -.\" Automatically generated by Pandoc 3.1.11.1 +.\" Automatically generated by Pandoc 3.10 .\" -.TH "SERIALVER" "1" "2026" "JDK 25.0.3" "JDK Commands" +.TH "SERIALVER" "1" "2026" "JDK 25.0.4" "JDK Commands" .SH NAME serialver \- return the \f[CR]serialVersionUID\f[R] for one or more classes in a form suitable for copying into an evolving class diff -Nru openjdk-25-25.0.3+9/debian/patches/jdk-8369817.diff openjdk-25-25.0.4+7/debian/patches/jdk-8369817.diff --- openjdk-25-25.0.3+9/debian/patches/jdk-8369817.diff 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/patches/jdk-8369817.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -From 008d8d914cd4dd4573361390ee31120134338802 Mon Sep 17 00:00:00 2001 -From: Francesco Andreuzzi -Date: Wed, 15 Oct 2025 09:17:49 +0000 -Subject: [PATCH] 8369817: [TESTBUG] EmptyPath::toString is ignored -Origin: https://github.com/openjdk/jdk/commit/008d8d914cd4dd4573361390ee31120134338802 -Bug: https://bugs.openjdk.org/browse/JDK-8369817 -Reviewed-by: jpai, ayang - ---- - test/jdk/java/io/File/EmptyPath.java | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/test/jdk/java/io/File/EmptyPath.java b/test/jdk/java/io/File/EmptyPath.java -index 55c4af96fe3..374a69c7959 100644 ---- a/test/jdk/java/io/File/EmptyPath.java -+++ b/test/jdk/java/io/File/EmptyPath.java -@@ -382,9 +382,8 @@ public void toPath() { - } - - @Test -- public String toString() { -+ public void testToString() { - assertEquals(EMPTY_STRING, f.toString()); -- return EMPTY_STRING; - } - - @Test --- -2.51.0 - diff -Nru openjdk-25-25.0.3+9/debian/patches/jdk-8377035.diff openjdk-25-25.0.4+7/debian/patches/jdk-8377035.diff --- openjdk-25-25.0.3+9/debian/patches/jdk-8377035.diff 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/patches/jdk-8377035.diff 2026-07-22 00:22:43.000000000 +0000 @@ -0,0 +1,72 @@ +From 4e7106d8919652c1dcd4a501a11057e1a8179b3e Mon Sep 17 00:00:00 2001 +From: Harshit +Date: Fri, 13 Feb 2026 10:43:26 +0000 +Subject: [PATCH] 8377035: [s390x] Disable JSR166 test cases which uses virtual + threads + +Reviewed-by: jpai, alanb, amitkumar +Bug: https://bugs.openjdk.org/browse/JDK-8377035 +Origin: upstream, https://github.com/openjdk/jdk/commit/4e7106d8919652c1dcd4a501a11057e1a8179b3e + +--- + .../java/util/concurrent/tck/JSR166TestCase.java | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/test/jdk/java/util/concurrent/tck/JSR166TestCase.java b/test/jdk/java/util/concurrent/tck/JSR166TestCase.java +index f1f32bee310..641fbf2e495 100644 +--- a/test/jdk/java/util/concurrent/tck/JSR166TestCase.java ++++ b/test/jdk/java/util/concurrent/tck/JSR166TestCase.java +@@ -37,7 +37,9 @@ + /* + * @test id=default + * @summary Conformance testing variant of JSR-166 tck tests. ++ * @library /test/lib + * @build * ++ * @build jdk.test.lib.Platform + * @modules java.management java.base/jdk.internal.util + * @run junit/othervm/timeout=1000 JSR166TestCase + */ +@@ -46,7 +48,9 @@ + * @test id=forkjoinpool-common-parallelism + * @summary Test implementation details variant of JSR-166 + * tck tests with ForkJoinPool common parallelism. ++ * @library /test/lib + * @build * ++ * @build jdk.test.lib.Platform + * @modules java.management java.base/jdk.internal.util + * @run junit/othervm/timeout=1000 + * --add-opens java.base/java.util.concurrent=ALL-UNNAMED +@@ -68,7 +72,9 @@ + * @summary Remaining test implementation details variant of + * JSR-166 tck tests apart from ForkJoinPool common + * parallelism. ++ * @library /test/lib + * @build * ++ * @build jdk.test.lib.Platform + * @modules java.management java.base/jdk.internal.util + * @run junit/othervm/timeout=1000 + * --add-opens java.base/java.util.concurrent=ALL-UNNAMED +@@ -135,6 +141,7 @@ + import java.util.concurrent.atomic.AtomicReference; + import java.util.regex.Pattern; + ++import jdk.test.lib.Platform; + import junit.framework.Test; + import junit.framework.TestCase; + import junit.framework.TestResult; +@@ -624,6 +631,13 @@ public static Test suite() { + "SynchronousQueue20Test", + "ReentrantReadWriteLock20Test" + }; ++ ++ if (Platform.isS390x()) { ++ java20TestClassNames = new String[] { ++ "ForkJoinPool20Test", ++ }; ++ } ++ + addNamedTestClasses(suite, java20TestClassNames); + } + +-- +2.53.0 diff -Nru openjdk-25-25.0.3+9/debian/patches/jdk-8385738.diff openjdk-25-25.0.4+7/debian/patches/jdk-8385738.diff --- openjdk-25-25.0.3+9/debian/patches/jdk-8385738.diff 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/patches/jdk-8385738.diff 2026-07-22 00:22:43.000000000 +0000 @@ -0,0 +1,160 @@ +From 2688bf7305ff323e02636bfcc37497ebd1563ab5 Mon Sep 17 00:00:00 2001 +From: Vladimir Petko +Date: Wed, 3 Jun 2026 06:35:57 +0000 +Subject: [PATCH] 8385738: Javadoc does not produce reproducible output due to + the snippet ids + The top level type generation order is not deterministic due to the + directory listing being non-deterministic. Snippet ids are + monotonically incremented during the javadoc run. + This means that the generated snippet ids are not reproducible. + This PR changes Set to the Map so that each page uses a separate + snippet id counter. + +Bug: https://bugs.openjdk.org/browse/JDK-8385738 +Reviewed-by: nbenalla +--- + .../formats/html/taglets/SnippetTaglet.java | 8 +- + .../doclet/testSnippetTag/TestSnippetTag.java | 95 ++++++++++++++++++- + 2 files changed, 98 insertions(+), 5 deletions(-) + +--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/taglets/SnippetTaglet.java ++++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/taglets/SnippetTaglet.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2020, 2025, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2020, 2026, 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,6 +49,7 @@ + + import jdk.javadoc.doclet.Taglet; + import jdk.javadoc.internal.doclets.formats.html.HtmlConfiguration; ++import jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter; + import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyles; + import jdk.javadoc.internal.doclets.formats.html.taglets.snippet.Action; + import jdk.javadoc.internal.doclets.formats.html.taglets.snippet.ParseException; +@@ -124,7 +125,8 @@ + if (id != null && !id.isBlank()) { + pre.put(HtmlAttr.ID, id); + } else { +- pre.put(HtmlAttr.ID, config.htmlIds.forSnippet(element, ids).name()); ++ var set = ids.computeIfAbsent(tagletWriter.htmlWriter, _ -> new HashSet<>()); ++ pre.put(HtmlAttr.ID, config.htmlIds.forSnippet(element, set).name()); + } + var code = HtmlTree.CODE() + .addUnchecked(Text.EMPTY); // Make sure the element is always rendered +@@ -205,7 +207,7 @@ + return snippetContainer.add(pre.add(code)); + } + +- private final Set ids = new HashSet<>(); ++ private final HashMap> ids = new HashMap<>(); + + private static final class BadSnippetException extends Exception { + +--- a/test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetTag.java ++++ b/test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetTag.java +@@ -39,6 +39,7 @@ + import java.nio.file.Paths; + import java.nio.file.StandardOpenOption; + import java.util.ArrayList; ++import java.util.Arrays; + import java.util.List; + import java.util.Optional; + import java.util.concurrent.atomic.AtomicInteger; +@@ -2675,4 +2676,94 @@ + """); + checkNoCrashes(); + } ++ ++ @Test ++ public void testSnippetIdCounterResetsPerPage(Path base) throws IOException { ++ Path src = base.resolve("src"); ++ ++ tb.writeJavaFiles(src, ++ """ ++ package p; ++ import java.lang.annotation.Target; ++ import java.lang.annotation.ElementType; ++ @Target({ElementType.TYPE, ElementType.METHOD}) ++ public @interface ACustomAnnotation { ++ } ++ """, ++ """ ++ package p; ++ import java.lang.annotation.Target; ++ import java.lang.annotation.ElementType; ++ @Target({ElementType.TYPE, ElementType.METHOD}) ++ public @interface ZCustomAnnotation { ++ } ++ """, ++ """ ++ package p; ++ /** Class A. */ ++ public class A { ++ /** ++ * First snippet on A.foo: ++ * {@snippet : ++ * int x = 1; // first ++ * } ++ * Second snippet on A.foo: ++ * {@snippet : ++ * int y = 2; // second ++ * } ++ */ ++ @ACustomAnnotation ++ @ZCustomAnnotation ++ public void foo() {} ++ } ++ """, ++ """ ++ package p; ++ /** Class B. */ ++ public class B { ++ /** ++ * First snippet on B.foo: ++ * {@snippet : ++ * int x = 1; // first ++ * } ++ * Second snippet on B.foo: ++ * {@snippet : ++ * int y = 2; // second ++ * } ++ */ ++ @ACustomAnnotation ++ @ZCustomAnnotation ++ public void foo() {} ++ } ++ """); ++ ++ javadoc("-d", base.resolve("out").toString(), ++ "-use", ++ "-sourcepath", src.toString(), ++ "p"); ++ checkExit(Exit.OK); ++ for (String cls : new String[] { ++ "A.html", ++ "B.html", ++ "class-use/ACustomAnnotation.html", ++ "class-use/ZCustomAnnotation.html"}) { ++ var file = base ++ .resolve("out") ++ .resolve("p") ++ .resolve(cls); ++ String content = Files.readString(file); ++ for (var snippetId : new String[] {"snippet-foo()1", "snippet-foo()2"}) { ++ checking("id \"" + snippetId + "\" present in " + cls); ++ if (content.contains("id=\"" + snippetId + "\"")) { ++ passed("found"); ++ } else { ++ failed("" + snippetId + " not found in " + ++ String.join("\n", Arrays.asList(content.split("\n")) ++ .stream() ++ .filter(l -> l.contains("pre class=\"snippet\"")) ++ .toList())); ++ } ++ } ++ } ++ } + } diff -Nru openjdk-25-25.0.3+9/debian/patches/jdk-8387580.diff openjdk-25-25.0.4+7/debian/patches/jdk-8387580.diff --- openjdk-25-25.0.3+9/debian/patches/jdk-8387580.diff 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/patches/jdk-8387580.diff 2026-07-22 00:22:43.000000000 +0000 @@ -0,0 +1,38 @@ +From b9ea4636bea0f6264b2c602e4203e8e604d8da6e Mon Sep 17 00:00:00 2001 +From: Vladimir Petko +Date: Tue, 7 Jul 2026 09:58:32 +1200 +Subject: [PATCH] fix(TemplateTable): use float operations for fast_xaccess() + and fstore(). + This PR changes fstore and fast_xaccess operations to generate float + (4 byte) instructions on S390x. This resolves out of bound read and + writes on float that causes a segmentation fault with + Compact Object Headers enabled. +Bug: https://bugs.openjdk.org/browse/JDK-8387580 +Origin: upstream, https://github.com/openjdk/jdk/commit/978dfecb6545166aee93a8e68c9c82535b0cb3e2 + +--- + src/hotspot/cpu/s390/templateTable_s390.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/hotspot/cpu/s390/templateTable_s390.cpp b/src/hotspot/cpu/s390/templateTable_s390.cpp +index 3b0929608a38d..a73e2ccbe55c4 100644 +--- a/src/hotspot/cpu/s390/templateTable_s390.cpp ++++ b/src/hotspot/cpu/s390/templateTable_s390.cpp +@@ -1055,7 +1055,7 @@ void TemplateTable::lstore() { + void TemplateTable::fstore() { + transition(ftos, vtos); + locals_index(Z_R1_scratch); +- __ freg2mem_opt(Z_ftos, faddress(_masm, Z_R1_scratch)); ++ __ freg2mem_opt(Z_ftos, faddress(_masm, Z_R1_scratch), false); + } + + void TemplateTable::dstore() { +@@ -3504,7 +3504,7 @@ void TemplateTable::fast_xaccess(TosState state) { + __ verify_oop(Z_tos); + break; + case ftos: +- __ mem2freg_opt(Z_ftos, field); ++ __ mem2freg_opt(Z_ftos, field, false); + break; + default: + ShouldNotReachHere(); diff -Nru openjdk-25-25.0.3+9/debian/patches/jdk-8388170-proposed.diff openjdk-25-25.0.4+7/debian/patches/jdk-8388170-proposed.diff --- openjdk-25-25.0.3+9/debian/patches/jdk-8388170-proposed.diff 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/patches/jdk-8388170-proposed.diff 2026-07-22 00:22:43.000000000 +0000 @@ -0,0 +1,304 @@ +From ea42ba233b9c228f891e0f334970f2e3adc66dae Mon Sep 17 00:00:00 2001 +From: Vladimir Petko +Date: Tue, 14 Jul 2026 14:34:14 +1200 +Subject: [PATCH] fix: do not use magic number in return address functions +Bug: https://bugs.openjdk.org/browse/JDK-8388170 + +--- + src/hotspot/cpu/aarch64/aarch64.ad | 6 +-- + src/hotspot/cpu/arm/arm_32.ad | 6 +-- + src/hotspot/cpu/ppc/ppc.ad | 6 +-- + src/hotspot/cpu/riscv/riscv.ad | 6 +-- + src/hotspot/cpu/s390/s390.ad | 68 ++++++++++++++++++++++------- + src/hotspot/cpu/x86/x86.ad | 6 +-- + src/hotspot/share/opto/machnode.hpp | 8 ++-- + 7 files changed, 72 insertions(+), 34 deletions(-) + +--- a/src/hotspot/cpu/aarch64/aarch64.ad ++++ b/src/hotspot/cpu/aarch64/aarch64.ad +@@ -1628,19 +1628,19 @@ + // from the start of the call to the point where the return address + // will point. + +-int MachCallStaticJavaNode::ret_addr_offset() ++int MachCallStaticJavaNode::ret_addr_offset() const + { + // call should be a simple bl + int off = 4; + return off; + } + +-int MachCallDynamicJavaNode::ret_addr_offset() ++int MachCallDynamicJavaNode::ret_addr_offset() const + { + return 16; // movz, movk, movk, bl + } + +-int MachCallRuntimeNode::ret_addr_offset() { ++int MachCallRuntimeNode::ret_addr_offset() const { + // for generated stubs the call will be + // bl(addr) + // or with far branches +--- a/src/hotspot/cpu/ppc/ppc.ad ++++ b/src/hotspot/cpu/ppc/ppc.ad +@@ -1171,12 +1171,12 @@ + + // PPC port: Removed use of lazy constant construct. + +-int MachCallStaticJavaNode::ret_addr_offset() { ++int MachCallStaticJavaNode::ret_addr_offset() const { + // It's only a single branch-and-link instruction. + return 4; + } + +-int MachCallDynamicJavaNode::ret_addr_offset() { ++int MachCallDynamicJavaNode::ret_addr_offset() const { + // Offset is 4 with postalloc expanded calls (bl is one instruction). We use + // postalloc expanded calls if we use inline caches and do not update method data. + if (UseInlineCaches) return 4; +@@ -1191,7 +1191,7 @@ + } + } + +-int MachCallRuntimeNode::ret_addr_offset() { ++int MachCallRuntimeNode::ret_addr_offset() const { + if (rule() == CallRuntimeDirect_rule) { + // CallRuntimeDirectNode uses call_c. + #if defined(ABI_ELFv2) +--- a/src/hotspot/cpu/riscv/riscv.ad ++++ b/src/hotspot/cpu/riscv/riscv.ad +@@ -1218,17 +1218,17 @@ + // from the start of the call to the point where the return address + // will point. + +-int MachCallStaticJavaNode::ret_addr_offset() ++int MachCallStaticJavaNode::ret_addr_offset() const + { + return 3 * NativeInstruction::instruction_size; // auipc + ld + jalr + } + +-int MachCallDynamicJavaNode::ret_addr_offset() ++int MachCallDynamicJavaNode::ret_addr_offset() const + { + return NativeMovConstReg::movptr2_instruction_size + (3 * NativeInstruction::instruction_size); // movptr2, auipc + ld + jal + } + +-int MachCallRuntimeNode::ret_addr_offset() { ++int MachCallRuntimeNode::ret_addr_offset() const { + // For address inside the code cache the call will be: + // auipc + jalr + // For real runtime callouts it will be 8 instructions +--- a/src/hotspot/cpu/s390/s390.ad ++++ b/src/hotspot/cpu/s390/s390.ad +@@ -886,29 +886,62 @@ + return 0; + } + +-int MachCallStaticJavaNode::ret_addr_offset() { ++int MachCallStaticJavaNode::ret_addr_offset() const { + if (_method) { +- return 8; ++ return MacroAssembler::call_far_pcrelative_size(); ++ + } else { + return MacroAssembler::call_far_patchable_ret_addr_offset(); + } + } + +-int MachCallDynamicJavaNode::ret_addr_offset() { ++int MachCallDynamicJavaNode::ret_addr_offset() const { + // Consider size of receiver type profiling (C2 tiers). + int profile_receiver_type_size = 0; + + int vtable_index = this->_vtable_index; + if (vtable_index == -4) { +- return 14 + profile_receiver_type_size; ++ return MacroAssembler::load_const_from_toc_size() ++ + MacroAssembler::call_far_pcrelative_size() ++ + profile_receiver_type_size; + } else { + assert(!UseInlineCaches, "expect vtable calls only if not using ICs"); +- return 36 + profile_receiver_type_size; ++ // This should return the size of instructions in vtable dispatch ++ // branch of z_enc_java_dynamic_call ++ int offset = 0; ++ ++ // __ load_klass(Z_method, Z_R2); ++ if (UseCompactObjectHeaders) { ++ // load_narrow_klass_compact (z_lg z_srlg) ++ offset += 6 // z_lg ++ + 6; // z_srlg; ++ } else { ++ offset += 6; // z_llgf ++ } ++ offset += MacroAssembler::instr_size_for_decode_klass_not_null(); ++ ++ // check if displacement is valid, as it will generate different ++ // instructions: ++ int entry_offset = in_bytes(Klass::vtable_start_offset()) + ++ vtable_index * vtableEntry::size_in_bytes(); ++ int v_off = entry_offset + in_bytes(vtableEntry::method_offset()); ++ if (!Displacement::is_validDisp(v_off)) { ++ offset += MacroAssembler::load_const_size(); // it also generates load_cost ++ } ++ // both generate z_lg ++ offset += 6; // z_lg (z_method, v_off | Address(Z_method, Z_R1_scratch)) ++ // common footer ++ offset += 6; // z_lg(Z_R1_scratch, Method::from_compiled_offset()) ++ offset += 2; // z_basr ++ ++ return offset + profile_receiver_type_size; + } + } + +-int MachCallRuntimeNode::ret_addr_offset() { +- return 12 + MacroAssembler::call_far_patchable_ret_addr_offset(); ++int MachCallRuntimeNode::ret_addr_offset() const { ++ return 6 // get_PC() (LARL) ++ + 6 // save_return_pc() (STG) ++ + MacroAssembler::call_far_patchable_ret_addr_offset(); + } + + // Compute padding required for nodes which need alignment +@@ -2379,8 +2412,8 @@ + // callee doesn't. + unsigned int start_off = __ offset(); + // Compute size of "larl + stg + call_c_opt". +- const int size_of_code = 6 + 6 + MacroAssembler::call_far_patchable_size(); +- __ get_PC(Z_R14, size_of_code); ++ const int ret_off = ret_addr_offset(); ++ __ get_PC(Z_R14, ret_off); + __ save_return_pc(); + assert(__ offset() - start_off == 12, "bad prelude len: %d", __ offset() - start_off); + +@@ -2391,14 +2424,13 @@ + return; + } + +-#ifdef ASSERT +- // Plausibility check for size_of_code assumptions. +- unsigned int actual_ret_off = __ offset(); +- assert(start_off + size_of_code == actual_ret_off, "wrong return_pc"); +-#endif ++ assert(__ offset() - start_off == (uint)ret_addr_offset(), ++ "z_enc_java_to_runtime_call return offset mismatch: emitted %d bytes, ret_addr_offset()=%d", ++ __ offset() - start_off, ret_addr_offset()); + %} + + enc_class z_enc_java_static_call(method meth) %{ ++ unsigned int start_off = __ offset(); + // Call to fixup routine. Fixup routine uses ScopeDesc info to determine + // whom we intended to call. + int ret_offset = 0; +@@ -2428,6 +2460,9 @@ + } + + __ clear_inst_mark(); ++ assert(__ offset() - start_off == (uint)ret_addr_offset(), ++ "z_enc_java_static_call return offset mismatch: emitted %d bytes, ret_addr_offset()=%d", ++ __ offset() - start_off, ret_addr_offset()); + %} + + // Java dynamic call +@@ -2482,8 +2517,10 @@ + __ z_lg(Z_R1_scratch, Address(Z_method, Method::from_compiled_offset())); + // Call target. Either compiled code or C2I adapter. + __ z_basr(Z_R14, Z_R1_scratch); +- unsigned int ret_off = __ offset(); + } ++ assert(__ offset() - start_off == (uint)ret_addr_offset(), ++ "z_enc_java_dynamic_call return offset mismatch: emitted %d bytes, ret_addr_offset()=%d", ++ __ offset() - start_off, ret_addr_offset()); + %} + + enc_class z_enc_cmov_reg(cmpOp cmp, iRegI dst, iRegI src) %{ +--- a/src/hotspot/share/opto/machnode.hpp ++++ b/src/hotspot/share/opto/machnode.hpp +@@ -926,7 +926,7 @@ + virtual bool pinned() const { return false; } + virtual const Type* Value(PhaseGVN* phase) const; + virtual const RegMask &in_RegMask(uint) const; +- virtual int ret_addr_offset() { return 0; } ++ virtual int ret_addr_offset() const { return 0; } + + NOT_LP64(bool return_value_is_used() const;) + +@@ -988,7 +988,7 @@ + // If this is an uncommon trap, return the request code, else zero. + int uncommon_trap_request() const; + +- virtual int ret_addr_offset(); ++ virtual int ret_addr_offset() const; + #ifndef PRODUCT + virtual void dump_spec(outputStream *st) const; + void dump_trap_args(outputStream *st) const; +@@ -1004,7 +1004,7 @@ + init_class_id(Class_MachCallDynamicJava); + DEBUG_ONLY(_vtable_index = -99); // throw an assert if uninitialized + } +- virtual int ret_addr_offset(); ++ virtual int ret_addr_offset() const; + #ifndef PRODUCT + virtual void dump_spec(outputStream *st) const; + #endif +@@ -1022,7 +1022,7 @@ + MachCallRuntimeNode() : MachCallNode() { + init_class_id(Class_MachCallRuntime); + } +- virtual int ret_addr_offset(); ++ virtual int ret_addr_offset() const; + #ifndef PRODUCT + virtual void dump_spec(outputStream *st) const; + #endif +--- a/src/hotspot/cpu/arm/arm_32.ad ++++ b/src/hotspot/cpu/arm/arm_32.ad +@@ -430,19 +430,19 @@ + // from the start of the call to the point where the return address + // will point. + +-int MachCallStaticJavaNode::ret_addr_offset() { ++int MachCallStaticJavaNode::ret_addr_offset() const { + bool far = (_method == nullptr) ? maybe_far_call(this) : !cache_reachable(); + return ((far ? 3 : 1) + (_method_handle_invoke ? 1 : 0)) * + NativeInstruction::instruction_size; + } + +-int MachCallDynamicJavaNode::ret_addr_offset() { ++int MachCallDynamicJavaNode::ret_addr_offset() const { + bool far = !cache_reachable(); + // mov_oop is always 2 words + return (2 + (far ? 3 : 1)) * NativeInstruction::instruction_size; + } + +-int MachCallRuntimeNode::ret_addr_offset() { ++int MachCallRuntimeNode::ret_addr_offset() const { + // bl or movw; movt; blx + bool far = maybe_far_call(this); + return (far ? 3 : 1) * NativeInstruction::instruction_size; +--- a/src/hotspot/cpu/x86/x86_64.ad ++++ b/src/hotspot/cpu/x86/x86_64.ad +@@ -600,21 +600,21 @@ + // !!!!! Special hack to get all types of calls to specify the byte offset + // from the start of the call to the point where the return address + // will point. +-int MachCallStaticJavaNode::ret_addr_offset() ++int MachCallStaticJavaNode::ret_addr_offset() const + { + int offset = 5; // 5 bytes from start of call to where return address points + offset += clear_avx_size(); + return offset; + } + +-int MachCallDynamicJavaNode::ret_addr_offset() ++int MachCallDynamicJavaNode::ret_addr_offset() const + { + int offset = 15; // 15 bytes from start of call to where return address points + offset += clear_avx_size(); + return offset; + } + +-int MachCallRuntimeNode::ret_addr_offset() { ++int MachCallRuntimeNode::ret_addr_offset() const { + int offset = 13; // movq r10,#addr; callq (r10) + if (this->ideal_Opcode() != Op_CallLeafVector) { + offset += clear_avx_size(); diff -Nru openjdk-25-25.0.3+9/debian/patches/series openjdk-25-25.0.4+7/debian/patches/series --- openjdk-25-25.0.3+9/debian/patches/series 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/patches/series 2026-07-22 00:22:43.000000000 +0000 @@ -41,5 +41,8 @@ #jdk-8347014-proposed.patch power-opt.diff test-empty-path.patch -jdk-8369817.diff jdk-8381555.diff +jdk-8385738.diff +jdk-8387580.diff +jdk-8377035.diff +jdk-8388170-proposed.diff diff -Nru openjdk-25-25.0.3+9/debian/rules openjdk-25-25.0.4+7/debian/rules --- openjdk-25-25.0.3+9/debian/rules 2026-04-25 10:29:13.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/rules 2026-07-22 00:22:54.000000000 +0000 @@ -170,7 +170,7 @@ jtreg_pkg = jtreg8 testng_pkg = libtestng7-java -with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)),,yes) +with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)$(DEB_BUILD_PROFILES)),,yes) ifneq (,$(filter $(DEB_HOST_ARCH), alpha arc armel mipsel mips64el powerpc riscv64 x32)) with_check = disabled running check on $(DEB_HOST_ARCH) endif @@ -1166,6 +1166,9 @@ update-control-files: debian/control debian/tests/control gen-autopkgtests update-license update-license: +ifneq (,$(filter $(distrel),squeeze wheezy jessie stretch buster bullseye bookworm lucid precise trusty xenial bionic focal)) + @echo "Skipping debian/copyright valdidation for $(distrel), old release." +else @cp -p debian/copyright debian/copyright.old ./debian/copyright-generator/copyright-gen.py @if cmp -s debian/copyright debian/copyright.old; then \ @@ -1176,14 +1179,18 @@ rm -f debian/copyright.old; \ exit 1; \ fi +endif +PRE_BUILD_DEP = ifeq (,$(filter nogen, $(DEB_BUILD_OPTIONS))) -# Only check control files on amd64, other architectures may have -# nocheck set by d/rules, e.g. riscv64 +# Only check control files on amd64 ifeq (amd64,$(DEB_HOST_ARCH)) PRE_BUILD_DEP = update-control-files endif -else +endif + +# do not check control files if with_check is disabled +ifneq ($(with_check),yes) PRE_BUILD_DEP = endif @@ -2132,7 +2139,7 @@ dh_builddeb -a $(nodemo) $(nojrez) #$(bd_options) git_project = jdk25u -git_tag = jdk-25.0.3+9 +git_tag = jdk-25.0.4+7 package_version = $(shell echo $(PKGVERSION) | sed 's/-[^-][^-]*$$//') ifneq ($(is_upstream_release),yes) package_version := $(subst +,~,$(package_version)) diff -Nru openjdk-25-25.0.3+9/debian/tests/problems.csv openjdk-25-25.0.4+7/debian/tests/problems.csv --- openjdk-25-25.0.3+9/debian/tests/problems.csv 2026-04-25 10:29:02.000000000 +0000 +++ openjdk-25-25.0.4+7/debian/tests/problems.csv 2026-07-16 04:29:37.000000000 +0000 @@ -1,10 +1,8 @@ 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:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,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:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,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-25:openjdk-26:openjdk-27:openjdk-28:,i386,:release-all +FAILED: compiler/arguments/CheckCICompilerCount.java,,"Existing failure (exit code 0, expected 1)",:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,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 FAILED: java/foreign/StdLibTest.java,,Ignore test failure in the preview api,:openjdk-21,:i386,:release-all FAILED: java/foreign/TestAddressDereference.java,,Ignore test failure in the preview api,:openjdk-21,:i386,:release-all FAILED: java/foreign/TestIllegalLink.java,,Ignore test failure in the preview api,:openjdk-21,:i386,:release-all @@ -12,38 +10,38 @@ 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:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,: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:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,:arch-all,:release-all +FAILED: java/io/File/createTempFile/TargetDirectory.java,JDK-8166162,Container issue,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: java/io/File/GetXSpace.java,,"Container issue, disk space size exceeds 32 bit integer",:openjdk-17:openjdk-21:,: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-25:openjdk-26:openjdk-27:openjdk-28:,: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-25:openjdk-26:openjdk-27:openjdk-28:,: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-25:openjdk-26:openjdk-27:openjdk-28:,: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-25:openjdk-26:openjdk-27:openjdk-28:,: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-25:openjdk-26:openjdk-27:openjdk-28:,: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-25:openjdk-26:openjdk-27:openjdk-28:,: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:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,:arch-all,:release-all -FAILED: com/sun/net/httpserver/simpleserver/DocRootDirPermissionsTest.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11::openjdk-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,: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-25:openjdk-26:openjdk-27:openjdk-28:,: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-25:openjdk-26:openjdk-27:openjdk-28:,: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-25:openjdk-26:openjdk-27:openjdk-28:,: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-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: java/nio/file/Files/CheckPermissions.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: java/nio/file/Files/CopyAndMove.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: java/nio/file/Files/CopyMoveVariations.java,JDK-8166162,Container issue,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: java/nio/file/Files/FileAttributes.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: java/nio/file/Files/InterruptCopy.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: java/nio/file/Files/Misc.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: java/nio/file/Files/TemporaryFiles.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: java/nio/file/FileStore/Basic.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: com/sun/net/httpserver/simpleserver/DocRootDirPermissionsTest.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,: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:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:arch-all,:release-all +FAILED: runtime/LoadClass/LongBCP.java,JDK-8166162,Container issue,:openjdk-lts:openjdk-11:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,: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-17:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,s390x,:release-all +FAILED: runtime/NMT/VirtualAllocCommitMerge.java,JDK-8309698,P4 bug (existing issue),:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,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:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,i386,:release-all +FAILED: tools/jlink/JLinkTest.java,JDK-8240349,Bugfix failed for i386 (P4 bug),:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,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 @@ -84,24 +82,30 @@ 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: 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:openjdk-26:openjdk-27:,: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:openjdk-26:openjdk-27:,:arch-all,:release-all -FAILED: applications/ctw/modules/jdk_jfr.java,JDK-8352567, Unimplemented SharedRuntime::generate_jfr_write_checkpoint for S390x, :openjdk-25:openjdk-26:openjdk-27:,:s390x,:release-all -Error: serviceability/jvmti/thread/SuspendThreadList/suspendthrdlst01/suspendthrdlst01.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: serviceability/jvmti/thread/ResumeThreadList/resumethrdlst02/resumethrdlst02.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: serviceability/jvmti/thread/SuspendThread/suspendthrd01/suspendthrd01.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: serviceability/jvmti/thread/ResumeThreadList/resumethrdlst01/resumethrdlst01.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: serviceability/jvmti/thread/ResumeThread/resumethrd02/resumethrd02.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: serviceability/jvmti/thread/ResumeThread/resumethrd01/resumethrd01.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: serviceability/jvmti/thread/GetThreadState/thrstat02/thrstat02.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: serviceability/jvmti/thread/GetCurrentContendedMonitor/contmon02/contmon02.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: serviceability/jvmti/thread/GetCurrentContendedMonitor/contmon01/contmon01.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: serviceability/jvmti/SuspendWithCurrentThread/SuspendWithCurrentThread.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: runtime/NMT/SummaryDiffThreadCount.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: runtime/lockStack/TestStackWalk.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: compiler/loopopts/TestRemoveEmptyLoop.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all -Error: jdk/internal/shellsupport/doc/JavadocHelperTest.java,,Takes too long on loong64,:openjdk-21:openjdk-22:openjdk-23:openjdk-24:openjdk-25:openjdk-26:openjdk-27:,:loong64,:release-all +FAILED: sun/security/util/Debug/DebugOptions.java,JDK-8339713,Stack overflow error on 32-bit platforms,:openjdk-17:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,: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-25:openjdk-26:openjdk-27:openjdk-28:,:arch-all,:release-all +FAILED: applications/ctw/modules/jdk_jfr.java,JDK-8352567, Unimplemented SharedRuntime:generate_jfr_write_checkpoint for S390x, :openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:s390x,:release-all +Error: serviceability/jvmti/thread/SuspendThreadList/suspendthrdlst01/suspendthrdlst01.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: serviceability/jvmti/thread/ResumeThreadList/resumethrdlst02/resumethrdlst02.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: serviceability/jvmti/thread/SuspendThread/suspendthrd01/suspendthrd01.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: serviceability/jvmti/thread/ResumeThreadList/resumethrdlst01/resumethrdlst01.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: serviceability/jvmti/thread/ResumeThread/resumethrd02/resumethrd02.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: serviceability/jvmti/thread/ResumeThread/resumethrd01/resumethrd01.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: serviceability/jvmti/thread/GetThreadState/thrstat02/thrstat02.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: serviceability/jvmti/thread/GetCurrentContendedMonitor/contmon02/contmon02.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: serviceability/jvmti/thread/GetCurrentContendedMonitor/contmon01/contmon01.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: serviceability/jvmti/SuspendWithCurrentThread/SuspendWithCurrentThread.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: runtime/NMT/SummaryDiffThreadCount.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: runtime/lockStack/TestStackWalk.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: compiler/loopopts/TestRemoveEmptyLoop.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all +Error: jdk/internal/shellsupport/doc/JavadocHelperTest.java,,Takes too long on loong64,:openjdk-21:openjdk-25:openjdk-26:openjdk-27:openjdk-28:,:loong64,:release-all FAILED: tools/javac/tree/SourceDocTreeScannerTest.java,JDK-8332619,Test runs out of stack space on 32-bit platforms,:openjdk-21,:armhf:i386,:release-all -FAILED: tools/javac/patterns/SOEDeeplyNestedBlocksTest.java,JDK-8332619,Test runs out of stack space on 32-bit platforms,:openjdk-21,:armhf:i386,:release-all +FAILED: tools/javac/tree/SourceTreeScannerTest.java,JDK-8332619,Test runs out of stack space on 32-bit platforms,:openjdk-21,:armhf:i386,:release-all +FAILED: tools/javac/tree/JavacTreeScannerTest.java,JDK-8332619,Test runs out of stack space on 32-bit platforms,:openjdk-21,:armhf:i386,:release-all +FAILED: jdk/jfr/event/oldobject/TestDFSWithSmallStack.java,JDK-8332619,Test runs out of stack space on 32-bit platforms,:openjdk-21,:armhf:i386,:release-all +FAILED: tools/javac/patterns/SOEDeeplyNestedBlocksTest.java,JDK-8332619,Test runs out of stack space due to brittle design,:openjdk-21,:armhf:i386:s390x,:release-all FAILED: tools/javac/tree/TreePosTest.java,JDK-8332619,Test runs out of stack space on 32-bit platforms,:openjdk-21,:armhf:i386,:release-all FAILED: java/time/test/java/time/format/TestUTCParse.java,JDK-8381709,jtreg test initialization issue,:openjdk-11,:arch-all,:release-all +FAILED: serviceability/jvmti/GetModulesInfo/JvmtiGetAllModulesTest.java,JDK-8386138,Problemlisted upstream,:openjdk-27:,arch-all,:release-all +FAILED: compiler/loopopts/superword/TestDoNotFilterNaNSummands.java,JDK-8370408,Known issue in s390x C2,:openjdk-25::openjdk-26::openjdk-27::openjdk-28:,s390x:,:release-all +FAILED: compiler/loopopts/superword/TestMemorySegmentFilterSummands.java,JDK-8370408,Known issue in s390x C2,:openjdk-25::openjdk-26::openjdk-27::openjdk-28:,s390x:,:release-all diff -Nru openjdk-25-25.0.3+9/doc/building.html openjdk-25-25.0.4+7/doc/building.html --- openjdk-25-25.0.3+9/doc/building.html 2026-04-17 19:08:13.000000000 +0000 +++ openjdk-25-25.0.4+7/doc/building.html 2026-07-13 06:56:01.000000000 +0000 @@ -1380,10 +1380,9 @@ can specify it by --with-alsa.

X11

-

You will need X11 libraries suitable for your target system. -In most cases, using Debian's pre-built libraries work fine.

-

Note that X11 is needed even if you only want to build a headless -JDK.

+

When not building a headless JDK, you will need X11 libraries +suitable for your target system. In most cases, using Debian's +pre-built libraries work fine.