On Tue, 12 Sep 2023 01:36:34 GMT, Brian Burkhalter <b...@openjdk.org> 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