Code Review Request: 7168172: (fs) Files.isReadable slow on Windows

Kurchi Subhra Hazra kurchi.subhra.hazra at oracle.com
Thu Aug 23 09:11:14 PDT 2012


Yes I plan to backport it to 7u8.

- Kurchi

On 8/23/12 8:08 AM, Zhong Yu wrote:
> Ulf you are right.
>
> Question about release schedule: will this fix be included in a jdk7 release?
>
> On Thu, Aug 23, 2012 at 7:53 AM, Ulf Zibis<Ulf.Zibis at gmx.de>  wrote:
>> Am 23.08.2012 01:50, schrieb Zhong Yu:
>>>>       public void checkAccess(Path obj, AccessMode... modes) throws
>>>>
>>>> IOException {
>>>>           AccessMode r = null;
>>>>           AccessMode w = null;
>>>>           AccessMode x = null;
>>>>           for (AccessMode mode: modes) {
>>>>               switch (mode) {
>>>>                   case READ : r = READ; break;
>>>>                   case WRITE : w = WRITE; break;
>>>>                   case EXECUTE : x = EXECUTE; break;
>>>>                   default: throw new AssertionError("Should not get
>>>> here");
>>>>               }
>>>>           }
>>> That'll leave r==null if `modes` is empty. But an empty `modes` is
>>> supposed to be equivalent to [READ].
>>
>> Yes, but in that case w and x are also null, so the "special-case read
>> access" will be invoked anyway, and the null-ness of r wouldn't matter.
>>
>>>>           WindowsPath file = WindowsPath.toWindowsPath(obj);
>>>>
>>>>           // special-case read access to avoid needing to determine
>>>> effective
>>>>           // access to file
>>>>           if (w == null&&  x == null) {
>>>>               tryReadAccess(file);
>>>>               return;
>>>>           }
>>>>
>>>>           ...
>>>>       }
>>>>
>>>> -Ulf
>>>>



More information about the nio-dev mailing list