Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Native Image] Accessing methods on OperatingSystemMXBean through Reflection worked on v21 but not on v23 #10488

Open
1 of 2 tasks
MarcMazas opened this issue Jan 15, 2025 · 4 comments
Assignees

Comments

@MarcMazas
Copy link

MarcMazas commented Jan 15, 2025

Describe the Issue

Windows. GraalVM for JDK 21.0.5+9.1 then 23.0.1+11.1.
Compiling java classes with GraalVM, and making a jar. No module.
Executing the jar/Main on test files with the following options to let the tracing agent create / update the configuration json files

      <jvmarg value="--add-opens" />
      <jvmarg value="jdk.management/com.sun.management.internal=ALL-UNNAMED" />
      <jvmarg value="-agentlib:${GVM_JDK}/bin/native-image-agent=config-merge-dir=${ni-gvm}" />

Running the native-image.cmd on the jar with the following options

      <arg value="-H:+UnlockExperimentalVMOptions" />
      <arg value="-H:TempDirectory=${temp-gvm}" />
      <!-- next line needed for GRAAL_JDK_21 />-->
      <!--      <arg value="-H:ReflectionConfigurationFiles=${ni-gvm}/reflect-config.json" />-->
      <arg value="--initialize-at-build-time=org.javacc.jls" />
      <arg value="--add-opens" />
      <arg value="jdk.management/com.sun.management.internal=ALL-UNNAMED" />

The problematic code:

  public Timings() {
    osmxb = ManagementFactory.getOperatingSystemMXBean();
    // find the getProcessCpuTime method from the declared or inherited methods
    for (final Method method : osmxb.getClass().getMethods()) {
      System.out.println("Method : " + method.toString());
      if (method.getName().equals("getProcessCpuTime") && Modifier.isPublic(method.getModifiers())) {
        gpct = method;
        System.out.println("Method " + gpct.toString() + " found!");
        break;
      }
    }
    if (gpct != null)
      // to avoid the exception that will be thrown, one must use in JDK 9+ the following jvmarg
      // --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED
      gpct.setAccessible(true);
    else
      System.out.println("Unable to access OperatingSystemMXBean methods; no cpu timings available");
  }

Under GraalVM 21, the returned methods are:
for the java execution of the tracing agent

     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize()
     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize()
     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize()
     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize()
     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize()
     [java] Method : public double com.sun.management.internal.OperatingSystemImpl.getCpuLoad()
     [java] Method : public double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad()
     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime()
     [java] Method public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime() found!

for the execution of the native image

     [exec] Method : public long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize()
     [exec] Method : public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime()
     [exec] Method public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime() found!

Under GraalVM 23, they are:
for the java execution of the tracing agent

     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize()
     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize()
     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize()
     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize()
     [java] Method : public double com.sun.management.internal.OperatingSystemImpl.getCpuLoad()
     [java] Method : public double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad()
     [java] Method : public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime()
     [java] Method public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime() found!

for the execution of the native image

     [exec] Method : public boolean java.lang.Object.equals(java.lang.Object)
     [exec] Method : public java.lang.String java.lang.Object.toString()
     [exec] Method : public native int java.lang.Object.hashCode()
     [exec] Method : public final native java.lang.Class java.lang.Object.getClass()
     [exec] Method : public final native void java.lang.Object.notify()
     [exec] Method : public final native void java.lang.Object.notifyAll()
     [exec] Method : public final void java.lang.Object.wait(long) throws java.lang.InterruptedException
     [exec] Method : public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
     [exec] Method : public final void java.lang.Object.wait() throws java.lang.InterruptedException
     [exec] Unable to access OperatingSystemMXBean.getProcessCpuTime(); no cpu timings available

so it looks that in v21 only 2 of the OperatingSystemMXBean methods are visible (and by chance the one looked for), and that in v23 none are visible.
Any configuration mistake?

Using the latest version of GraalVM can resolve many issues.

GraalVM Version

Windows. GraalVM for JDK 21.0.5+9.1 then 23.0.1+11.1.

Operating System and Version

Windows 11

Troubleshooting Confirmation

Run Command

<exec executable="${GVM_JDK}\bin\native-image.cmd" failonerror="true">
  <arg value="-jar" />
  <arg value="${gvm}/java8mate.jar" />
  <arg value="-o" />
  <arg value="${gvm}/java8mate-ni" />
  <arg value="-cp" />
  <arg value="${ni-gvm}" />
  <arg value="-H:+UnlockExperimentalVMOptions" />
  <arg value="-H:TempDirectory=${temp-gvm}" />
  <!-- next line needed for GRAAL_JDK_21 />-->
  <!--      <arg value="-H:ReflectionConfigurationFiles=${ni-gvm}/reflect-config.json" />-->
  <!--      <arg value="-H:+PrintClassInitialization" />-->
  <arg value="--initialize-at-build-time=org.javacc.jls" />
  <arg value="--add-opens" />
  <arg value="jdk.management/com.sun.management.internal=ALL-UNNAMED" />
  <arg value="--verbose" />
</exec>

Expected Behavior

Able to get the cpu process time

Actual Behavior

Ok with v21, ko with v23

Steps to Reproduce

  1. compile java files + make jar
  2. run the app with the tracing agent
  3. build the native-image
  4. run the native-image

Additional Context

See above

Run-Time Log Output and Error Messages

See above

@MarcMazas
Copy link
Author

MarcMazas commented Jan 16, 2025

Looks that configuration files are somewhat different:
v21 reflect-config.json

[
{
  "name":"com.sun.management.internal.OperatingSystemImpl",
  "allDeclaredFields":true,
  "allPublicFields":true,
  "allDeclaredClasses":true,
  "allRecordComponents":true,
  "allPermittedSubclasses":true,
  "allNestMembers":true,
  "allSigners":true,
  "allPublicClasses":true,
  "queryAllDeclaredMethods":true,
  "queryAllPublicMethods":true,
  "queryAllDeclaredConstructors":true,
  "queryAllPublicConstructors":true,
  "methods":[{"name":"getProcessCpuTime","parameterTypes":[] }]
},
...
]

v23 reachability-metadata.json:

{
  "reflection": [
    {
      "type": "com.sun.management.internal.OperatingSystemImpl",
      "allDeclaredFields": true,
      "allPublicFields": true,
      "methods": [
        {
          "name": "getProcessCpuTime",
          "parameterTypes": []
        }
      ]
    },
...
}

So the tracing agent does not seem to behave the same in v21 & v23.
Adding "allDeclaredMethods": true, and/or "allPublicMethods": true, in v23 does not solve the problem. The native image still looks only at java.lang.Object, not com.sun.management.internal.OperatingSystemImpl.

@MarcMazas MarcMazas changed the title [Native Image] Accessing methods on OperatingSystemMXBean worked on v21 but not on v23 [Native Image] Accessing methods on OperatingSystemMXBean through Reflection worked on v21 but not on v23 Jan 16, 2025
@oubidar-Abderrahim oubidar-Abderrahim self-assigned this Jan 16, 2025
@oubidar-Abderrahim
Copy link
Member

Hi, could you please share a full reproducer to this issue? thanks

@MarcMazas
Copy link
Author

In a folder, say src-issue:

  • main/java/org/javacc/jls: file Issue_Gvm_10448.java (attached further)
  • build-issue-on-gvm.xml (attached further)
    run ant on this build file : it will chain compile / jar / trace / native-image / test for v21 then v23.

My following output:

Buildfile: C:\Devs\GitRepo\javacc~javacc\src-side\build-issue-on-gvm.xml
all:
     [echo] Run on V21
issue-compile-gvm-21:
     [echo] compiling class with GraalVM
   [delete] Deleting directory C:\Devs\GitRepo\javacc~javacc\target\classes-gvm
    [mkdir] Created dir: C:\Devs\GitRepo\javacc~javacc\target\classes-gvm
    [javac] Compiling 1 source file to C:\Devs\GitRepo\javacc~javacc\target\classes-gvm
    [javac] C:\Devs\GitRepo\javacc~javacc\src-side\main\java\org\javacc\jls\Issue_Gvm_10448.java
    [javac] javac 21.0.5
     [echo] creating jar for class compiled with GraalVM
      [jar] Building jar: C:\Devs\GitRepo\javacc~javacc\target\graalvm\issue-21.jar
     [echo] executing native-image on the jar of class compiled with GraalVM
     [java] java version "21.0.5" 2024-10-15 LTS
     [java] Java(TM) SE Runtime Environment Oracle GraalVM 21.0.5+9.1 (build 21.0.5+9-LTS-jvmci-23.1-b48)
     [java] Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 21.0.5+9.1 (build 21.0.5+9-LTS-jvmci-23.1-b48, mixed mode, sharing)
     [java] OperatingSystemMXBean: class = class com.sun.management.internal.OperatingSystemImpl, name = Windows 11, version = 10.0, arch = amd64, object name = java.lang:type=OperatingSystem,
     [java]  methods = [public long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize(),
     [java]             public double com.sun.management.internal.OperatingSystemImpl.getCpuLoad(),
     [java]             public double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime(),
     [java]             public int sun.management.BaseOperatingSystemImpl.getAvailableProcessors(),
     [java]             public double sun.management.BaseOperatingSystemImpl.getSystemLoadAverage(),
     [java]             public java.lang.String sun.management.BaseOperatingSystemImpl.getName(),
     [java]             public java.lang.String sun.management.BaseOperatingSystemImpl.getVersion(),
     [java]             public javax.management.ObjectName sun.management.BaseOperatingSystemImpl.getObjectName(),
     [java]             public java.lang.String sun.management.BaseOperatingSystemImpl.getArch(),
     [java]             public boolean java.lang.Object.equals(java.lang.Object),
     [java]             public java.lang.String java.lang.Object.toString(),
     [java]             public native int java.lang.Object.hashCode(),
     [java]             public final native java.lang.Class java.lang.Object.getClass(),
     [java]             public final native void java.lang.Object.notify(),
     [java]             public final native void java.lang.Object.notifyAll(),
     [java]             public final void java.lang.Object.wait(long) throws java.lang.InterruptedException,
     [java]             public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException,
     [java]             public final void java.lang.Object.wait() throws java.lang.InterruptedException,
     [java]             public default long com.sun.management.OperatingSystemMXBean.getFreePhysicalMemorySize(),
     [java]             public default long com.sun.management.OperatingSystemMXBean.getTotalPhysicalMemorySize(),
     [java]             public default double com.sun.management.OperatingSystemMXBean.getSystemCpuLoad()],
     [java]  declared methods = [private native long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize0(),
     [java]                      private native double com.sun.management.internal.OperatingSystemImpl.getCpuLoad0(),
     [java]                      private native double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad0(),
     [java]                      private static native void com.sun.management.internal.OperatingSystemImpl.initialize0(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize(),
     [java]                      public double com.sun.management.internal.OperatingSystemImpl.getCpuLoad(),
     [java]                      public double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime()]
     [java] Method public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime() found!
     [exec] Apply jar:file:///C:/Program%20Files/Java/graalvm-jdk-21.0.5+9.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties
     [exec] Apply jar:file:///C:/Program%20Files/Java/graalvm-jdk-21.0.5+9.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties
     [exec] Executing [
     [exec] CommandPromptType=Native \
     [exec] 'DevEnvDir=C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\' \
     [exec] 'EXTERNAL_INCLUDE=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\include;C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt' \
     [exec] 'ExtensionSdkDir=C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs' \
     [exec] Framework40Version=v4.0 \
     [exec] 'FrameworkDir64=C:\Windows\Microsoft.NET\Framework64\' \
     [exec] 'FrameworkDir=C:\Windows\Microsoft.NET\Framework64\' \
     [exec] FrameworkVersion64=v4.0.30319 \
     [exec] FrameworkVersion=v4.0.30319 \
     [exec] 'HOME=C:\Users\mmazas' \
     [exec] 'INCLUDE=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\include;C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt' \
     [exec] 'LIB=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\lib\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22621.0\\um\x64' \
     [exec] 'LIBPATH=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\lib\x64;C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\lib\x86\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.22621.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.22621.0;C:\Windows\Microsoft.NET\Framework64\v4.0.30319' \
     [exec] 'Path=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\bin\HostX64\x64;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\bin\Roslyn;C:\Program Files\Microsoft Visual Studio\2022\Professional\Team Tools\DiagnosticsHub\Collector;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\\x64;C:\Program Files (x86)\Windows Kits\10\bin\\x64;C:\Program Files\Microsoft Visual Studio\2022\Professional\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Professional\Commo
n7\Tools\;C:/IDEs/eclipse-java-2024-06/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426-1530/jre/bin/server;C:/IDEs/eclipse-java-2024-06/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426-1530/jre/bin;C:\Logiciels\Ruby32-x64\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\java8path;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Pulse Secure\VC142.CRT\X64\;C:\Program Files (x86)\Pulse Secure\VC142.CRT\X86\;C:\Program Files (x86)\Common Files\Pulse Secure\TNC Client Plugin\;C:\Program Files\WindowsPowerShell\Scripts\HP.ClientScriptLibrary;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Novell\iPrint;C:\Devs\Apache\apache-maven-3.9.8\bin;C:\Devs\Apache\apache-ant-1.10.12\bin;C:\Progra
m Files (x86)\GnuPG\bin;C:\Logiciels\MinGW\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Users\mmazas\AppData\Local\Programs\Python\Python311\Scripts\;C:\Users\mmazas\AppData\Local\Programs\Python\Python311\;C:\Users\mmazas\AppData\Local\Microsoft\WindowsApps;C:\Logiciels\texlive\2022\bin\win32;C:\Users\mmazas\.dotnet\tools;C:\IDEs\eclipse-java-2024-06\eclipse;;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\VC\Linux\bin\ConnectionManagerExe' \
     [exec] Platform=x64 \
     [exec] 'TEMP=C:\Temp' \
     [exec] UCRTVersion=10.0.22621.0 \
     [exec] USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM=true \
     [exec] 'UniversalCRTSdkDir=C:\Program Files (x86)\Windows Kits\10\' \
     [exec] 'VCIDEInstallDir=C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\VC\' \
     [exec] 'VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\' \
     [exec] 'VCToolsInstallDir=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\' \
     [exec] 'VCToolsRedistDir=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Redist\MSVC\14.40.33807\' \
     [exec] VCToolsVersion=14.41.34120 \
     [exec] 'VS170COMNTOOLS=C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\' \
     [exec] VSCMD_ARG_HOST_ARCH=x64 \
     [exec] VSCMD_ARG_TGT_ARCH=x64 \
     [exec] VSCMD_ARG_app_plat=Desktop \
     [exec] VSCMD_VER=17.11.5 \
     [exec] 'VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio\2022\Professional\' \
     [exec] VisualStudioVersion=17.0 \
     [exec] 'WindowsLibPath=C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.22621.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.22621.0' \
     [exec] 'WindowsSDKLibVersion=10.0.22621.0\' \
     [exec] 'WindowsSDKVersion=10.0.22621.0\' \
     [exec] 'WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\' \
     [exec] 'WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\' \
     [exec] 'WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\' \
     [exec] __DOTNET_ADD_64BIT=1 \
     [exec] __DOTNET_PREFERRED_BITNESS=64 \
     [exec] '__VSCMD_PREINIT_PATH=C:/IDEs/eclipse-java-2024-06/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426-1530/jre/bin/server;C:/IDEs/eclipse-java-2024-06/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426-1530/jre/bin;C:\Logiciels\Ruby32-x64\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\java8path;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Pulse Secure\VC142.CRT\X64\;C:\Program Files (x86)\Pulse Secure\VC142.CRT\X86\;C:\Program Files (x86)\Common Files\Pulse Secure\TNC Client Plugin\;C:\Program Files\WindowsPowerShell\Scripts\HP.ClientScriptLibrary;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Novell\iPrint;C:\Devs\Apache\apache-maven-3.9.8\bin;C:\Devs\Apache\apache-a
nt-1.10.12\bin;C:\Program Files (x86)\GnuPG\bin;C:\Logiciels\MinGW\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Users\mmazas\AppData\Local\Programs\Python\Python311\Scripts\;C:\Users\mmazas\AppData\Local\Programs\Python\Python311\;C:\Users\mmazas\AppData\Local\Microsoft\WindowsApps;C:\Logiciels\texlive\2022\bin\win32;C:\Users\mmazas\.dotnet\tools;C:\IDEs\eclipse-java-2024-06\eclipse;' \
     [exec] 'C:\Program Files\Java\graalvm-jdk-21.0.5+9.1\bin\java.exe' \
     [exec] -XX:+UseParallelGC \
     [exec] -XX:+UnlockExperimentalVMOptions \
     [exec] -XX:+EnableJVMCI \
     [exec] -Dtruffle.TrustAllTruffleRuntimeProviders=true \
     [exec] -Dtruffle.TruffleRuntime=com.oracle.truffle.api.impl.DefaultTruffleRuntime \
     [exec] -Dgraalvm.ForcePolyglotInvalid=true \
     [exec] -Dgraalvm.locatorDisabled=true \
     [exec] -Dsubstratevm.IgnoreGraalVersionCheck=true \
     [exec] --add-exports=java.base/com.sun.crypto.provider=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.access=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.event=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.loader=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.logger=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.misc=com.oracle.svm.svm_enterprise,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto \
     [exec] --add-exports=java.base/jdk.internal.module=org.graalvm.nativeimage.base,org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.org.objectweb.asm=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.perf=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.platform=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.ref=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
     [exec] --add-exports=java.base/jdk.internal.reflect=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.util=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.vm.annotation=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.vm=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.invoke.util=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.net.www=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.net=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.nio.ch=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
     [exec] --add-exports=java.base/sun.reflect.annotation=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.factory=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.reflectiveObjects=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.repository=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.scope=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.tree=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.jca=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.provider=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.ssl=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.util=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.x509=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.text.spi=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.calendar=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.cldr=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.locale.provider=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.locale=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.resources=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.management/com.sun.jmx.mbeanserver=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.management/sun.management=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.aarch64=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.internal.vm.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.amd64=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.internal.vm.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.site=com.oracle.svm.svm_enterprise,jdk.internal.vm.compiler,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.stack=jdk.internal.vm.compiler,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.internal.vm.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.common=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.internal.vm.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=jdk.internal.vm.compiler \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64=jdk.internal.vm.compiler \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=com.oracle.graal.graal_enterprise,jdk.internal.vm.compiler,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.internal.vm.compiler,org.graalvm.nativeimage.base,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.runtime=com.oracle.graal.graal_enterprise,jdk.internal.vm.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.services=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.internal.vm.compiler,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.jfr/jdk.jfr.events=org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.jfr/jdk.jfr.internal.jfc=org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.jfr/jdk.jfr.internal=org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.management/com.sun.management.internal=org.graalvm.nativeimage.builder \
     [exec] -XX:+UseJVMCINativeLibrary \
     [exec] -Xss10m \
     [exec] -XX:MaxRAMPercentage=85.0 \
     [exec] -XX:GCTimeRatio=9 \
     [exec] -XX:+ExitOnOutOfMemoryError \
     [exec] -Djava.awt.headless=true \
     [exec] '-Dorg.graalvm.vendor=Oracle Corporation' \
     [exec] -Dorg.graalvm.vendorurl=https://www.graalvm.org/ \
     [exec] '-Dorg.graalvm.vendorversion=Oracle GraalVM 21.0.5+9.1' \
     [exec] -Dorg.graalvm.version=23.1.5 \
     [exec] -Dcom.oracle.graalvm.isaot=true \
     [exec] -Djava.system.class.loader=com.oracle.svm.hosted.NativeImageSystemClassLoader \
     [exec] -Xshare:off \
     [exec] -Djdk.internal.lambda.disableEagerInitialization=true \
     [exec] -Djdk.internal.lambda.eagerlyInitialize=false \
     [exec] -Djava.lang.invoke.InnerClassLambdaMetafactory.initializeLambdas=false \
     [exec] -Djava.lang.invoke.MethodHandle.DONT_INLINE_THRESHOLD=-1 \
     [exec] -Djava.lang.invoke.MethodHandle.PROFILE_GWT=false \
     [exec] --add-modules=ALL-DEFAULT \
     [exec] --module-path \
     [exec] 'C:\Program Files\Java\graalvm-jdk-21.0.5+9.1\lib\svm\builder\native-image-base.jar;C:\Program Files\Java\graalvm-jdk-21.0.5+9.1\lib\svm\builder\objectfile.jar;C:\Program Files\Java\graalvm-jdk-21.0.5+9.1\lib\svm\builder\pointsto.jar;C:\Program Files\Java\graalvm-jdk-21.0.5+9.1\lib\svm\builder\svm-enterprise.jar;C:\Program Files\Java\graalvm-jdk-21.0.5+9.1\lib\svm\builder\svm.jar' \
     [exec] --module \
     [exec] org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner \
     [exec] -keepalive \
     [exec] 'C:\Temp\.native_image18193211317931646961alive' \
     [exec] -imagecp \
     [exec] 'C:\Devs\GitRepo\javacc~javacc\target\graalvm\issue-21.jar;C:\Devs\GitRepo\javacc~javacc\target\graalvm\META-INF\native-image' \
     [exec] -imagemp \
     [exec] 'C:\Program Files\Java\graalvm-jdk-21.0.5+9.1\lib\svm\graal-microservices.jar;C:\Program Files\Java\graalvm-jdk-21.0.5+9.1\lib\svm\library-support.jar' \
     [exec] '-H:CLibraryPath=C:\Program Files\Java\graalvm-jdk-21.0.5+9.1\lib\svm\clibraries\windows-amd64' \
     [exec] '-H:Path@driver=C:\Devs\GitRepo\javacc~javacc\src-side\..\target\graalvm' \
     [exec] '-H:Name@manifest from file:///C:/Devs/GitRepo/javacc~javacc/target/graalvm/issue-21.jar=issue-21' \
     [exec] '-H:Class@manifest from file:///C:/Devs/GitRepo/javacc~javacc/target/graalvm/issue-21.jar=org.javacc.jls.Issue_Gvm_10448' \
     [exec] -H:Name@user+api=issue-ni-21 \
     [exec] -H:+UnlockExperimentalVMOptions@user \
     [exec] '-H:TempDirectory@user=C:\Devs\GitRepo\javacc~javacc\target\graalvm\temp' \
     [exec] '-H:ReflectionConfigurationFiles@user=C:\Devs\GitRepo\javacc~javacc\target\graalvm\META-INF\native-image\reflect-config.json' \
     [exec] -H:ClassInitialization@user+api=org.javacc.jls:build_time \
     [exec] -H:AddOpens@user+api=jdk.management/com.sun.management.internal=ALL-UNNAMED \
     [exec] -H:-UnlockExperimentalVMOptions@user \
     [exec] -H:ImageBuildID@driver=e3b44231-98de-0ae6-ad00-a02f9134ed8f \
     [exec] '-H:Features@jar:file:///C:/Program%20Files/Java/graalvm-jdk-21.0.5+9.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties+api=com.oracle.svm.thirdparty.gson.GsonFeature' \
     [exec] '-H:Features@jar:file:///C:/Program%20Files/Java/graalvm-jdk-21.0.5+9.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties+api=com.oracle.svm.polyglot.groovy.GroovyIndyInterfaceFeature,com.oracle.svm.polyglot.scala.ScalaFeature'
     [exec] ]
     [exec] ========================================================================================================================
     [exec] GraalVM Native Image: Generating 'issue-ni-21' (executable)...
     [exec] ========================================================================================================================
     [exec] For detailed information and explanations on the build output, visit:
     [exec] https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] [1/8] Initializing...                                                                                   (13,7s @ 0,10GB)
     [exec]  Java version: 21.0.5+9-LTS, vendor version: Oracle GraalVM 21.0.5+9.1
     [exec]  Graal compiler: optimization level: 2, target machine: x86-64-v3, PGO: ML-inferred
     [exec]  C compiler: cl.exe (microsoft, x64, 19.41.34123)
     [exec]  Garbage collector: Serial GC (max heap size: 80% of RAM)
     [exec]  1 user-specific feature(s):
     [exec]  - com.oracle.svm.thirdparty.gson.GsonFeature
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec]  2 experimental option(s) unlocked:
     [exec]  - '-H:ReflectionConfigurationFiles' (origin(s): command line)
     [exec]  - '-H:TempDirectory' (origin(s): command line)
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Build resources:
     [exec]  - 11,92GB of memory (75,6% of 15,78GB system memory, determined at start)
     [exec]  - 8 thread(s) (100,0% of 8 available processor(s), determined at start)
     [exec] [2/8] Performing analysis...  [*****]                                                                    (9,5s @ 0,16GB)
     [exec]     2?032 reachable types   (60,5% of    3?360 total)
     [exec]     1?872 reachable fields  (45,1% of    4?152 total)
     [exec]     8?455 reachable methods (35,1% of   24?086 total)
     [exec]       768 types,    62 fields, and   832 methods registered for reflection
     [exec]        53 types,    30 fields, and    48 methods registered for JNI access
     [exec]         2 native libraries: psapi, version
     [exec] [3/8] Building universe...                                                                               (1,2s @ 0,20GB)
     [exec] [4/8] Parsing methods...      [**]                                                                       (2,8s @ 0,23GB)
     [exec] [5/8] Inlining methods...     [***]                                                                      (1,4s @ 0,20GB)
     [exec] [6/8] Compiling methods...    [*****]                                                                   (30,0s @ 0,24GB)
     [exec] [7/8] Laying out methods...   [*]                                                                        (1,3s @ 0,27GB)
     [exec] [8/8] Creating image...       [*]                                                                        (1,6s @ 0,31GB)
     [exec]    2,97MB (47,85%) for code area:     3?765 compilation units
     [exec]    3,15MB (50,76%) for image heap:   52?706 objects and 43 resources
     [exec]   88,61kB ( 1,39%) for other data
     [exec]    6,20MB in total
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Top 10 origins of code area:                                Top 10 object types in image heap:
     [exec]    1,45MB java.base                                          748,59kB byte[] for code metadata
     [exec]    1,19MB svm.jar (Native Image)                             697,80kB byte[] for java.lang.String
     [exec]   87,80kB com.oracle.svm.svm_enterprise                      367,31kB java.lang.String
     [exec]   48,90kB jdk.proxy2                                         318,64kB java.lang.Class
     [exec]   37,97kB jdk.proxy1                                         157,09kB java.util.HashMap$Node
     [exec]   30,25kB org.graalvm.nativeimage.base                       114,01kB char[]
     [exec]   29,14kB org.graalvm.collections                            111,94kB byte[] for reflection metadata
     [exec]   22,03kB java.management                                     84,77kB java.lang.Object[]
     [exec]   21,32kB jdk.internal.vm.ci                                  79,38kB com.oracle.svm.core.hub.DynamicHubCompanion
     [exec]   16,77kB jdk.internal.vm.compiler                            72,01kB java.util.HashMap$Node[]
     [exec]   15,88kB for 4 more packages                                472,45kB for 521 more object types
     [exec]                               Use '-H:+BuildReport' to create a report with more details.
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Security report:
     [exec]  - Binary includes Java deserialization.
     [exec]  - Use '--enable-sbom' to embed a Software Bill of Materials (SBOM) in the binary.
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Recommendations:
     [exec]  PGO:  Use Profile-Guided Optimizations ('--pgo') for improved throughput.
     [exec]  INIT: Adopt '--strict-image-heap' to prepare for the next GraalVM release.
     [exec]  HEAP: Set max heap for improved and more predictable memory usage.
     [exec]  CPU:  Enable more CPU features with '-march=native' for improved performance.
     [exec]  QBM:  Use the quick build mode ('-Ob') to speed up builds during development.
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec]                         3,0s (4,7% of total time) in 383 GCs | Peak RSS: 0,79GB | CPU load: 3,91
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Produced artifacts:
     [exec]  C:\Devs\GitRepo\javacc~javacc\target\graalvm\issue-ni-21.exe (executable)
     [exec] ========================================================================================================================
     [exec] Finished generating 'issue-ni-21' in 1m 2s.
issue-test-jdk-gvm-21:
     [echo] executing the class compiled with GraalVM
     [exec] OperatingSystemMXBean: class = class com.sun.management.internal.OperatingSystemImpl, name = Windows 11, version = 10.0, arch = amd64, object name = java.lang:type=OperatingSystem,
     [exec]  methods = [public long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize(),
     [exec]             public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime(),
     [exec]             public long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize(),
     [exec]             public double com.sun.management.internal.OperatingSystemImpl.getCpuLoad(),
     [exec]             public long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize(),
     [exec]             public long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize(),
     [exec]             public long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize(),
     [exec]             public double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad(),
     [exec]             public java.lang.String sun.management.BaseOperatingSystemImpl.getName(),
     [exec]             public java.lang.String sun.management.BaseOperatingSystemImpl.getVersion(),
     [exec]             public int sun.management.BaseOperatingSystemImpl.getAvailableProcessors(),
     [exec]             public java.lang.String sun.management.BaseOperatingSystemImpl.getArch(),
     [exec]             public double sun.management.BaseOperatingSystemImpl.getSystemLoadAverage(),
     [exec]             public javax.management.ObjectName sun.management.BaseOperatingSystemImpl.getObjectName(),
     [exec]             public boolean java.lang.Object.equals(java.lang.Object),
     [exec]             public java.lang.String java.lang.Object.toString(),
     [exec]             public native int java.lang.Object.hashCode(),
     [exec]             public final native java.lang.Class java.lang.Object.getClass(),
     [exec]             public final native void java.lang.Object.notify(),
     [exec]             public final native void java.lang.Object.notifyAll(),
     [exec]             public final void java.lang.Object.wait(long) throws java.lang.InterruptedException,
     [exec]             public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException,
     [exec]             public final void java.lang.Object.wait() throws java.lang.InterruptedException,
     [exec]             public default long com.sun.management.OperatingSystemMXBean.getFreePhysicalMemorySize(),
     [exec]             public default long com.sun.management.OperatingSystemMXBean.getTotalPhysicalMemorySize(),
     [exec]             public default double com.sun.management.OperatingSystemMXBean.getSystemCpuLoad()],
     [exec]  declared methods = [public long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize(),
     [exec]                      public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime(),
     [exec]                      public long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize(),
     [exec]                      private static native void com.sun.management.internal.OperatingSystemImpl.initialize0(),
     [exec]                      private native long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize0(),
     [exec]                      private native long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize0(),
     [exec]                      private native long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize0(),
     [exec]                      private native long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime0(),
     [exec]                      private native long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize0(),
     [exec]                      private native long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize0(),
     [exec]                      private native double com.sun.management.internal.OperatingSystemImpl.getCpuLoad0(),
     [exec]                      private native double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad0(),
     [exec]                      public double com.sun.management.internal.OperatingSystemImpl.getCpuLoad(),
     [exec]                      public long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize(),
     [exec]                      public long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize(),
     [exec]                      public long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize(),
     [exec]                      public double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad()]
     [exec] Method public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime() found!
     [echo] Run on V23
issue-compile-gvm-23:
     [echo] compiling class with GraalVM
   [delete] Deleting directory C:\Devs\GitRepo\javacc~javacc\target\classes-gvm
    [mkdir] Created dir: C:\Devs\GitRepo\javacc~javacc\target\classes-gvm
    [javac] Compiling 1 source file to C:\Devs\GitRepo\javacc~javacc\target\classes-gvm
    [javac] C:\Devs\GitRepo\javacc~javacc\src-side\main\java\org\javacc\jls\Issue_Gvm_10448.java
    [javac] javac 23.0.1
     [echo] creating jar for class compiled with GraalVM
      [jar] Building jar: C:\Devs\GitRepo\javacc~javacc\target\graalvm\issue-23.jar
     [echo] executing native-image on the jar of class compiled with GraalVM
     [java] java version "23.0.1" 2024-10-15
     [java] Java(TM) SE Runtime Environment Oracle GraalVM 23.0.1+11.1 (build 23.0.1+11-jvmci-b01)
     [java] Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 23.0.1+11.1 (build 23.0.1+11-jvmci-b01, mixed mode, sharing)
     [java] OperatingSystemMXBean: class = class com.sun.management.internal.OperatingSystemImpl, name = Windows 11, version = 10.0, arch = amd64, object name = java.lang:type=OperatingSystem,
     [java]  methods = [public long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize(),
     [java]             public double com.sun.management.internal.OperatingSystemImpl.getCpuLoad(),
     [java]             public double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad(),
     [java]             public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime(),
     [java]             public int sun.management.BaseOperatingSystemImpl.getAvailableProcessors(),
     [java]             public double sun.management.BaseOperatingSystemImpl.getSystemLoadAverage(),
     [java]             public javax.management.ObjectName sun.management.BaseOperatingSystemImpl.getObjectName(),
     [java]             public java.lang.String sun.management.BaseOperatingSystemImpl.getArch(),
     [java]             public java.lang.String sun.management.BaseOperatingSystemImpl.getName(),
     [java]             public java.lang.String sun.management.BaseOperatingSystemImpl.getVersion(),
     [java]             public boolean java.lang.Object.equals(java.lang.Object),
     [java]             public java.lang.String java.lang.Object.toString(),
     [java]             public native int java.lang.Object.hashCode(),
     [java]             public final native java.lang.Class java.lang.Object.getClass(),
     [java]             public final native void java.lang.Object.notify(),
     [java]             public final native void java.lang.Object.notifyAll(),
     [java]             public final void java.lang.Object.wait(long) throws java.lang.InterruptedException,
     [java]             public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException,
     [java]             public final void java.lang.Object.wait() throws java.lang.InterruptedException,
     [java]             public default long com.sun.management.OperatingSystemMXBean.getFreePhysicalMemorySize(),
     [java]             public default long com.sun.management.OperatingSystemMXBean.getTotalPhysicalMemorySize(),
     [java]             public default double com.sun.management.OperatingSystemMXBean.getSystemCpuLoad()],
     [java]  declared methods = [private native long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize0(),
     [java]                      private native long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize0(),
     [java]                      private native double com.sun.management.internal.OperatingSystemImpl.getCpuLoad0(),
     [java]                      private native double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad0(),
     [java]                      private static native void com.sun.management.internal.OperatingSystemImpl.initialize0(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getCommittedVirtualMemorySize(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getTotalSwapSpaceSize(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getFreeSwapSpaceSize(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getFreeMemorySize(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getTotalMemorySize(),
     [java]                      public double com.sun.management.internal.OperatingSystemImpl.getCpuLoad(),
     [java]                      public double com.sun.management.internal.OperatingSystemImpl.getProcessCpuLoad(),
     [java]                      public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime()]
     [java] Method public long com.sun.management.internal.OperatingSystemImpl.getProcessCpuTime() found!
     [exec] Apply jar:file:///C:/Program%20Files/Java/graalvm-jdk-23.0.1+11.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties
     [exec] Apply jar:file:///C:/Program%20Files/Java/graalvm-jdk-23.0.1+11.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties
     [exec] Executing [
     [exec] CommandPromptType=Native \
     [exec] 'DevEnvDir=C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\' \
     [exec] 'EXTERNAL_INCLUDE=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\include;C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt' \
     [exec] 'ExtensionSdkDir=C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs' \
     [exec] Framework40Version=v4.0 \
     [exec] 'FrameworkDir64=C:\Windows\Microsoft.NET\Framework64\' \
     [exec] 'FrameworkDir=C:\Windows\Microsoft.NET\Framework64\' \
     [exec] FrameworkVersion64=v4.0.30319 \
     [exec] FrameworkVersion=v4.0.30319 \
     [exec] 'HOME=C:\Users\mmazas' \
     [exec] 'INCLUDE=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\include;C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt' \
     [exec] 'LIB=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\lib\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22621.0\\um\x64' \
     [exec] 'LIBPATH=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\lib\x64;C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\lib\x86\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.22621.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.22621.0;C:\Windows\Microsoft.NET\Framework64\v4.0.30319' \
     [exec] 'Path=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\bin\HostX64\x64;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\bin\Roslyn;C:\Program Files\Microsoft Visual Studio\2022\Professional\Team Tools\DiagnosticsHub\Collector;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\\x64;C:\Program Files (x86)\Windows Kits\10\bin\\x64;C:\Program Files\Microsoft Visual Studio\2022\Professional\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Professional\Commo
n7\Tools\;C:/IDEs/eclipse-java-2024-06/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426-1530/jre/bin/server;C:/IDEs/eclipse-java-2024-06/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426-1530/jre/bin;C:\Logiciels\Ruby32-x64\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\java8path;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Pulse Secure\VC142.CRT\X64\;C:\Program Files (x86)\Pulse Secure\VC142.CRT\X86\;C:\Program Files (x86)\Common Files\Pulse Secure\TNC Client Plugin\;C:\Program Files\WindowsPowerShell\Scripts\HP.ClientScriptLibrary;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Novell\iPrint;C:\Devs\Apache\apache-maven-3.9.8\bin;C:\Devs\Apache\apache-ant-1.10.12\bin;C:\Progra
m Files (x86)\GnuPG\bin;C:\Logiciels\MinGW\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Users\mmazas\AppData\Local\Programs\Python\Python311\Scripts\;C:\Users\mmazas\AppData\Local\Programs\Python\Python311\;C:\Users\mmazas\AppData\Local\Microsoft\WindowsApps;C:\Logiciels\texlive\2022\bin\win32;C:\Users\mmazas\.dotnet\tools;C:\IDEs\eclipse-java-2024-06\eclipse;;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\VC\Linux\bin\ConnectionManagerExe' \
     [exec] Platform=x64 \
     [exec] 'TEMP=C:\Temp' \
     [exec] UCRTVersion=10.0.22621.0 \
     [exec] USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM=true \
     [exec] 'UniversalCRTSdkDir=C:\Program Files (x86)\Windows Kits\10\' \
     [exec] 'VCIDEInstallDir=C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\VC\' \
     [exec] 'VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\' \
     [exec] 'VCToolsInstallDir=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\' \
     [exec] 'VCToolsRedistDir=C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Redist\MSVC\14.40.33807\' \
     [exec] VCToolsVersion=14.41.34120 \
     [exec] 'VS170COMNTOOLS=C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\' \
     [exec] VSCMD_ARG_HOST_ARCH=x64 \
     [exec] VSCMD_ARG_TGT_ARCH=x64 \
     [exec] VSCMD_ARG_app_plat=Desktop \
     [exec] VSCMD_VER=17.11.5 \
     [exec] 'VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio\2022\Professional\' \
     [exec] VisualStudioVersion=17.0 \
     [exec] 'WindowsLibPath=C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.22621.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.22621.0' \
     [exec] 'WindowsSDKLibVersion=10.0.22621.0\' \
     [exec] 'WindowsSDKVersion=10.0.22621.0\' \
     [exec] 'WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\' \
     [exec] 'WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\' \
     [exec] 'WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\' \
     [exec] __DOTNET_ADD_64BIT=1 \
     [exec] __DOTNET_PREFERRED_BITNESS=64 \
     [exec] '__VSCMD_PREINIT_PATH=C:/IDEs/eclipse-java-2024-06/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426-1530/jre/bin/server;C:/IDEs/eclipse-java-2024-06/eclipse//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426-1530/jre/bin;C:\Logiciels\Ruby32-x64\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\java8path;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Pulse Secure\VC142.CRT\X64\;C:\Program Files (x86)\Pulse Secure\VC142.CRT\X86\;C:\Program Files (x86)\Common Files\Pulse Secure\TNC Client Plugin\;C:\Program Files\WindowsPowerShell\Scripts\HP.ClientScriptLibrary;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Novell\iPrint;C:\Devs\Apache\apache-maven-3.9.8\bin;C:\Devs\Apache\apache-a
nt-1.10.12\bin;C:\Program Files (x86)\GnuPG\bin;C:\Logiciels\MinGW\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Users\mmazas\AppData\Local\Programs\Python\Python311\Scripts\;C:\Users\mmazas\AppData\Local\Programs\Python\Python311\;C:\Users\mmazas\AppData\Local\Microsoft\WindowsApps;C:\Logiciels\texlive\2022\bin\win32;C:\Users\mmazas\.dotnet\tools;C:\IDEs\eclipse-java-2024-06\eclipse;' \
     [exec] 'C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\bin\java.exe' \
     [exec] -XX:+UseParallelGC \
     [exec] -XX:+UnlockExperimentalVMOptions \
     [exec] -XX:+EnableJVMCI \
     [exec] -Dtruffle.TrustAllTruffleRuntimeProviders=true \
     [exec] -Dtruffle.TruffleRuntime=com.oracle.truffle.api.impl.DefaultTruffleRuntime \
     [exec] -Dgraalvm.ForcePolyglotInvalid=true \
     [exec] -Dgraalvm.locatorDisabled=true \
     [exec] --add-exports=java.base/com.sun.crypto.provider=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.access=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.event=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.loader=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.logger=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.misc=com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto \
     [exec] --add-exports=java.base/jdk.internal.module=org.graalvm.nativeimage.base,org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.org.objectweb.asm=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.perf=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.platform=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.ref=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
     [exec] --add-exports=java.base/jdk.internal.reflect=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.util=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.vm.annotation=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal.vm=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/jdk.internal=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.invoke.util=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.net.www=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.net=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.nio.ch=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
     [exec] --add-exports=java.base/sun.reflect.annotation=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.factory=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.reflectiveObjects=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.repository=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.scope=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.reflect.generics.tree=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.jca=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.provider=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.ssl=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.util=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.security.x509=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.text.spi=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.calendar=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.cldr=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.locale.provider=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.locale=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util.resources=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.base/sun.util=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.management/com.sun.jmx.mbeanserver=org.graalvm.nativeimage.builder \
     [exec] --add-exports=java.management/sun.management=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.aarch64=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.amd64=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.site=com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.stack=jdk.graal.compiler,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.common=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=jdk.graal.compiler \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64=jdk.graal.compiler \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.riscv64=jdk.graal.compiler \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=com.oracle.graal.graal_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.base,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.riscv64=com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.runtime=com.oracle.graal.graal_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
     [exec] --add-exports=jdk.internal.vm.ci/jdk.vm.ci.services=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.jfr/jdk.jfr.events=org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.jfr/jdk.jfr.internal.event=org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.jfr/jdk.jfr.internal.jfc=com.oracle.svm.svm_enterprise,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.jfr/jdk.jfr.internal=com.oracle.svm.svm_enterprise,org.graalvm.nativeimage.builder \
     [exec] --add-exports=jdk.management/com.sun.management.internal=org.graalvm.nativeimage.builder \
     [exec] -XX:+UseJVMCINativeLibrary \
     [exec] -Xss10m \
     [exec] -XX:MaxRAMPercentage=85.0 \
     [exec] -XX:GCTimeRatio=9 \
     [exec] -XX:+ExitOnOutOfMemoryError \
     [exec] -Djava.awt.headless=true \
     [exec] '-Dorg.graalvm.vendor=Oracle Corporation' \
     [exec] -Dorg.graalvm.vendorurl=https://www.graalvm.org/ \
     [exec] '-Dorg.graalvm.vendorversion=Oracle GraalVM 23.0.1+11.1' \
     [exec] -Dorg.graalvm.version=24.1.1 \
     [exec] -Dcom.oracle.graalvm.isaot=true \
     [exec] -Djava.system.class.loader=com.oracle.svm.hosted.NativeImageSystemClassLoader \
     [exec] -Xshare:off \
     [exec] -Djdk.reflect.useOldSerializableConstructor=true \
     [exec] -Djdk.internal.lambda.disableEagerInitialization=true \
     [exec] -Djdk.internal.lambda.eagerlyInitialize=false \
     [exec] -Djava.lang.invoke.InnerClassLambdaMetafactory.initializeLambdas=false \
     [exec] -Djava.lang.invoke.MethodHandle.DONT_INLINE_THRESHOLD=-1 \
     [exec] -Djava.lang.invoke.MethodHandle.PROFILE_GWT=false \
     [exec] --add-modules=ALL-DEFAULT \
     [exec] --module-path \
     [exec] 'C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\lib\svm\builder\native-image-base.jar;C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\lib\svm\builder\objectfile.jar;C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\lib\svm\builder\pointsto.jar;C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\lib\svm\builder\svm-enterprise.jar;C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\lib\svm\builder\svm-foreign.jar;C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\lib\svm\builder\svm.jar' \
     [exec] --module \
     [exec] org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner \
     [exec] -keepalive \
     [exec] 'C:\Temp\.native_image18019817941625972732alive' \
     [exec] -imagecp \
     [exec] 'C:\Devs\GitRepo\javacc~javacc\target\graalvm\issue-23.jar;C:\Devs\GitRepo\javacc~javacc\target\graalvm\META-INF\native-image' \
     [exec] -imagemp \
     [exec] 'C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\lib\svm\library-support.jar' \
     [exec] '-H:CLibraryPath=C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\lib\svm\clibraries\windows-amd64,C:\Program Files\Java\graalvm-jdk-23.0.1+11.1\lib\svm\clibraries' \
     [exec] '-H:Path@driver=C:\Devs\GitRepo\javacc~javacc\src-side\..\target\graalvm' \
     [exec] '-H:Name@manifest from file:///C:/Devs/GitRepo/javacc~javacc/target/graalvm/issue-23.jar=issue-23' \
     [exec] '-H:Class@manifest from file:///C:/Devs/GitRepo/javacc~javacc/target/graalvm/issue-23.jar=org.javacc.jls.Issue_Gvm_10448' \
     [exec] -H:Name@user+api=issue-ni-23 \
     [exec] -H:+UnlockExperimentalVMOptions@user \
     [exec] '-H:TempDirectory@user=C:\Devs\GitRepo\javacc~javacc\target\graalvm\temp' \
     [exec] -H:ClassInitialization@user+api=org.javacc.jls:build_time \
     [exec] -H:AddOpens@user+api=jdk.management/com.sun.management.internal=ALL-UNNAMED \
     [exec] -H:-UnlockExperimentalVMOptions@user \
     [exec] -H:ImageBuildID@driver=e58a2e82-59a3-3f66-348c-5938b80745b2 \
     [exec] '-H:Features@jar:file:///C:/Program%20Files/Java/graalvm-jdk-23.0.1+11.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties+api=com.oracle.svm.thirdparty.gson.GsonFeature' \
     [exec] '-H:Features@jar:file:///C:/Program%20Files/Java/graalvm-jdk-23.0.1+11.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties+api=com.oracle.svm.polyglot.groovy.GroovyIndyInterfaceFeature,com.oracle.svm.polyglot.scala.ScalaFeature'
     [exec] ]
     [exec] ========================================================================================================================
     [exec] GraalVM Native Image: Generating 'issue-ni-23' (executable)...
     [exec] ========================================================================================================================
     [exec] For detailed information and explanations on the build output, visit:
     [exec] https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] [1/8] Initializing...                                                                                   (12,7s @ 0,12GB)
     [exec]  Java version: 23.0.1+11, vendor version: Oracle GraalVM 23.0.1+11.1
     [exec]  Graal compiler: optimization level: 2, target machine: x86-64-v3, PGO: ML-inferred
     [exec]  C compiler: cl.exe (microsoft, x64, 19.41.34123)
     [exec]  Garbage collector: Serial GC (max heap size: 80% of RAM)
     [exec]  1 user-specific feature(s):
     [exec]  - com.oracle.svm.thirdparty.gson.GsonFeature
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec]  1 experimental option(s) unlocked:
     [exec]  - '-H:TempDirectory' (origin(s): command line)
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Build resources:
     [exec]  - 11,92GB of memory (75,6% of 15,78GB system memory, determined at start)
     [exec]  - 8 thread(s) (100,0% of 8 available processor(s), determined at start)
     [exec] [2/8] Performing analysis...  [*****]                                                                   (11,3s @ 0,19GB)
     [exec]     2?029 reachable types   (58,7% of    3?454 total)
     [exec]     1?796 reachable fields  (37,8% of    4?751 total)
     [exec]     8?670 reachable methods (35,2% of   24?643 total)
     [exec]       751 types,     7 fields, and    90 methods registered for reflection
     [exec]        53 types,    30 fields, and    48 methods registered for JNI access
     [exec]         2 native libraries: psapi, version
     [exec] [3/8] Building universe...                                                                               (1,5s @ 0,21GB)
     [exec] [4/8] Parsing methods...      [**]                                                                       (2,5s @ 0,24GB)
     [exec] [5/8] Inlining methods...     [***]                                                                      (1,6s @ 0,27GB)
     [exec] [6/8] Compiling methods...    [*****]                                                                   (28,7s @ 0,50GB)
     [exec] [7/8] Laying out methods...   [*]                                                                        (1,6s @ 0,53GB)
     [exec] [8/8] Creating image...       [*]                                                                        (1,4s @ 0,55GB)
     [exec]    3,21MB (48,12%) for code area:     3?942 compilation units
     [exec]    3,38MB (50,56%) for image heap:   53?501 objects and 86 resources
     [exec]   90,41kB ( 1,32%) for other data
     [exec]    6,68MB in total
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Top 10 origins of code area:                                Top 10 object types in image heap:
     [exec]    1,47MB svm.jar (Native Image)                             723,86kB byte[] for code metadata
     [exec]    1,43MB java.base                                          683,94kB byte[] for java.lang.String
     [exec]   87,04kB com.oracle.svm.svm_enterprise                      362,60kB java.lang.String
     [exec]   35,33kB org.graalvm.nativeimage.base                       343,63kB java.lang.Class
     [exec]   35,14kB jdk.proxy2                                         315,05kB heap alignment
     [exec]   27,65kB jdk.graal.compiler                                 148,13kB java.util.HashMap$Node
     [exec]   26,22kB jdk.proxy1                                         114,52kB char[]
     [exec]   22,94kB org.graalvm.collections                             95,11kB com.oracle.svm.core.hub.DynamicHubCompanion
     [exec]   22,30kB java.management                                     85,03kB java.lang.Object[]
     [exec]   20,91kB jdk.internal.vm.ci                                  82,13kB byte[] for reflection metadata
     [exec]   11,61kB for 7 more packages                                502,01kB for 522 more object types
     [exec]                             Use '--emit build-report' to create a report with more details.
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Security report:
     [exec]  - Binary includes Java deserialization.
     [exec]  - Use '--enable-sbom' to assemble a Software Bill of Materials (SBOM).
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Recommendations:
     [exec]  PGO:  Use Profile-Guided Optimizations ('--pgo') for improved throughput.
     [exec]  HEAP: Set max heap for improved and more predictable memory usage.
     [exec]  CPU:  Enable more CPU features with '-march=native' for improved performance.
     [exec]  QBM:  Use the quick build mode ('-Ob') to speed up builds during development.
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec]                         2,5s (3,8% of total time) in 516 GCs | Peak RSS: 1,01GB | CPU load: 4,34
     [exec] ------------------------------------------------------------------------------------------------------------------------
     [exec] Build artifacts:
     [exec]  C:\Devs\GitRepo\javacc~javacc\target\graalvm\issue-ni-23.exe (executable)
     [exec] ========================================================================================================================
     [exec] Finished generating 'issue-ni-23' in 1m 4s.
issue-test-jdk-gvm-23:
     [echo] executing the class compiled with GraalVM
     [exec] OperatingSystemMXBean: class = class com.sun.management.internal.OperatingSystemImpl, name = Windows 11, version = 10.0, arch = amd64, object name = java.lang:type=OperatingSystem,
     [exec]  methods = [public boolean java.lang.Object.equals(java.lang.Object),
     [exec]             public java.lang.String java.lang.Object.toString(),
     [exec]             public native int java.lang.Object.hashCode(),
     [exec]             public final native java.lang.Class java.lang.Object.getClass(),
     [exec]             public final native void java.lang.Object.notify(),
     [exec]             public final native void java.lang.Object.notifyAll(),
     [exec]             public final void java.lang.Object.wait(long) throws java.lang.InterruptedException,
     [exec]             public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException,
     [exec]             public final void java.lang.Object.wait() throws java.lang.InterruptedException],
     [exec]  declared methods = []
     [exec] Unable to access OperatingSystemMXBean.getProcessCpuTime(); no cpu timings available!
BUILD SUCCESSFUL
Total time: 2 minutes 22 seconds

Class:

package org.javacc.jls;

import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Arrays;

public class Issue_Gvm_10448 {

  /** For CPU usage reporting (generic interface java.lang.management) */
  private OperatingSystemMXBean osmxb = null;

  /** Method to get the process cpu time (by reflection}) */
  private Method gpct;

  @SuppressWarnings("unused")
  public static void main(final String[] args) {
    new Issue_Gvm_10448();
  }

  public Issue_Gvm_10448() {
    // instantiate a mx bean
    osmxb = ManagementFactory.getOperatingSystemMXBean();

    System.out.println(
        "OperatingSystemMXBean: class = "
            + osmxb.getClass()
            + ", name = "
            + osmxb.getName()
            + ", version = "
            + osmxb.getVersion()
            + ", arch = "
            + osmxb.getArch()
            + ", object name = "
            + osmxb.getObjectName()
            + ",\n methods = "
            + Arrays.toString(osmxb.getClass().getMethods()).replace(", ", ",\n            ")
            + ",\n declared methods = "
            + Arrays.toString(osmxb.getClass().getDeclaredMethods())
                .replace(", ", ",\n                     "));

    // find the getProcessCpuTime method from the declared and inherited public member methods
    for (final Method method : osmxb.getClass().getMethods()) {
      // find the getProcessCpuTime method from the declared methods
      //      for (final Method method : osmxb.getClass().getDeclaredMethods()) {
      //      System.out.println("Method: " + method.toString());
      if (method.getName().equals("getProcessCpuTime")
          && Modifier.isPublic(method.getModifiers())) {
        gpct = method;
        System.out.println("Method " + gpct.toString() + " found!");
        break;
      }
    }
    if (gpct != null)
      // to avoid the exception that will be thrown, one must use in JDK 9+ the following jvmarg
      // --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED
      gpct.setAccessible(true);
    else
      System.out.println(
          "Unable to access OperatingSystemMXBean.getProcessCpuTime(); no cpu timings available!");
  }
}

Script:

<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2024-2025, Marc Mazas <mazas.marc@gmail.com>.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.
    * Neither the names of of the copyright holders nor the names of its
      contributors may be used to endorse or promote products derived from
      this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->

<!-- 
  Allows to build and execute some functional & performance tests on side grammars
   as native images built with GraalVM.
  Cannot be run as a standalone ant script (i.e. must be called form build-side-gram.xml).
  June 2024 -> 2025. Authors: Maͫzͣaͬsͨ
-->
<project name="build-on-gvm" default="all">

  <!-- ========== -->
  <!-- PROPERTIES -->
  <!-- ========== -->

  <property name="GVM_JDK-21" value="C:\Program Files\Java\graalvm-jdk-21.0.5+9.1" />
  <property name="GVM_JDK-23" value="C:\Program Files\Java\graalvm-jdk-23.0.1+11.1" />

  <property name="target" value="../target" />
  <property name="gvm-classes" value="${target}/classes-gvm" />
  <property name="gvm" value="${target}/graalvm" />
  <property name="ni-gvm" value="${gvm}/META-INF/native-image" />
  <property name="temp-gvm" value="${gvm}/temp" />


  <!-- ===== -->
  <!-- CLEAN -->
  <!-- ===== -->

  <!-- Clean generated and class files -->
  <target name="clean_gvm">
    <delete dir="${gvm}" />
    <mkdir dir="${gvm}" />
    <delete dir="${gvm-classes}" />
    <mkdir dir="${gvm-classes}" />
  </target>


  <!-- ==================== -->
  <!-- Issue GraalVM #10448 -->
  <!-- ==================== -->

  <target name="all" description="compile class to native with GraalVM">

    <echo message="Run on V21" />
    <antcall target="issue-compile-gvm-21">
    </antcall>
    <antcall target="issue-test-jdk-gvm-21">
    </antcall>

    <echo message="Run on V23" />
    <antcall target="issue-compile-gvm-23">
    </antcall>
    <antcall target="issue-test-jdk-gvm-23">
    </antcall>

  </target>

  <!-- GraalVM 21 -->

  <target name="issue-compile-gvm-21" description="compile class to native with GraalVM">
    <echo message="compiling class with GraalVM" />
    <delete dir="${gvm-classes}" />
    <mkdir dir="${gvm-classes}" />
    <javac classpath="${classes}"
           debug="true"
           destdir="${gvm-classes}"
           executable="${GVM_JDK-21}/bin/javac"
           fork="true"
           includeantruntime="false"
           listfiles="true"
    >
      <compilerarg value="--version" />
      <src path="main/java/org/javacc/jls/" />
      <include name="Issue_Gvm_10448.java" />
    </javac>

    <echo message="creating jar for class compiled with GraalVM" />
    <jar jarfile="${gvm}/issue-21.jar" compress="true">
      <fileset dir="${gvm-classes}" />
      <manifest>
        <attribute name="Main-Class" value="org.javacc.jls.Issue_Gvm_10448" />
      </manifest>
    </jar>

    <echo message="executing native-image on the jar of class compiled with GraalVM" />
    <mkdir dir="${temp-gvm}" />
    <mkdir dir="${ni-gvm}" />
    <!-- let the tracing agent update the configuration json file through parsing of a single small directory -->
    <java classname="org.javacc.jls.Issue_Gvm_10448"
          classpath="${gvm}/issue-21.jar"
          failonerror="true"
          fork="true"
          jvm="${GVM_JDK-21}/bin/java"
    >
      <jvmarg value="-showversion" />
      <jvmarg value="--add-opens" />
      <jvmarg value="jdk.management/com.sun.management.internal=ALL-UNNAMED" />
      <jvmarg value="-agentlib:${GVM_JDK-21}/bin/native-image-agent=config-merge-dir=${ni-gvm}" />
    </java>

    <!-- to solve problem under Windows 10: (Windows Defender blocks process creation in C:\Temp\SVM-nnn) -->
    <!--  java.io.IOException: CreateProcess error=5, Access denied at java.base/java.lang.ProcessImpl.create(Native Method) -->
    <!-- Under Powershell launched as administrator: -->
    <!--  Add-MpPreference -AttackSurfaceReductionOnlyExclusions "C:\Devs\GitRepo\javacc~javacc\target\graalvm" -->
    <exec executable="${GVM_JDK-21}\bin\native-image.cmd" failonerror="true">
      <arg value="-jar" />
      <arg value="${gvm}/issue-21.jar" />
      <arg value="-o" />
      <arg value="${gvm}/issue-ni-21" />
      <arg value="-cp" />
      <arg value="${ni-gvm}" />
      <arg value="-H:+UnlockExperimentalVMOptions" />
      <arg value="-H:TempDirectory=${temp-gvm}" />
      <!-- next line needed for GRAAL_JDK_21 />-->
      <arg value="-H:ReflectionConfigurationFiles=${ni-gvm}/reflect-config.json" />
      <!--      <arg value="-H:+PrintClassInitialization" />-->
      <arg value="--initialize-at-build-time=org.javacc.jls" />
      <arg value="--add-opens" />
      <arg value="jdk.management/com.sun.management.internal=ALL-UNNAMED" />
      <arg value="--verbose" />
    </exec>

  </target>

  <target name="issue-test-jdk-gvm-21">

    <echo message="executing the class compiled with GraalVM" />
    <exec executable="${basedir}/${gvm}/issue-ni-21.exe">
      <!--      <arg value="-XX:+PrintGC" />-->
      <!--      <arg value="-Xmx64m" />-->
    </exec>

  </target>

  <!-- GraalVM 23 -->

  <target name="issue-compile-gvm-23" description="compile class to native with GraalVM">
    <echo message="compiling class with GraalVM" />
    <delete dir="${gvm-classes}" />
    <mkdir dir="${gvm-classes}" />
    <javac classpath="${classes}"
           debug="true"
           destdir="${gvm-classes}"
           executable="${GVM_JDK-23}/bin/javac"
           fork="true"
           includeantruntime="false"
           listfiles="true"
    >
      <compilerarg value="--version" />
      <src path="main/java/org/javacc/jls/" />
      <include name="Issue_Gvm_10448.java" />
    </javac>

    <echo message="creating jar for class compiled with GraalVM" />
    <jar jarfile="${gvm}/issue-23.jar" compress="true">
      <fileset dir="${gvm-classes}" />
      <manifest>
        <attribute name="Main-Class" value="org.javacc.jls.Issue_Gvm_10448" />
      </manifest>
    </jar>

    <echo message="executing native-image on the jar of class compiled with GraalVM" />
    <mkdir dir="${temp-gvm}" />
    <mkdir dir="${ni-gvm}" />
    <!-- let the tracing agent update the configuration json file through parsing of a single small directory -->
    <java classname="org.javacc.jls.Issue_Gvm_10448"
          classpath="${gvm}/issue-23.jar"
          failonerror="true"
          fork="true"
          jvm="${GVM_JDK-23}/bin/java"
    >
      <jvmarg value="-showversion" />
      <jvmarg value="--add-opens" />
      <jvmarg value="jdk.management/com.sun.management.internal=ALL-UNNAMED" />
      <jvmarg value="-agentlib:${GVM_JDK-23}/bin/native-image-agent=config-merge-dir=${ni-gvm}" />
    </java>

    <!-- to solve problem under Windows 10: (Windows Defender blocks process creation in C:\Temp\SVM-nnn) -->
    <!--  java.io.IOException: CreateProcess error=5, Access denied at java.base/java.lang.ProcessImpl.create(Native Method) -->
    <!-- Under Powershell launched as administrator: -->
    <!--  Add-MpPreference -AttackSurfaceReductionOnlyExclusions "C:\Devs\GitRepo\javacc~javacc\target\graalvm" -->
    <exec executable="${GVM_JDK-23}\bin\native-image.cmd" failonerror="true">
      <arg value="-jar" />
      <arg value="${gvm}/issue-23.jar" />
      <arg value="-o" />
      <arg value="${gvm}/issue-ni-23" />
      <arg value="-cp" />
      <arg value="${ni-gvm}" />
      <arg value="-H:+UnlockExperimentalVMOptions" />
      <arg value="-H:TempDirectory=${temp-gvm}" />
      <!-- next line not needed for GRAAL_JDK_23 />-->
      <!--      <arg value="-H:ReflectionConfigurationFiles=${ni-gvm}/reflect-config.json" />-->
      <!--      <arg value="-H:+PrintClassInitialization" />-->
      <arg value="--initialize-at-build-time=org.javacc.jls" />
      <arg value="--add-opens" />
      <arg value="jdk.management/com.sun.management.internal=ALL-UNNAMED" />
      <arg value="--verbose" />
    </exec>

  </target>

  <target name="issue-test-jdk-gvm-23">

    <echo message="executing the class compiled with GraalVM" />
    <exec executable="${basedir}/${gvm}/issue-ni-23.exe">
      <!--      <arg value="-XX:+PrintGC" />-->
      <!--      <arg value="-Xmx64m" />-->
    </exec>

  </target>

</project>

@MarcMazas
Copy link
Author

MarcMazas commented Jan 17, 2025

Well, with the previous specific test files, the configuration files are the following:
Reflection-config.json for v21

{
  "name":"com.sun.management.internal.OperatingSystemImpl",
  "queryAllDeclaredMethods":true,
  "queryAllPublicMethods":true
}

Reachability-metadata.json for v23

  "reflection": [
    {
      "type": "com.sun.management.internal.OperatingSystemImpl"
    }
  ],

So it looks that the tracing agent did not provide methods info in v23.
Updating the config manually did not solve the problem neither!

  "reflection": [
    {
      "type": "com.sun.management.OperatingSystemMXBean",
      "allDeclaredMethods": true,
      "allPublicMethods": true,
      "allDeclaredConstructors": true,
      "allPublicConstructors": true
    },
    {
      "type": "com.sun.management.internal.OperatingSystemImpl",
      "allDeclaredMethods": true,
      "allPublicMethods": true,
      "allDeclaredConstructors": true,
      "allPublicConstructors": true
    },
    {
      "type": "java.lang.management.OperatingSystemMXBean",
      "allDeclaredMethods": true,
      "allPublicMethods": true,
      "allDeclaredConstructors": true,
      "allPublicConstructors": true
    }
  ],

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants