quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.87k stars 2.71k forks source link

java.lang.NoSuchMethodError: java.lang.String.getBytes()[B on graalvm Linux RHEL #10682

Closed tcollignon closed 2 years ago

tcollignon commented 4 years ago

Describe the bug I create a new quarkus 1.6.0.Final project with nothing special (only quarkus-rest-client and no code) Java 11.0.3 If I run on Linux RHEL 7 and GraalVM and I got this error :

java.lang.NoSuchMethodError: java.lang.String.getBytes()[B

Expected behavior I should run it without error (In a bigger usecase I have picocli and small amount of code, but to test I delete all the code and picocli extension and get same error)

Actual behavior If I run with GraalVM 19.3.2 I got :

15:56:43  + mvn -v
15:56:44  Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T17:06:16+02:00)
15:56:44  Maven home: /opt/mvnDockerDefault
15:56:44  Java version: 11.0.3, vendor: AdoptOpenJDK, runtime: /opt/jdk11.0.3
15:56:44  Default locale: fr_FR, platform encoding: Cp1252
15:56:44  OS name: "linux", version: "3.10.0-862.14.4.el7.x86_64", arch: "amd64", family: "unix"
15:57:55  + target/gerrit-cli-1.0.0-SNAPSHOT-runner
15:57:55  java.lang.NoSuchMethodError: java.lang.String.getBytes()[B

I I run with GraalVM 20.1.0 I got this

+ gerritCli/gerrit project --name GerritEfluidRestClient
java.lang.NoSuchMethodError: java.lang.String.getBytes()[B
    at com.oracle.svm.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1095)
    at com.oracle.svm.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1080)
    at com.oracle.svm.jni.functions.JNIFunctions.GetMethodID(JNIFunctions.java:384)
    at java.io.FileInputStream.open0(FileInputStream.java)
    at java.io.FileInputStream.open(FileInputStream.java:219)
    at java.io.FileInputStream.<init>(FileInputStream.java:157)
    at java.io.FileInputStream.<init>(FileInputStream.java:112)
    at com.oracle.svm.core.posix.linux.LinuxPhysicalMemory$PhysicalMemorySupportImpl.sizeFromCGroup(LinuxPhysicalMemory.java:83)
    at com.oracle.svm.core.posix.linux.LinuxPhysicalMemory$PhysicalMemorySupportImpl.size(LinuxPhysicalMemory.java:55)
    at com.oracle.svm.core.heap.PhysicalMemory.doInitialize(PhysicalMemory.java:141)
    at com.oracle.svm.core.heap.PhysicalMemory.tryInitialize(PhysicalMemory.java:111)
    at com.oracle.svm.core.genscavenge.HeapPolicy.samplePhysicalMemorySize(HeapPolicy.java:383)
    at com.oracle.svm.core.genscavenge.ThreadLocalAllocation.runSlowPathHooks(ThreadLocalAllocation.java:143)
    at com.oracle.svm.core.genscavenge.ThreadLocalAllocation.slowPathNewInstance(ThreadLocalAllocation.java:136)
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.setNativeName(PosixJavaThreads.java:154)
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.beforeThreadRun(PosixJavaThreads.java:202)
    at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:505)
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)

To Reproduce Steps to reproduce the behavior:

  1. Create new Quarkus 1.6.0Final (same with 1.5.0.Final) project with nothing special
  2. Run mvn package -P native with GraalVM 19.3.1 19.3.2 or 20.1.0
  3. Run executable on Linux RHEL 7

Configuration Nothing in configuration file

Environment (please complete the following information):

This is the same with


16:22:17  + java -version
16:22:17  openjdk version "11.0.3" 2019-04-16
16:22:17  OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
16:22:17  OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)

I got this trace during native compilation :

16:18:17  [INFO] [org.jboss.threads] JBoss Threads version 3.1.1.Final
16:18:17  [INFO] [io.quarkus.deployment.pkg.steps.JarResultBuildStep] Building native image source jar: /mnt/mesos/sandbox/jenkins/workspace/Ftools/Fgerrit/gerritCli.validation-gerrit/gerritCli_1594649761794/target/gerrit-cli-1.0.0-SNAPSHOT-native-image-source-jar/gerrit-cli-1.0.0-SNAPSHOT-runner.jar
16:18:17  [INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Building native image from /mnt/mesos/sandbox/jenkins/workspace/Ftools/Fgerrit/gerritCli.validation-gerrit/gerritCli_1594649761794/target/gerrit-cli-1.0.0-SNAPSHOT-native-image-source-jar/gerrit-cli-1.0.0-SNAPSHOT-runner.jar
16:18:17  [INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running Quarkus native-image plugin on GraalVM Version 19.3.2 CE
16:18:17  [INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] /opt/graalvm-ce-java11-19.3.2/bin/native-image -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Duser.language=fr -J-Dfile.encoding=Cp1252 --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy$BySpaceAndTime -H:+JNI -jar gerrit-cli-1.0.0-SNAPSHOT-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:-AddAllCharsets -H:-IncludeAllTimeZones -H:EnableURLProtocols=http --no-server -H:-UseServiceLoaderFeature -H:+StackTrace gerrit-cli-1.0.0-SNAPSHOT-runner

16:18:22  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]    classlist:   3 736,78 ms
16:18:23  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]        (cap):   1 069,20 ms

16:18:24  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]        setup:   2 717,60 ms

16:18:37  16:18:36,361 INFO  [org.jbo.threads] JBoss Threads version 3.1.1.Final

16:18:47  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]   (typeflow):   8 406,74 ms
16:18:47  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]    (objects):  11 689,21 ms
16:18:47  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]   (features):     555,87 ms
16:18:47  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]     analysis:  21 525,62 ms

16:18:48  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]     (clinit):     528,00 ms
16:18:48  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]     universe:   1 460,26 ms

16:18:50  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]      (parse):   1 718,08 ms

16:18:54  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]     (inline):   4 164,04 ms

16:19:12  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]    (compile):  15 951,48 ms
16:19:12  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]      compile:  23 601,73 ms

16:19:15  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]        image:   3 229,66 ms

16:19:17  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]        write:   1 703,18 ms
16:19:17  [gerrit-cli-1.0.0-SNAPSHOT-runner:890]      [total]:  58 407,90 ms
16:19:17  [INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Execute [objcopy, --strip-debug, /mnt/mesos/sandbox/jenkins/workspace/Ftools/Fgerrit/gerritCli.validation-gerrit/gerritCli_1594649761794/target/gerrit-cli-1.0.0-SNAPSHOT-runner]
16:19:17  [INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 60736ms
dmlloyd commented 4 years ago

This looks like a GraalVM bug to me: the JNI support library should be registering getBytes() as JNI-reachable but apparently is not doing so.

A workaround could be to define an @AutomaticFeature to register the String#getBytes() method for JNI access. See the GraalVM docs for a bit more information.

geoand commented 4 years ago

@galderz or @rsvoboda have you ever encountered this?

tcollignon commented 4 years ago

Hi Thx for quick reply! @dmlloyd How can I add @AutomaticFeature ? I create JNIRegistrationFeature in my project ?

dmlloyd commented 4 years ago

Hi Thx for quick reply! @dmlloyd How can I add @AutomaticFeature ? I create JNIRegistrationFeature in my project ?

Right. The class name doesn't matter though; you could call it FixTheGraalVMBug if you wanted to. The important part is the annotation on the class, and overriding the beforeAnalysis method of the Feature interface to register the missing method.

rsvoboda commented 4 years ago

Nope, I haven't seen this (yet). I'm not on native lately.

@tcollignon is it RHEL 7 specific? And did you experience this with prior versions of Quarkus/GraalVM?

jaikiran commented 4 years ago

I've opened https://github.com/oracle/graal/pull/2673 to have this fixed long term in Graal VM.

tcollignon commented 4 years ago

Hi @rsvoboda

I have only test on RHEL on Linux Side, and on Windows it works fine (I have GraalVM 20.2-dev and windows 10)

With prior version of QUarkus/GraalVM it was working fine on other project that I have and now it doesn't working with same error

tcollignon commented 4 years ago

Thx @jaikiran for the PR in GraalVM

tcollignon commented 4 years ago

I try to add theses things in my project, but now I run into this problem : https://github.com/quarkusio/quarkus/issues/10498

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
    [error]: Build step io.quarkus.deployment.steps.BootstrapConfigSetupBuildStep#setupBootstrapConfig threw an exception: java.lang.IllegalArgumentException: Unsupported api 524288
    at org.objectweb.asm.ClassVisitor.<init>(ClassVisitor.java:70)
    at io.quarkus.gizmo.GizmoClassVisitor.<init>(GizmoClassVisitor.java:22)
    at io.quarkus.gizmo.ClassCreator.writeTo(ClassCreator.java:150)
    at io.quarkus.gizmo.ClassCreator.close(ClassCreator.java:203)
    at io.quarkus.deployment.steps.BootstrapConfigSetupBuildStep.setupBootstrapConfig(BootstrapConfigSetupBuildStep.java:40)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:932)
    at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2046)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1578)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
    at java.base/java.lang.Thread.run(Thread.java:834)
    at org.jboss.threads.JBossThread.run(JBossThread.java:479)
    <dependency>
      <groupId>org.graalvm.nativeimage</groupId>
      <artifactId>svm</artifactId>
      <version>19.3.2</version>
    </dependency>

import com.oracle.svm.core.annotate.AutomaticFeature; import com.oracle.svm.core.jni.JNIRuntimeAccess; import org.graalvm.nativeimage.hosted.Feature;

@AutomaticFeature
public class JNIRegistrationFeature implements Feature {
    public void beforeAnalysis(BeforeAnalysisAccess access) {
        try {
            JNIRuntimeAccess.register(String.class);
            JNIRuntimeAccess.register(String.class.getDeclaredMethod("getBytes"));
        } catch (NoSuchMethodException e) {
        }
    }
}
jaikiran commented 4 years ago

and on Windows it works fine

That specific code path in the exception is only applicable for Linux systems. So it's understandable why it won't show up in Windows. Having said that, a call to new FileInputStream is such a common occurence that I am surprised this hasn't shown up previously and I'm wondering if there's something more going on here. On the RHEL setup where you are running into this issue, can you tell us what the output of the following command is:

ls -lh /sys/fs/cgroup/memory/memory.limit_in_bytes

As for the other issue (related to ASM) that you ran into while using the workaround, I don't have a solution for that unfortunately. That needs to be fixed in Graal VM (they have fixed it but no released version has that fix yet).

tcollignon commented 4 years ago

Hi @jaikiran

this is the output :

14:59:57  + ls -lh /sys/fs/cgroup/memory/memory.limit_in_bytes
14:59:57  -rw-r--r-- 1 root root 0 15 juil. 14:59 /sys/fs/cgroup/memory/memory.limit_in_bytes
jaikiran commented 4 years ago

Well, that rules out the case that the code might be going into a "not so common" code path where the file isn't existent. I can't really think of why this issue hasn't shown up previously and why no one else seems to be running into this.

jaikiran commented 4 years ago

@tcollignon, I gave this a try on a RHEL7 setup, JDK 11.0.7 with a simple application like you noted. I haven't been able to reproduce this issue. Are you still running into this issue? If so, any chance you can share the actual application as a github repo perhaps?

tcollignon commented 4 years ago

Hi @jaikiran

Yes I still running this issue, I wait for https://github.com/quarkusio/quarkus/issues/10498 (If anyone knows if there is maven snapshot dependency of org.graalvm.nativeimage:svm ? )

I can share the code if you want, but it's a quarkus basic hello world

jaikiran commented 4 years ago

I can share the code if you want, but it's a quarkus basic hello world

Yes, please. Given that I couldn't reproduce this with a simple Quarkus application, I would like to rule out any other possibilities.

tcollignon commented 4 years ago

I have add this here : https://github.com/tcollignon/example-quarkus-10682

jaikiran commented 4 years ago

More of a FYI, this issue got reported again in Quarkus and it is now fixed in Graal VM itself https://github.com/oracle/graal/pull/2673.

tcollignon commented 4 years ago

Hi

On a project without resteasy the hack : A workaround could be to define an @AutomaticFeature to register the String#getBytes() method for JNI access Works for me now with graalvm 20.2

But on a project with resteasy it does not, I have this error (in a docker container) :


__  ____  __  _____   ___  __ ____  ______ 
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ 
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/   
2020-11-17 16:56:33,681 ERROR [io.qua.run.Application] (main) Failed to start application (with profile prod): java.lang.NoSuchMethodError: java.lang.String.<init>([B)V
    at com.oracle.svm.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1103)
    at com.oracle.svm.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1088)
    at com.oracle.svm.jni.functions.JNIFunctions.GetMethodID(JNIFunctions.java:391)
    at java.io.UnixFileSystem.canonicalize0(UnixFileSystem.java)
    at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:178)
    at java.io.File.getCanonicalPath(File.java:620)
    at java.io.File.getCanonicalFile(File.java:645)
    at sun.security.provider.FileInputStreamPool.getInputStream(FileInputStreamPool.java:84)
    at sun.security.provider.NativePRNG$RandomIO.<init>(NativePRNG.java:388)
    at sun.security.provider.NativePRNG$1.run(NativePRNG.java:190)
    at sun.security.provider.NativePRNG$1.run(NativePRNG.java:130)
    at java.security.AccessController.doPrivileged(AccessController.java:83)
    at sun.security.provider.NativePRNG.initIO(NativePRNG.java:129)
    at sun.security.provider.NativePRNG.<clinit>(NativePRNG.java:93)
    at com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:351)
    at com.oracle.svm.core.classinitialization.ClassInitializationInfo.initialize(ClassInitializationInfo.java:271)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.security.Provider.newInstanceUtil(Provider.java:176)
    at java.security.Provider$Service.newInstance(Provider.java:1891)
    at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:290)
    at java.security.SecureRandom.<init>(SecureRandom.java:219)
    at java.util.UUID$Holder.<clinit>(UUID.java:101)
    at com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:351)
    at com.oracle.svm.core.classinitialization.ClassInitializationInfo.initialize(ClassInitializationInfo.java:271)
    at java.util.UUID.randomUUID(UUID.java:147)
    at io.vertx.core.file.impl.FileResolver.setupCacheDir(FileResolver.java:385)
    at io.vertx.core.file.impl.FileResolver.<init>(FileResolver.java:119)
    at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:167)
    at io.vertx.core.impl.VertxImpl.vertx(VertxImpl.java:92)
    at io.vertx.core.impl.VertxFactoryImpl.vertx(VertxFactoryImpl.java:40)
    at io.vertx.core.impl.VertxFactoryImpl.vertx(VertxFactoryImpl.java:32)
    at io.vertx.core.Vertx.vertx(Vertx.java:85)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder.initialize(VertxCoreRecorder.java:196)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$VertxSupplier.get(VertxCoreRecorder.java:390)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$VertxSupplier.get(VertxCoreRecorder.java:377)
    at io.quarkus.resteasy.runtime.standalone.ResteasyStandaloneRecorder.vertxRequestHandler(ResteasyStandaloneRecorder.java:92)
    at io.quarkus.deployment.steps.ResteasyStandaloneBuildStep$boot-614950547.deploy_0(ResteasyStandaloneBuildStep$boot-614950547.zig:103)
    at io.quarkus.deployment.steps.ResteasyStandaloneBuildStep$boot-614950547.deploy(ResteasyStandaloneBuildStep$boot-614950547.zig:40)
    at io.quarkus.runner.ApplicationImpl.doStart(ApplicationImpl.zig:499)
    at io.quarkus.runtime.Application.start(Application.java:90)
    at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:95)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:62)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:38)
    at io.quarkus.runtime.Quarkus.run(Quarkus.java:104)
    at io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:29) 
galderz commented 4 years ago

@tcollignon Have you tried with Mandrel or GraalVM 20.3?

gsmet commented 4 years ago

For the record, I know we register String for reflection at least in one of our extensions.

If it's a common issue, we might have to do it in the core extension.

jaikiran commented 4 years ago

Hello @tcollignon,

 But on a project with resteasy it does not, I have this error (in a docker container) :
2020-11-17 16:56:33,681 ERROR [io.qua.run.Application] (main) Failed to start application (with profile prod):
 java.lang.NoSuchMethodError: java.lang.String.<init>([B)V
    at com.oracle.svm.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1103)
    at com.oracle.svm.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1088)
    at com.oracle.svm.jni.functions.JNIFunctions.GetMethodID(JNIFunctions.java:391)
    at java.io.UnixFileSystem.canonicalize0(UnixFileSystem.java)
    at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:178)
    at java.io.File.getCanonicalPath(File.java:620)
    at java.io.File.getCanonicalFile(File.java:645)

This is a different error and in fact a new bug. It looks like the java.lang.String constructor which takes (only) a byte[] is being invoked from JNI and that constructor isn't enrolled for JNI access in GraalVM and hence this error. I had a look at the JNI code of the JDK and I don't see any reference to this constructor. All references go through the java.lang.String constructor which takes a byte[] and a String encoding params. I'm really surprised that you are consistently hitting issues like these on your setup and it makes me wonder what vendor/version of the JVM is being picked up.

Is there any more details you could add that might help us fix this? The fix itself is a simple one liner change that we can do in GraalVM itself. However, I still don't see how you end up running into this issue and that doesn't give me the confidence to propose the fix.

tcollignon commented 3 years ago

Hi,

I have upgrade to GraalVM 21.0.0 and quarkus 1.13.3, and now I have a new error

java.lang.InternalError: java.lang.reflect.InvocationTargetException
    at com.oracle.svm.core.containers.Metrics.systemMetrics(Metrics.java:66)
    at com.oracle.svm.core.containers.Container.metrics(Container.java:44)
    at com.oracle.svm.core.ContainerInfo.<init>(ContainerInfo.java:34)
    at com.oracle.svm.core.Containers.memoryLimitInBytes(Containers.java:162)
    at com.oracle.svm.core.heap.PhysicalMemory.doInitialize(PhysicalMemory.java:144)
    at com.oracle.svm.core.heap.PhysicalMemory.tryInitialize(PhysicalMemory.java:114)
    at com.oracle.svm.core.genscavenge.HeapPolicy.samplePhysicalMemorySize(HeapPolicy.java:351)
    at com.oracle.svm.core.genscavenge.ThreadLocalAllocation.runSlowPathHooks(ThreadLocalAllocation.java:156)
    at com.oracle.svm.core.genscavenge.ThreadLocalAllocation.slowPathNewArray(ThreadLocalAllocation.java:194)
    at java.util.Arrays.copyOfRange(Arrays.java:4027)
    at java.lang.StringLatin1.newString(StringLatin1.java:715)
    at java.lang.String.substring(String.java:1846)
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.setNativeName(PosixJavaThreads.java:153)
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.beforeThreadRun(PosixJavaThreads.java:201)
    at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:507)
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
galderz commented 3 years ago

@tcollignon At first glance, that would appear to a different issue altogether. Mind creating a new one along with a reproducer or an updated reproducer?

jaikiran commented 3 years ago

Hello @tcollignon,

 But on a project with resteasy it does not, I have this error (in a docker container) :
2020-11-17 16:56:33,681 ERROR [io.qua.run.Application] (main) Failed to start application (with profile prod):
 java.lang.NoSuchMethodError: java.lang.String.<init>([B)V
  at com.oracle.svm.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1103)
  at com.oracle.svm.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1088)
  at com.oracle.svm.jni.functions.JNIFunctions.GetMethodID(JNIFunctions.java:391)
  at java.io.UnixFileSystem.canonicalize0(UnixFileSystem.java)
  at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:178)
  at java.io.File.getCanonicalPath(File.java:620)
  at java.io.File.getCanonicalFile(File.java:645)

This one should now be fixed by this PR https://github.com/oracle/graal/pull/3680

geoand commented 2 years ago

This is pretty old and likely not an issue anymore, so I'll close it.

If it's still a problem, feel free to comment