7017446: (fs) Updates to file system API (3/2011)
Alan Bateman
Alan.Bateman at oracle.com
Mon Mar 14 07:36:06 PDT 2011
This webrev contains a couple of small API updates:
1. Files.getAttribute and readAttributes currently return null (or an
empty map) when invoked with invalid attribute names. The proposed
change here fixes this so that IllegalArgumentException is thrown when
invalid names are used. UOE will continue to be throw if an unsupported
view is specified.
2. A method is added to WatchKey to return the the object for which the
watch key was created. This has come up several times, and the
implementation changes for this were actually included in the last round
of updates. For now the methods the Watchable and so must be cast to the
specific type when used. Not ideal but the alternative propagates a type
parameter and would require restricting the WatchService so that it only
watches objects of one type.
3. The Files.createTempFile and createTemptDirectory methods that
specify the temporary file directory are restricted to the default file
system. The rational for this is that it may not be possible to generate
a file name suitable for use with a custom file system. In the future we
can extend the provider interface to support this if needed.
4. A couple of questions/inconsistencies were observed with the zip
provider when comparing paths in different zip file systems. To address
this, Path.equals is changed so that it returns false if the given
object is a Path associated with a different FileSystem (used to return
false if associated with a different provider). The startsWith/endsWith
methods also return false if the given path is associated with a
different FileSystem. This also addressed another concern that came up
no this mailing list some time ago where ProviderMismatchException is
thrown.
The webrev with the changes is here:
http://cr.openjdk.java.net/~alanb/7017446/webrev/
Thanks,
Alan
More information about the nio-dev
mailing list