requesting review on JDK-8348828: Windows dll loading now resolves symlinks

Benjamin Peterson benjamin at engflow.com
Tue Oct 7 17:08:40 UTC 2025


On Tue, Oct 7, 2025 at 11:09 AM Alan Bateman <alan.bateman at oracle.com> wrote:
>
>
>
> On 07/10/2025 16:15, Benjamin Peterson wrote:
>
> I've had a PR for the native library loading code up for a months that
> I'd appreciate any review on:
> https://github.com/openjdk/jdk/pull/24694
>
> To summarize the issue and proposed fix: Before OpenJDK 24,
> System.loadLibrary on Windows passed symbolic links unresolved to the
> underlying LoadLibrary function. JDK-8003887 caused symbolic links to
> be resolved by Java before the system LoadLibrary function.
> Unfortunately, LoadLibrary is clever and may mangle the filename
> passed to it, which means passing a symlink may not have the same
> behavior as presenting the fully resolved path. I propose to fix this
> problem in the PR by disabling LoadLibrary's clever mangling behavior.
>
> The reason this didn't come to a conclusion is because this isn't really a JDK bug, instead it's a about a strange environment where some "mystery product" has moved the DLLs out the JDK run-time image directory and put them somewhere without the .dll suffix. The JDK expects the DLLs to be in the bin directory and named ".dll".  So it's really a question as to whether the JDK should accept a change to allow this strange setup.

The reproducer I submitted in the initial bug report is definitely
weird looking because I attempted point out the breaking change in as
simple and as self-contained a manner as possible. But, I did run into
this in a very real and useful application. I've tried to add more
context about the application in comments such as
https://bugs.openjdk.org/browse/JDK-8348828?focusedId=14744766&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-14744766.
I can certainly answer more questions about the usecase if the would
be helpful.

The heart of the matter is: Is it legal to call System.loadLibrary()
with a symlink on Windows? The JDK before 24's answer was yes.


More information about the core-libs-dev mailing list