RFR: JDK-8293659: Improve UnsatisfiedLinkError error message to include dlopen error details

Mandy Chung mchung at openjdk.org
Thu Sep 15 17:59:43 UTC 2022


On Thu, 15 Sep 2022 11:54:41 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

> When trying to load a x64 lib on macOS aarch64 one got previously this detailed message before [JDK-8275703](https://bugs.openjdk.org/browse/JDK-8275703):
> 
> java.lang.UnsatisfiedLinkError: /testing/jco3/macOsx64/libsapjco3.dylib: dlopen(/testing/jco3/macOsx64/libsapjco3.dylib, 1): no suitable image found. Did find:

Adding the background and details for this review:

The `throwException` parameter in `JVM_LoadLibrary` was added to support dynamic linker cache.   dlopen may succeed when the given path does not exist but in the dynamic linker cache.   `System::loadLibrary` on macOS that supports dynamic linker cache calls `JVM_LoadLibrary` with `throwException == false` and so VM doesn't throw  `UnsatisfiedLinkException`.  Instead the libraries code throws `UnsatisfiedLinkException` if it fails to load the library.

For this issue,  a library to be loaded exists.    A simple fix is to call `JVM_LoadLibrary` with throwException = true such that the VM throws `UnsatisfiedLinkException` with the detailed error message.

-------------

PR: https://git.openjdk.org/jdk/pull/10286


More information about the core-libs-dev mailing list