On Thu, 23 Jun 2022 07:18:07 GMT, Alan Bateman <[email protected]> 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