load is native and has no overriding implementation
agilesw opened this issue · 6 comments
macbook m1 arm cpu
RunGuidDemoHash1
This is the Java Bytecode Symbolic Executor's Run Tool (Assembles a jar archive containing the classes of the 'main' feature. v.0.11.0-SNAPSHOT).
Connecting to Z3 at /opt/homebrew/bin/z3.
Initializing guidance by driver method guid/hash_1/GuidDemoHash1:()V:guidanceStart.
Failed guidance, cause: jbse.algo.exc.NotYetImplementedException: Method java/lang/ClassLoader$NativeLibrary:(Ljava/lang/String;ZZ)V:load is native and has no overriding implementation.
Connection failed, cause: jbse.common.exc.UnexpectedInternalException: jbse.algo.exc.NotYetImplementedException: Method java/lang/ClassLoader$NativeLibrary:(Ljava/lang/String;ZZ)V:load is native and has no overriding implementation..
why “ java/lang/ClassLoader$NativeLibrary:(Ljava/lang/String;ZZ)V:load is native and has no overriding implementation”?
how to resolve
It is possible that in the latest version of Java some native methods were moved. Can you tell me which version of Java 8 are you running JBSE on?
It is possible that in the latest version of Java some native methods were moved. Can you tell me which version of Java 8 are you running JBSE on?
java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode
the same problem on:
java version "1.8.0_391"
Java(TM) SE Runtime Environment (build 1.8.0_391-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13, mixed mode)
It's quite natural that, if JBSE doesn't work on a version of Java 8, it also won't on a later version. I have JDK 1.8.0_312 and even on my setup there are some examples (e.g., golo) that do not longer work. Unfortunately JBSE depends on the internals of the JDK, and these are easily subject to breaking changes from one version to the next one. In the future I will bump the JDK to the last version and update JBSE so it works with it. In the meantime I can only suggest to downgrade the JDK to Temurin 1.8.0_302 (the oldest available on the Adoptium website) and try again.
I did a commit that fixed an issue with JDK 1.8.0_312 and I have checked the example on it, and it works. Until I find time to upgrade JBSE to work with 1.8.0_391 I kindly suggest to downgrade to that version of the JDK.
I have tasted, can work in:
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (Zulu 8.58.0.13-CA-macos-aarch64) (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (Zulu 8.58.0.13-CA-macos-aarch64) (build 25.312-b07, mixed mode)