SoftInstigate / classgraph-on-graalvm

This repo demonstrates how to build a native image of a java application that uses ClassGraph with GraalVM
4 stars 1 forks source link

example fails under Maven 3.9.7 and Oracle JVM 21 #2

Open cmeiklejohn-dd opened 3 months ago

cmeiklejohn-dd commented 3 months ago

Example fails to build native artifact because --verbose only supported on command line.

Caused by: com.oracle.svm.driver.NativeImage$NativeImageError: Using '--verbose' provided by 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar' is only allowed on command line.

When removing this from native-image.properties, run into the following:

Error: Non-boolean option 'TraceClassInitialization' from 'jar:file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar!/META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' can not use +/- prefix. Use 'TraceClassInitialization=<value>' format

When removing that, build completes. However:

% java -jar target/classgraph-on-graalvm-1.0-SNAPSHOT.jar
Initializing class com.softinstigate.App
annotated classes [com.softinstigate.FindMe]
    annotated method executeMe
Executing targets [{ com.softinstigate.FindMe, executeMe }]
    class annotation name: findMe
    class annotation priority: 10
    method annotation name: executeMe
    method annotation priority: 10
Hello World!!
% ./target/cog
targets is empty

running with tracing agent on:

% java -agentlib:native-image-agent=config-merge-dir=src/main/resources/META-INF/native-image/com.softinstigate/classgraph-on-graalvm/ -jar target/classgraph-on-graalvm-1.0-SNAPSHOT.jar

Initializing class com.softinstigate.App
annotated classes [com.softinstigate.FindMe]
    annotated method executeMe
Executing targets [{ com.softinstigate.FindMe, executeMe }]
    class annotation name: findMe
    class annotation priority: 10
    method annotation name: executeMe
    method annotation priority: 10
Hello World!!

rebuilding with tracing data present in META-INF:

[INFO] Executing: /Library/Java/JavaVirtualMachines/graalvm-jdk-21/Contents/Home/bin/native-image -cp /Users/c.meiklejohn/.m2/repository/io/github/classgraph/classgraph/4.8.90/classgraph-4.8.90.jar:/Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar -H:Class=com.softinstigate.App
Warning: Using a deprecated option --allow-incomplete-classpath from 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar'. Allowing an incomplete classpath is now the default. Use --link-at-build-time to report linking errors at image build time for a class or package.
Warning: The option '-H:Name=cog' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:+JNI' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: Please re-evaluate whether any experimental option is required, and either remove or unlock it. The build output lists all active experimental options, including where they come from and possible alternatives. If you think an experimental option should be considered as stable, please file an issue.
Warning: Option 'EnableAllSecurityServices' is deprecated and might be removed in a future release. Please refer to the GraalVM release notes.
========================================================================================================================
GraalVM Native Image: Generating 'cog' (executable)...
========================================================================================================================
Initializing class com.softinstigate.App
annotated classes []
[1/8] Initializing...                                                                                    (3.8s @ 0.15GB)
 Java version: 21.0.3+7-LTS, vendor version: Oracle GraalVM 21.0.3+7.1
 Graal compiler: optimization level: 2, target machine: armv8-a, PGO: off
 C compiler: cc (apple, arm64, 15.0.0)
 Garbage collector: Serial GC (max heap size: 80% of RAM)
 1 user-specific feature(s):
 - com.oracle.svm.thirdparty.gson.GsonFeature
------------------------------------------------------------------------------------------------------------------------
 2 experimental option(s) unlocked:
 - '-H:Name' (alternative API option(s): -o cog; origin(s): 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar')
 - '-H:+JNI' (origin(s): 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar')
------------------------------------------------------------------------------------------------------------------------
Build resources:
 - 26.49GB of memory (41.4% of 64.00GB system memory, determined at start)
 - 10 thread(s) (100.0% of 10 available processor(s), determined at start)
[2/8] Performing analysis...  [***]                                                                      (4.2s @ 0.31GB)
    2,106 reachable types   (60.5% of    3,482 total)
    1,957 reachable fields  (45.7% of    4,280 total)
    8,826 reachable methods (34.7% of   25,426 total)
      769 types,    71 fields, and   408 methods registered for reflection
       52 types,    42 fields, and    54 methods registered for JNI access
        4 native libraries: -framework Foundation, dl, pthread, z
[3/8] Building universe...                                                                               (0.8s @ 0.20GB)
[4/8] Parsing methods...      [*]                                                                        (0.6s @ 0.38GB)
[5/8] Inlining methods...     [***]                                                                      (0.5s @ 0.32GB)
[6/8] Compiling methods...    [***]                                                                      (7.9s @ 0.24GB)
[7/8] Layouting methods...    [*]                                                                        (0.6s @ 0.26GB)
[8/8] Creating image...       [*]                                                                        (0.9s @ 0.32GB)
   2.72MB (44.68%) for code area:     3,980 compilation units
   3.16MB (51.85%) for image heap:   53,458 objects and 43 resources
 216.75kB ( 3.48%) for other data
   6.09MB in total
------------------------------------------------------------------------------------------------------------------------
Top 10 origins of code area:                                Top 10 object types in image heap:
   1.27MB java.base                                          719.98kB byte[] for code metadata
   1.14MB svm.jar (Native Image)                             703.85kB byte[] for java.lang.String
  82.59kB com.oracle.svm.svm_enterprise                      371.34kB java.lang.String
  43.76kB jdk.proxy3                                         330.24kB java.lang.Class
  38.58kB jdk.proxy1                                         158.88kB java.util.HashMap$Node
  34.18kB classgraph-4.8.90.jar                              114.01kB char[]
  25.22kB org.graalvm.nativeimage.base                       103.16kB heap alignment
  22.79kB org.graalvm.collections                             87.45kB byte[] for reflection metadata
  13.63kB jdk.internal.vm.compiler                            84.84kB java.lang.Object[]
  13.32kB jdk.internal.vm.ci                                  82.27kB com.oracle.svm.core.hub.DynamicHubCompanion
  26.32kB for 7 more packages                                475.99kB for 530 more object types
                              Use '-H:+BuildReport' to create a report with more details.
------------------------------------------------------------------------------------------------------------------------
Security report:
 - Binary does not include Java deserialization.
 - Use '--enable-sbom' to embed a Software Bill of Materials (SBOM) in the binary.
------------------------------------------------------------------------------------------------------------------------
Recommendations:
 PGO:  Use Profile-Guided Optimizations ('--pgo') for improved throughput.
 INIT: Adopt '--strict-image-heap' to prepare for the next GraalVM release.
 HEAP: Set max heap for improved and more predictable memory usage.
 CPU:  Enable more CPU features with '-march=native' for improved performance.
 QBM:  Use the quick build mode ('-Ob') to speed up builds during development.
------------------------------------------------------------------------------------------------------------------------
                        0.8s (3.8% of total time) in 90 GCs | Peak RSS: 0.88GB | CPU load: 4.27
------------------------------------------------------------------------------------------------------------------------
Produced artifacts:
 /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/cog (executable)
========================================================================================================================
Finished generating 'cog' in 19.7s.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  22.330 s
[INFO] Finished at: 2024-06-10T14:07:15-04:00
[INFO] ------------------------------------------------------------------------

running again:

% ./target/cog
targets is empty

This seems to be similar to the problem I am experiencing in https://github.com/classgraph/classgraph/issues/867, where the targets list (or, map in my specific case) is empty. In your case, this prevents the code from even reaching the Class.forName location where the runtime reflection is performed.

cmeiklejohn commented 3 months ago

Replacing -H:+TraceClassInitialization (deprecated in GraalVM > 20.0.3) with --trace-class-initialization=com.softinstigate.App provides no further information.

% ./target/cog
targets is empty
cmeiklejohn-dd commented 3 months ago

Java version:

java version "21.0.3" 2024-04-16 LTS
Java(TM) SE Runtime Environment Oracle GraalVM 21.0.3+7.1 (build 21.0.3+7-LTS-jvmci-23.1-b37)
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 21.0.3+7.1 (build 21.0.3+7-LTS-jvmci-23.1-b37, mixed mode, sharing)
cmeiklejohn-dd commented 3 months ago

Some further debugging:

When I disable the System.out.println()'s it looks like it's actually doing the static initializer at build time; otherwise, it looks like the output of the build debugging (-H:+PrintClassInitialization) shows that class as not included. This changes when removing the System.out.println() -- where the class will appear in that list shown with BUILD_TIME.

In the GraalVM documentation, it seems to indicate that any classes that use native code APIs (e.g.,println) will skip the static initialization at build time and defer until runtime.

This is the exact behavior I'm seeing in my related issue I filed for classgraph.

First, use the tracing agent to generate profiling data:

java -agentlib:native-image-agent=config-merge-dir=src/main/resources/META-INF/native-image/com.softinstigate/classgraph-on-graalvm/ -jar target/classgraph-on-graalvm-1.0-SNAPSHOT.jar

Then, try to recompile again with native-image:

% mvn clean package                                                                                                                                                                      
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------< com.softinstigate:classgraph-on-graalvm >---------------
[INFO] Building classgraph-on-graalvm 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.2.0:clean (default-clean) @ classgraph-on-graalvm ---
[INFO] Deleting /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ classgraph-on-graalvm ---
[INFO] Copying 7 resources from src/main/resources to target/classes
[INFO] 
[INFO] --- compiler:3.13.0:compile (default-compile) @ classgraph-on-graalvm ---
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 4 source files with javac [debug release 11] to target/classes
[INFO] 
[INFO] --- resources:3.3.1:testResources (default-testResources) @ classgraph-on-graalvm ---
[INFO] skip non existing resourceDirectory /Users/c.meiklejohn/Projects/classgraph-on-graalvm/src/test/resources
[INFO] 
[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ classgraph-on-graalvm ---
[INFO] Recompiling the module because of changed dependency.
[INFO] Compiling 1 source file with javac [debug release 11] to target/test-classes
[INFO] 
[INFO] --- surefire:3.2.5:test (default-test) @ classgraph-on-graalvm ---
[INFO] Using auto detected provider org.apache.maven.surefire.junit.JUnit3Provider
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.softinstigate.AppTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.017 s -- in com.softinstigate.AppTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- jar:3.2.0:jar (default-jar) @ classgraph-on-graalvm ---
[INFO] Building jar: /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- shade:3.2.1:shade (default) @ classgraph-on-graalvm ---
[INFO] Including io.github.classgraph:classgraph:jar:4.8.173 in the shaded jar.
[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar with /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT-shaded.jar
[INFO] Dependency-reduced POM written at: /Users/c.meiklejohn/Projects/classgraph-on-graalvm/dependency-reduced-pom.xml
[INFO] 
[INFO] --- native-image:20.2.0:native-image (default) @ classgraph-on-graalvm ---
[INFO] ImageClasspath Entry: io.github.classgraph:classgraph:jar:4.8.173:compile (file:///Users/c.meiklejohn/.m2/repository/io/github/classgraph/classgraph/4.8.173/classgraph-4.8.173.jar)
[INFO] ImageClasspath Entry: com.softinstigate:classgraph-on-graalvm:jar:1.0-SNAPSHOT (file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar)
[WARNING] Version mismatch between native-image-maven-plugin (20.2.0) and native-image executable (Unknown)
[INFO] Executing: /Library/Java/JavaVirtualMachines/graalvm-jdk-21/Contents/Home/bin/native-image -cp /Users/c.meiklejohn/.m2/repository/io/github/classgraph/classgraph/4.8.173/classgraph-4.8.173.jar:/Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar -H:Class=com.softinstigate.App
Warning: Using a deprecated option --allow-incomplete-classpath from 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar'. Allowing an incomplete classpath is now the default. Use --link-at-build-time to report linking errors at image build time for a class or package.
Warning: The option '-H:Name=cog' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:+JNI' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: Please re-evaluate whether any experimental option is required, and either remove or unlock it. The build output lists all active experimental options, including where they come from and possible alternatives. If you think an experimental option should be considered as stable, please file an issue.
Warning: Option 'EnableAllSecurityServices' is deprecated and might be removed in a future release. Please refer to the GraalVM release notes.
========================================================================================================================
GraalVM Native Image: Generating 'cog' (executable)...
========================================================================================================================
[1/8] Initializing...                                                                                    (3.8s @ 0.15GB)
 Java version: 21.0.3+7-LTS, vendor version: Oracle GraalVM 21.0.3+7.1
 Graal compiler: optimization level: 2, target machine: armv8-a, PGO: off
 C compiler: cc (apple, arm64, 15.0.0)
 Garbage collector: Serial GC (max heap size: 80% of RAM)
 1 user-specific feature(s):
 - com.oracle.svm.thirdparty.gson.GsonFeature
------------------------------------------------------------------------------------------------------------------------
 2 experimental option(s) unlocked:
 - '-H:Name' (alternative API option(s): -o cog; origin(s): 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar')
 - '-H:+JNI' (origin(s): 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar')
------------------------------------------------------------------------------------------------------------------------
Build resources:
 - 26.49GB of memory (41.4% of 64.00GB system memory, determined at start)
 - 10 thread(s) (100.0% of 10 available processor(s), determined at start)
# Printing 1 class initialization trace(s) of class(es) traced by TraceClassInitialization to: /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/reports/traced_class_initialization_20240610_151034.txt
[2/8] Performing analysis...  [*****]                                                                   (14.1s @ 0.59GB)
    6,301 reachable types   (82.4% of    7,650 total)
    8,433 reachable fields  (55.3% of   15,247 total)
   32,631 reachable methods (56.7% of   57,507 total)
    2,108 types,   179 fields, and 1,977 methods registered for reflection
       64 types,    69 fields, and    61 methods registered for JNI access
        5 native libraries: -framework CoreServices, -framework Foundation, dl, pthread, z

Error: Unsupported features in 5 methods
Detailed message:
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@557a6f96: jdk.internal.module.ModuleReferences$JarModuleReader@557a6f96
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@336a123c: [module org.graalvm.nativeimage.pointsto, location=file:///Library/Java/JavaVirt...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@59acb12d: jdk.internal.module.ModuleReferences$JarModuleReader@59acb12d
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@59139019: [module org.graalvm.nativeimage.base, location=file:///Library/Java/JavaVirtualM...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@ab11a37: jdk.internal.module.ModuleReferences$JarModuleReader@ab11a37
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@2a18bad6: [module com.oracle.svm.svm_enterprise, location=file:///Library/Java/JavaVirtual...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@783c0448: jdk.internal.module.ModuleReferences$JarModuleReader@783c0448
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@561ea4ad: [module org.graalvm.nativeimage.objectfile, location=file:///Library/Java/JavaVi...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@1d483168: jdk.internal.module.ModuleReferences$JarModuleReader@1d483168
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@326b0ab4: [module org.graalvm.nativeimage.builder, location=file:///Library/Java/JavaVirtu...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

com.oracle.svm.core.util.UserError$UserException: Unsupported features in 5 methods
Detailed message:
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@557a6f96: jdk.internal.module.ModuleReferences$JarModuleReader@557a6f96
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@336a123c: [module org.graalvm.nativeimage.pointsto, location=file:///Library/Java/JavaVirt...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@59acb12d: jdk.internal.module.ModuleReferences$JarModuleReader@59acb12d
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@59139019: [module org.graalvm.nativeimage.base, location=file:///Library/Java/JavaVirtualM...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@ab11a37: jdk.internal.module.ModuleReferences$JarModuleReader@ab11a37
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@2a18bad6: [module com.oracle.svm.svm_enterprise, location=file:///Library/Java/JavaVirtual...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@783c0448: jdk.internal.module.ModuleReferences$JarModuleReader@783c0448
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@561ea4ad: [module org.graalvm.nativeimage.objectfile, location=file:///Library/Java/JavaVi...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@1d483168: jdk.internal.module.ModuleReferences$JarModuleReader@1d483168
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@326b0ab4: [module org.graalvm.nativeimage.builder, location=file:///Library/Java/JavaVirtu...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

        at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.UserError.abort(UserError.java:85)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:248)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:814)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:592)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:550)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:539)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:721)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:143)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:98)
Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Unsupported features in 5 methods
Detailed message:
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@557a6f96: jdk.internal.module.ModuleReferences$JarModuleReader@557a6f96
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@336a123c: [module org.graalvm.nativeimage.pointsto, location=file:///Library/Java/JavaVirt...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@59acb12d: jdk.internal.module.ModuleReferences$JarModuleReader@59acb12d
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@59139019: [module org.graalvm.nativeimage.base, location=file:///Library/Java/JavaVirtualM...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@ab11a37: jdk.internal.module.ModuleReferences$JarModuleReader@ab11a37
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@2a18bad6: [module com.oracle.svm.svm_enterprise, location=file:///Library/Java/JavaVirtual...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@783c0448: jdk.internal.module.ModuleReferences$JarModuleReader@783c0448
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@561ea4ad: [module org.graalvm.nativeimage.objectfile, location=file:///Library/Java/JavaVi...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime. If these objects should not be stored in the image heap, you can use 

    '--trace-object-instantiation=java.util.jar.JarFile'

to find classes that instantiate these objects. Once you found such a class, you can mark it explicitly for run time initialization with 

    '--initialize-at-run-time=<culprit>'

to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@1d483168: jdk.internal.module.ModuleReferences$JarModuleReader@1d483168
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@326b0ab4: [module org.graalvm.nativeimage.builder, location=file:///Library/Java/JavaVirtu...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@474b22e0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@474b22e0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@4fc4379a: {[module jdk.jdeps, location=jrt:/jdk.jdeps]=jdk.internal.module.SystemModuleFin...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260: jdk.internal.loader.ClassLoaders$AppClassLoader@2f7c7260
  reading static field java.lang.ClassLoader.scl
    at com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86)
  parsing method com.oracle.svm.core.jdk.Target_java_lang_ClassLoader.getSystemClassLoader(Target_java_lang_ClassLoader.java:86) reachable via the parsing context
    at java.util.concurrent.ForkJoinPool.<init>(ForkJoinPool.java:2756)
    at com.oracle.svm.core.code.FactoryMethodHolder.ForkJoinPool_constructor_0891236a481326254f94238021cfe2ed84d740f4(generated:0)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.initializeCommonPool(RecomputedFields.java:382)
    at com.oracle.svm.core.jdk.ForkJoinPoolCommonAccessor.get(RecomputedFields.java:374)
    at java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:416)
    at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:668)
    at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at java.lang.reflect.Executable.sharedToString(Executable.java:119)
    at java.lang.reflect.Method.toString(Method.java:416)
    at java.lang.reflect.AccessibleObject.canAccess(AccessibleObject.java)
    at root method.(Unknown Source)

        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:129)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:809)
        ... 6 more
------------------------------------------------------------------------------------------------------------------------
                        1.0s (5.4% of total time) in 61 GCs | Peak RSS: 1.08GB | CPU load: 4.42
========================================================================================================================
Finished generating 'cog' in 18.1s.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  20.875 s
[INFO] Finished at: 2024-06-10T15:10:35-04:00
[INFO] ------------------------------------------------------------------------
cmeiklejohn-dd commented 3 months ago

Oracle, GraalVM 17:

% mvn clean package
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------< com.softinstigate:classgraph-on-graalvm >---------------
[INFO] Building classgraph-on-graalvm 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.2.0:clean (default-clean) @ classgraph-on-graalvm ---
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ classgraph-on-graalvm ---
[INFO] Copying 7 resources from src/main/resources to target/classes
[INFO] 
[INFO] --- compiler:3.13.0:compile (default-compile) @ classgraph-on-graalvm ---
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 4 source files with javac [debug release 11] to target/classes
[INFO] 
[INFO] --- resources:3.3.1:testResources (default-testResources) @ classgraph-on-graalvm ---
[INFO] skip non existing resourceDirectory /Users/c.meiklejohn/Projects/classgraph-on-graalvm/src/test/resources
[INFO] 
[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ classgraph-on-graalvm ---
[INFO] Recompiling the module because of changed dependency.
[INFO] Compiling 1 source file with javac [debug release 11] to target/test-classes
[INFO] 
[INFO] --- surefire:3.2.5:test (default-test) @ classgraph-on-graalvm ---
[INFO] Using auto detected provider org.apache.maven.surefire.junit.JUnit3Provider
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.softinstigate.AppTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 s -- in com.softinstigate.AppTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- jar:3.2.0:jar (default-jar) @ classgraph-on-graalvm ---
[INFO] Building jar: /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- shade:3.2.1:shade (default) @ classgraph-on-graalvm ---
[INFO] Including io.github.classgraph:classgraph:jar:4.8.173 in the shaded jar.
[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar with /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT-shaded.jar
[INFO] Dependency-reduced POM written at: /Users/c.meiklejohn/Projects/classgraph-on-graalvm/dependency-reduced-pom.xml
[INFO] 
[INFO] --- native-image:20.2.0:native-image (default) @ classgraph-on-graalvm ---
[INFO] ImageClasspath Entry: io.github.classgraph:classgraph:jar:4.8.173:compile (file:///Users/c.meiklejohn/.m2/repository/io/github/classgraph/classgraph/4.8.173/classgraph-4.8.173.jar)
[INFO] ImageClasspath Entry: com.softinstigate:classgraph-on-graalvm:jar:1.0-SNAPSHOT (file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar)
[WARNING] Version mismatch between native-image-maven-plugin (20.2.0) and native-image executable (Unknown)
[INFO] Executing: /Library/Java/JavaVirtualMachines/graalvm-jdk-17.0.11+7.1/Contents/Home/bin/native-image -cp /Users/c.meiklejohn/.m2/repository/io/github/classgraph/classgraph/4.8.173/classgraph-4.8.173.jar:/Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar -H:Class=com.softinstigate.App
Warning: Using a deprecated option --allow-incomplete-classpath from 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar'. Allowing an incomplete classpath is now the default. Use --link-at-build-time to report linking errors at image build time for a class or package.
Warning: Option 'EnableAllSecurityServices' is deprecated and might be removed in a future release. Please refer to the GraalVM release notes.
========================================================================================================================
GraalVM Native Image: Generating 'cog' (executable)...
========================================================================================================================
Warning: Method java.lang.management.PlatformManagedObject.getInputArguments() not found.
[1/8] Initializing...                                                                                    (3.6s @ 0.17GB)
 Java version: 17.0.11+7-LTS, vendor version: Oracle GraalVM 17.0.11+7.1
 Graal compiler: optimization level: 2, target machine: armv8-a, PGO: off
 C compiler: cc (apple, arm64, 15.0.0)
 Garbage collector: Serial GC (max heap size: 80% of RAM)
# Printing 1 class initialization trace(s) of class(es) traced by TraceClassInitialization to: /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/reports/traced_class_initialization_20240610_153049.txt
[2/8] Performing analysis...  [******]                                                                  (14.7s @ 0.62GB)
   6,066 (83.40%) of  7,273 types reachable
   8,339 (55.84%) of 14,934 fields reachable
  31,775 (57.54%) of 55,220 methods reachable
   1,992 types,   155 fields, and 1,844 methods registered for reflection
      66 types,    77 fields, and    61 methods registered for JNI access
       5 native libraries: -framework CoreServices, -framework Foundation, dl, pthread, z

Error: Unsupported features in 5 methods
Detailed message:
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@50e8ed74: jdk.internal.module.ModuleReferences$JarModuleReader@50e8ed74
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@44e95aca: [module com.oracle.svm.svm_enterprise, location=file:///Library/Java/JavaVirtual...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@57873798: jdk.internal.module.ModuleReferences$JarModuleReader@57873798
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@255582c8: [module org.graalvm.nativeimage.base, location=file:///Library/Java/JavaVirtualM...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@67ae164e: jdk.internal.module.ModuleReferences$JarModuleReader@67ae164e
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@737f90bc: [module org.graalvm.nativeimage.builder, location=file:///Library/Java/JavaVirtu...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@d55ce39: jdk.internal.module.ModuleReferences$JarModuleReader@d55ce39
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@3306f91b: [module org.graalvm.nativeimage.pointsto, location=file:///Library/Java/JavaVirt...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@1ce94898: jdk.internal.module.ModuleReferences$JarModuleReader@1ce94898
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@71041889: [module org.graalvm.nativeimage.objectfile, location=file:///Library/Java/JavaVi...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan

com.oracle.svm.core.util.UserError$UserException: Unsupported features in 5 methods
Detailed message:
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@50e8ed74: jdk.internal.module.ModuleReferences$JarModuleReader@50e8ed74
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@44e95aca: [module com.oracle.svm.svm_enterprise, location=file:///Library/Java/JavaVirtual...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@57873798: jdk.internal.module.ModuleReferences$JarModuleReader@57873798
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@255582c8: [module org.graalvm.nativeimage.base, location=file:///Library/Java/JavaVirtualM...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@67ae164e: jdk.internal.module.ModuleReferences$JarModuleReader@67ae164e
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@737f90bc: [module org.graalvm.nativeimage.builder, location=file:///Library/Java/JavaVirtu...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@d55ce39: jdk.internal.module.ModuleReferences$JarModuleReader@d55ce39
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@3306f91b: [module org.graalvm.nativeimage.pointsto, location=file:///Library/Java/JavaVirt...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@1ce94898: jdk.internal.module.ModuleReferences$JarModuleReader@1ce94898
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@71041889: [module org.graalvm.nativeimage.objectfile, location=file:///Library/Java/JavaVi...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan

        at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.UserError.abort(UserError.java:85)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:248)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:798)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:582)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:539)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:408)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:612)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:134)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:94)
Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Unsupported features in 5 methods
Detailed message:
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@50e8ed74: jdk.internal.module.ModuleReferences$JarModuleReader@50e8ed74
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@44e95aca: [module com.oracle.svm.svm_enterprise, location=file:///Library/Java/JavaVirtual...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@57873798: jdk.internal.module.ModuleReferences$JarModuleReader@57873798
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@255582c8: [module org.graalvm.nativeimage.base, location=file:///Library/Java/JavaVirtualM...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@67ae164e: jdk.internal.module.ModuleReferences$JarModuleReader@67ae164e
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@737f90bc: [module org.graalvm.nativeimage.builder, location=file:///Library/Java/JavaVirtu...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@d55ce39: jdk.internal.module.ModuleReferences$JarModuleReader@d55ce39
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@3306f91b: [module org.graalvm.nativeimage.pointsto, location=file:///Library/Java/JavaVirt...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan
Error: Detected a ZipFile object in the image heap. A ZipFile object contains pointers to unmanaged C memory and file descriptors, and these resources are no longer available at image runtime.  To see how this object got instantiated use --trace-object-instantiation=java.util.jar.JarFile. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
  reading field jdk.internal.module.ModuleReferences$JarModuleReader.jf of constant 
    jdk.internal.module.ModuleReferences$JarModuleReader@1ce94898: jdk.internal.module.ModuleReferences$JarModuleReader@1ce94898
  reading field java.util.concurrent.ConcurrentHashMap$Node.val of constant 
    java.util.concurrent.ConcurrentHashMap$Node@71041889: [module org.graalvm.nativeimage.objectfile, location=file:///Library/Java/JavaVi...
  indexing into array java.util.concurrent.ConcurrentHashMap$Node[]@3af7fca0: [Ljava.util.concurrent.ConcurrentHashMap$Node;@3af7fca0
  reading field java.util.concurrent.ConcurrentHashMap.table of constant 
    java.util.concurrent.ConcurrentHashMap@7718ff6b: {[module jdk.attach, location=jrt:/jdk.attach]=jdk.internal.module.SystemModuleF...
  reading field jdk.internal.loader.BuiltinClassLoader.moduleToReader of constant 
    jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b: jdk.internal.loader.ClassLoaders$AppClassLoader@387c703b
  reading field com.oracle.svm.core.hub.DynamicHubCompanion.classLoader of constant 
    com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b: com.oracle.svm.core.hub.DynamicHubCompanion@3ec4633b
  reading field java.lang.Class.companion of constant 
    java.lang.Class@5dd37c65: class com.oracle.svm.core.jdk.UninterruptibleUtils$Integer
  manually triggered rescan

        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:129)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:793)
        ... 6 more
------------------------------------------------------------------------------------------------------------------------
                        0.8s (4.0% of total time) in 60 GCs | Peak RSS: 1.21GB | CPU load: 4.35
========================================================================================================================
Finished generating 'cog' in 18.5s.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  20.764 s
[INFO] Finished at: 2024-06-10T15:30:49-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.graalvm.nativeimage:native-image-maven-plugin:20.2.0:native-image (default) on project classgraph-on-graalvm: Execution of /Library/Java/JavaVirtualMachines/graalvm-jdk-17.0.11+7.1/Contents/Home/bin/native-image -cp /Users/c.meiklejohn/.m2/repository/io/github/classgraph/classgraph/4.8.173/classgraph-4.8.173.jar:/Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar -H:Class=com.softinstigate.App returned non-zero result -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
cmeiklejohn-dd commented 3 months ago

Community, GraalVM 22:

% mvn clean package          
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------< com.softinstigate:classgraph-on-graalvm >---------------
[INFO] Building classgraph-on-graalvm 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.2.0:clean (default-clean) @ classgraph-on-graalvm ---
[INFO] Deleting /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ classgraph-on-graalvm ---
[INFO] Copying 7 resources from src/main/resources to target/classes
[INFO] 
[INFO] --- compiler:3.13.0:compile (default-compile) @ classgraph-on-graalvm ---
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 4 source files with javac [debug release 11] to target/classes
[INFO] 
[INFO] --- resources:3.3.1:testResources (default-testResources) @ classgraph-on-graalvm ---
[INFO] skip non existing resourceDirectory /Users/c.meiklejohn/Projects/classgraph-on-graalvm/src/test/resources
[INFO] 
[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ classgraph-on-graalvm ---
[INFO] Recompiling the module because of changed dependency.
[INFO] Compiling 1 source file with javac [debug release 11] to target/test-classes
[INFO] 
[INFO] --- surefire:3.2.5:test (default-test) @ classgraph-on-graalvm ---
[INFO] Using auto detected provider org.apache.maven.surefire.junit.JUnit3Provider
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.softinstigate.AppTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.017 s -- in com.softinstigate.AppTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- jar:3.2.0:jar (default-jar) @ classgraph-on-graalvm ---
[INFO] Building jar: /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- shade:3.2.1:shade (default) @ classgraph-on-graalvm ---
[INFO] Including io.github.classgraph:classgraph:jar:4.8.173 in the shaded jar.
[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar with /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT-shaded.jar
[INFO] Dependency-reduced POM written at: /Users/c.meiklejohn/Projects/classgraph-on-graalvm/dependency-reduced-pom.xml
[INFO] 
[INFO] --- native-image:20.2.0:native-image (default) @ classgraph-on-graalvm ---
[INFO] ImageClasspath Entry: io.github.classgraph:classgraph:jar:4.8.173:compile (file:///Users/c.meiklejohn/.m2/repository/io/github/classgraph/classgraph/4.8.173/classgraph-4.8.173.jar)
[INFO] ImageClasspath Entry: com.softinstigate:classgraph-on-graalvm:jar:1.0-SNAPSHOT (file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar)
[WARNING] Version mismatch between native-image-maven-plugin (20.2.0) and native-image executable (Unknown)
[INFO] Executing: /Users/c.meiklejohn/Library/Java/JavaVirtualMachines/graalvm-ce-22.0.1/Contents/Home/bin/native-image -cp /Users/c.meiklejohn/.m2/repository/io/github/classgraph/classgraph/4.8.173/classgraph-4.8.173.jar:/Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar -H:Class=com.softinstigate.App
Warning: Using a deprecated option --allow-incomplete-classpath from 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar'. Allowing an incomplete classpath is now the default. Use --link-at-build-time to report linking errors at image build time for a class or package.
Warning: The option '-H:Name=cog' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:+JNI' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: Please re-evaluate whether any experimental option is required, and either remove or unlock it. The build output lists all active experimental options, including where they come from and possible alternatives. If you think an experimental option should be considered as stable, please file an issue.
Warning: Option 'EnableAllSecurityServices' is deprecated and might be removed in a future release. Please refer to the GraalVM release notes.
========================================================================================================================
GraalVM Native Image: Generating 'cog' (executable)...
========================================================================================================================
[1/8] Initializing...                                                                                    (3.7s @ 0.20GB)
 Java version: 22.0.1+8, vendor version: GraalVM CE 22.0.1+8.1
 Graal compiler: optimization level: 2, target machine: armv8-a
 C compiler: cc (apple, arm64, 15.0.0)
 Garbage collector: Serial GC (max heap size: 80% of RAM)
 1 user-specific feature(s):
 - com.oracle.svm.thirdparty.gson.GsonFeature
------------------------------------------------------------------------------------------------------------------------
 2 experimental option(s) unlocked:
 - '-H:Name' (alternative API option(s): -o cog; origin(s): 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar')
 - '-H:+JNI' (origin(s): 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar')
------------------------------------------------------------------------------------------------------------------------
Build resources:
 - 26.49GB of memory (41.4% of 64.00GB system memory, determined at start)
 - 10 thread(s) (100.0% of 10 available processor(s), determined at start)
# Printing 1 class initialization trace(s) of class(es) traced by TraceClassInitialization to: /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/reports/traced_class_initialization_20240610_153212.txt
[2/8] Performing analysis...  [*****]                                                                   (11.9s @ 0.52GB)
    6,330 reachable types   (82.1% of    7,706 total)
    8,395 reachable fields  (49.1% of   17,095 total)
   30,281 reachable methods (55.3% of   54,727 total)
    2,127 types,   156 fields, and 1,987 methods registered for reflection
       64 types,    68 fields, and    61 methods registered for JNI access
        5 native libraries: -framework CoreServices, -framework Foundation, dl, pthread, z
[3/8] Building universe...                                                                               (1.9s @ 0.69GB)
[4/8] Parsing methods...      [*]                                                                        (1.6s @ 0.44GB)
[5/8] Inlining methods...     [***]                                                                      (0.9s @ 0.51GB)
[6/8] Compiling methods...    [***]                                                                     (11.4s @ 0.62GB)
[7/8] Laying out methods...   [**]                                                                       (2.2s @ 0.60GB)
[8/8] Creating image...       [**]                                                                       (2.7s @ 0.76GB)
  12.96MB (42.98%) for code area:    18,992 compilation units
  16.64MB (55.19%) for image heap:  204,775 objects and 49 resources
 565.08kB ( 1.83%) for other data
  30.15MB in total
------------------------------------------------------------------------------------------------------------------------
Top 10 origins of code area:                                Top 10 object types in image heap:
  10.57MB java.base                                            4.06MB byte[] for code metadata
   1.13MB svm.jar (Native Image)                               2.36MB byte[] for java.lang.String
 333.86kB java.rmi                                             1.73MB java.lang.String
 194.30kB java.naming                                          1.51MB java.lang.Class
 129.20kB jdk.naming.dns                                     675.19kB byte[] for general heap data
 117.63kB java.logging                                       543.98kB com.oracle.svm.core.hub.DynamicHubCompanion
  75.15kB jdk.charsets                                       538.59kB heap alignment
  57.79kB jdk.proxy1                                         435.52kB java.util.concurrent.ConcurrentHashMap$Node
  57.38kB org.graalvm.nativeimage.base                       353.73kB byte[] for reflection metadata
  46.89kB jdk.proxy3                                         339.43kB java.lang.String[]
 166.93kB for 15 more packages                                 4.16MB for 1741 more object types
------------------------------------------------------------------------------------------------------------------------
Recommendations:
 HEAP: Set max heap for improved and more predictable memory usage.
 CPU:  Enable more CPU features with '-march=native' for improved performance.
------------------------------------------------------------------------------------------------------------------------
                        2.4s (6.4% of total time) in 384 GCs | Peak RSS: 1.36GB | CPU load: 4.71
------------------------------------------------------------------------------------------------------------------------
Build artifacts:
 /Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/cog (executable)
========================================================================================================================
Finished generating 'cog' in 37.3s.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  39.921 s
[INFO] Finished at: 2024-06-10T15:32:33-04:00
[INFO] ------------------------------------------------------------------------
% target/cog                                                                                                                                                                             
targets is empty
cmeiklejohn-dd commented 3 months ago

GraalVM CE 22, with enableRealtimeLogging() during Java execution with tracing agent enabled seems to locate the class and it's within the accepted package filter:

% java -agentlib:native-image-agent=config-merge-dir=src/main/resources/META-INF/native-image/com.softinstigate/classgraph-on-graalvm/ -jar target/classgraph-on-graalvm-1.0-SNAPSHOT.jar
2024-06-10T16:00:14.850-0400    ClassGraph  ---- Found classfile within subpackage of accepted package: com/softinstigate/FindMe.class
2024-06-10T16:00:15.488-0400    ClassGraph  ------ Parsing classfile (took 0.217525 sec)
2024-06-10T16:00:15.518-0400    ClassGraph  -------- Found class com.softinstigate.FindMe
2024-06-10T16:00:15.538-0400    ClassGraph  ---------- Superclass: java.lang.Object
2024-06-10T16:00:15.559-0400    ClassGraph  ---------- Class annotations: @com.softinstigate.ClassMarker(name="findMe")
2024-06-10T16:00:15.642-0400    ClassGraph  ---------- Method: public <init>
2024-06-10T16:00:15.679-0400    ClassGraph  ---------- Method: public executeMe
cmeiklejohn-dd commented 3 months ago

--initialize-at-build-time initializing the static at runtime:

com.softinstigate.App, BUILD_TIME, from 'META-INF/native-image/com.softinstigate/classgraph-on-graalvm/native-image.properties' in 'file:///Users/c.meiklejohn/Projects/classgraph-on-graalvm/target/classgraph-on-graalvm-1.0-SNAPSHOT.jar' with 'com.softinstigate.App'
cmeiklejohn-dd commented 3 months ago

jar file issue seems related to https://github.com/oracle/graal/issues/4797#issuecomment-1416893549

ujibang commented 3 months ago

Thank you, @cmeiklejohn, for the detailed analysis of the GraalVM upgrade.

Once you have successfully completed the upgrade, please file a PR.