RFR: 8283335 : Add exists and readAttributesIfExists methods to FileSystemProvider

Chris Hegarty chegar at openjdk.org
Thu Jun 23 08:08:38 UTC 2022


On Wed, 22 Jun 2022 19:05:41 GMT, Lance Andersen <lancea 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/share/classes/java/nio/file/spi/FileSystemProvider.java line 1202:

> 1200:      */
> 1201:     public boolean exists(Path path, LinkOption... options) {
> 1202:         try {

Overall, I think that this is a great change (avoiding the need for various parts of the system to communicate through exceptions).

Trivially, and easily, I often find it useful to add mock-like tests for these specified implementations (implSpec), i.e. just subclass FSP mocking out the abstract methods to ensure that the default implementations invoke the appropriate ones.

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

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


More information about the core-libs-dev mailing list