7017446: (fs) Updates to file system API (3/2011)
Xueming Shen
xueming.shen at oracle.com
Mon Mar 14 23:13:54 PDT 2011
On 3/14/2011 7:36 AM, Alan Bateman wrote:
>
> 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
Changes look fine.
Minor comments
(1) sun.nio.fs.Util.java #65/76 diamond conversion
(2) newHashSet might not be necessary in all existing use cases, simply do
unicode(Set<E> set, E...e) {
...}
it does not save you lots though:-)
-Sherman
More information about the nio-dev
mailing list