On Tue, 12 Sep 2023 01:36:34 GMT, Brian Burkhalter <[email protected]> wrote:
>> On Windows, do not return `true` from the `java.io.File` methods
>> `setReadable(boolean, boolean)` and `setExecutable(boolean, boolean)` if the
>> file does not exist.
>
> src/java.base/windows/native/libjava/WinNTFileSystem_md.c line 479:
>
>> 477: if (access == java_io_FileSystem_ACCESS_READ ||
>> 478: access == java_io_FileSystem_ACCESS_EXECUTE) {
>> 479: return _waccess(pathbuf, 0) == 0 ? enable : JNI_FALSE;
>
> Here `enable` is returned for backward compatibility, but per the
> specification it seems that `JNI_TRUE` should be returned instead.
I don't think this is right, at least it doesn't work with ACLs and file system
security so it can't test if the file is executable. Also I have a concern
about mixing win32 and C runtime functions here. The main issue with these
setXXX methods is that don't map to DOS file attributes or ACL based security
so they will need to fail for some cases.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15673#discussion_r1322486689