On Thu, 23 Jun 2022 07:18:07 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> src/java.base/unix/classes/sun/nio/fs/UnixFileAttributes.java line 80:
>> 
>>> 78:     static UnixFileAttributes getIfExists(UnixPath path) throws 
>>> UnixException {
>>> 79:         UnixFileAttributes attrs = new UnixFileAttributes();
>>> 80:         int errno = UnixNativeDispatcher.stat2(path, attrs);
>> 
>> I think that this is the only use of `stat2()`. It could be deleted if this 
>> method were replaced with this:
>> 
>> 
>>     static UnixFileAttributes getIfExists(UnixPath path) throws 
>> UnixException {
>>         UnixFileAttributes attrs = new UnixFileAttributes();
>>         try {
>>             UnixNativeDispatcher.stat(path, attrs);
>>             return attrs;
>>         } catch (UnixException e) {
>>             if (e.errno() == UnixConstants.ENOENT) {
>>                 return null;
>>             }
>>             throw e;
>>         }
>>     }
>
>> I think that this is the only use of `stat2()`. It could be deleted if this 
>> method were replaced with this:
> 
> The purpose of these additions to the SPI is to improve the performance of 
> user facing methods that don't throw an exception when the file doesn't 
> exist. It needs a stat/equivalent that doesn't throw so this is the reason 
> for stat2. The equivalent on Windows will need to added too.

Understood.

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

PR: https://git.openjdk.org/jdk/pull/9249

Reply via email to