On Tue, 26 Oct 2021 22:51:29 GMT, Mandy Chung <mch...@openjdk.org> wrote:

> On, macOS 11.x, system libraries are loaded from dynamic linker cache.  The 
> libraries are no longer present on the filesystem.   
> `NativeLibraries::loadLibrary` checks for the file existence before calling 
> `JVM_LoadLibrary`.   Such check no longer applies on Big Sur.   This proposes 
> that on macOS >= 11, it will skip the file existence check and attempt to 
> load a library for each path from java.library.path and system library path.

src/java.base/macosx/classes/jdk/internal/loader/ClassLoaderHelper.java line 44:

> 42:             } catch (NumberFormatException e) {}
> 43:         }
> 44:         hasDynamicLoaderCache = major >= 11;

Hello Mandy,
I'm not too familiar with MacOS versioning schemes. However, in this specific 
logic, if the `os.version` value doesn't contain a dot character, then the 
`major` is initialized to `11`, which would then evaluate this 
`hasDynamicLoaderCache` to `true`. That would mean if the `os.version` is (for 
example) `10`, then `hasDynamicLoaderCache` will be incorrectly set to `true` 
here, isn't it?

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

PR: https://git.openjdk.java.net/jdk/pull/6127

Reply via email to