On Thu, 30 Apr 2026 00:50:20 GMT, David Holmes <[email protected]> wrote:

>> On Linux, various `stat()` calls allow probing information about files
>> without opening them, but until recently, there wasn't an equivalent API
>> available on Windows.  Now that `GetFileInformationByName()` exists,
>> we can use it instead of `GetFileInformationByHandle()`, which required
>> first opening the file to create a file handle, then reading the file
>> attributes, and finally closing the file handle.
>> 
>> Since `GetFileInformationByName()` is available on only newer versions
>> of Windows, this patch uses conditional compilation and `LoadLibrary()`
>> + `GetProcAddress()` to dynamically set the pointer to the API function.
>> If the dynamic loading fails, we fall back to the old API.  To avoid
>> problems with race conditions, we use Windows' `INIT_ONCE` and
>> `InitOnceExecuteOnce()` to initialize the function pointer exactly once.
>> 
>> The rest of the patch is similar to the addition of any new JNI function
>> call.  WindowsConstants.java adds the relevant flags and error codes,
>> WindowsFileAttributes.java adds the Java entry point,
>> WindowsNativeDispatcher.java links the Java function with the C
>> function, and WindowsNativeDispatcher.c calls the Win32 API function.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> test/jdk/java/io/File/GetFileInformationByName.java line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2026, Oracle and/or its affiliates. All rights reserved.
> 
> Use Microsoft copyright not Oracle. Thanks

Also this test is in the wrong place, and overlaps significantly with the 
existing tests in java/nio/file.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/30994#discussion_r3165757159

Reply via email to