RFR: 8283335 : Add exists and readAttributesIfExists methods to FileSystemProvider
Lance Andersen
lancea at openjdk.org
Fri Jun 24 10:44:08 UTC 2022
On Thu, 23 Jun 2022 10:55:00 GMT, Alan Bateman <alanb at openjdk.org> wrote:
>> Hi,
>>
>> Please review the following patch which will:
>>
>> - Enhance the java.nio.file.spi.FileSystemProvider abstract class to include the methods
>>
>> - public boolean exists(Path path, LinkOption... options)
>> - public <A extends BasicFileAttributes> A readAttributesIfExists(Path path, Class<A> type, LinkOption... options)
>>
>>
>> This change allows for providers to provide optimizations when the file's attributes are not needed.
>>
>> Mach5 tiers 1 - 3 run clean with this change
>>
>> The CSR may be viewed at [JDK-8283336](https://bugs.openjdk.org/browse/JDK-8283336)
>>
>>
>> Best,
>> Lance
>
> src/java.base/unix/classes/sun/nio/fs/UnixFileSystemProvider.java line 306:
>
>> 304: case WRITE -> w = true;
>> 305: case EXECUTE -> x = true;
>> 306: default -> throw new AssertionError("Should not get here");
>
> The switch should be exhaustive so I assume the default case is not required here.
Addressed in next push
> src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java line 302:
>
>> 300: throws IOException
>> 301: {
>> 302: return exists(path) ? readAttributes(path, type, options) : null;
>
> If you add the following to ZipPath then it would allow you to implement it in one step rather than two:
>
>
> ZipFileAttributes readAttributesIfExits() throws IOException {
> return zfs.getFileAttributes(getResolvedPath());
> }
Added the proposed change above, Mach5 tiers 1-3 continue to be clean
-------------
PR: https://git.openjdk.org/jdk/pull/9249
More information about the nio-dev
mailing list