<Swing Dev> [11][JDK-8196673] JFileChooser throws InvalidPathException when changing to directory with added space

Semyon Sadetsky semyon.sadetsky at oracle.com
Fri Feb 16 17:39:53 UTC 2018


I take a look at the 6578565. They said that windows specifies this in 
https://msdn.microsoft.com/en-US/library/aa365247.aspx. And this doc says:

"Do not end a file or directory name with a space or a period. Although 
the underlying file system may support such names, the Windows shell and 
user interface does not. However, it is acceptable to specify a period 
as the first character of a name. For example, ".temp"."

That means that only Windows shell doesn't support it. This may be not 
enough a justification since NIO works in headless mode as well. It is 
the client-libs that should take care about following the shell specs 
not core-libs. NIO should support spaces if underling OS supports it.

It looks really odd that Java may create a directory but may not change 
to it. It also introduces compatibility problems with files created on 
other platforms, downloads, unpacked archives, etc.

--Semyon

Do not end a file or directory name

> Krishna Addepalli <krishna.addepalli at oracle.com>
with a space or a period. Although the underlying file system may 
support such names, the Windows shell and user interface does not. 
However, it is acceptable to specify a period as the first character of 
a name. For example, ".temp".


On 02/16/2018 09:08 AM, Phil Race wrote:
> Right, what I said was that perhaps nio is behaving as specified in 
> this case.
> If a standalone nio program can be written that shows nio contravening 
> its spec.
> then a bug should be raised against nio. I did not verify what the 
> case is there ..
> I just suggested that should be investigated.
>
> Vagueness that it is an nio problem without pointing to why just makes me
> have to investigate it myself to see why .. I'd prefer that the bug 
> owner do that :-)
>
> But otherwise (no nio bug)  we'll have to deal with what nio specifies.
> If we can fix it locally *and* file a bug against nio then that is 
> also an issue.
> Also nio may take a while to get to it ..
>
> -phil
>
> On 02/16/2018 08:56 AM, Krishna Addepalli wrote:
>>
>> Hi Semyon,
>>
>> I had a discussion with Sergey,Phil regarding this. While there was a 
>> similar bug filed against Core-libs 
>> (https://bugs.openjdk.java.net/browse/JDK-6578565) , it was closed 
>> out as not an issue.
>>
>> I have checked it on Java8, and it behaves correctly on Windows – it 
>> trims the paths and then creates/selects the folder.
>>
>> From Java9 onwards, the InvalidPathException is thrown, since 
>> ShellFolder.java file uses nio to get the path, and the nio throws 
>> the exception as reported in the bug.
>>
>> Phil suggested that, we should fix the bug at our level if we can, 
>> since nio may not consider this to be a problem at their level.
>>
>> Hence this suggested fix.
>>
>> Thanks,
>>
>> Krishna
>>
>> *From:*Semyon Sadetsky
>> *Sent:* Friday, February 16, 2018 10:04 PM
>> *To:* Krishna Addepalli <krishna.addepalli at oracle.com>; 
>> swing-dev at openjdk.java.net
>> *Subject:* Re: <Swing Dev> [11][JDK-8196673] JFileChooser throws 
>> InvalidPathException when changing to directory with added space
>>
>> According to Pardeep Sharma comment the bug is reproducible since 
>> 6u45. Do you confirm this or it is a regression introduced in 9?
>>
>> From the stack trace it doesn't look as a client-libs issue but a NIO 
>> issue.
>>
>> --Semyon
>>
>> On 02/16/2018 04:40 AM, Krishna Addepalli wrote:
>>
>>     Hi Sergey, Phil
>>
>>     Please review a fix for JDK-8196673:
>>     https://bugs.openjdk.java.net/browse/JDK-8196673
>>
>>     Webrev: http://cr.openjdk.java.net/~kaddepalli/8196673/webrev00
>>     <http://cr.openjdk.java.net/%7Ekaddepalli/8196673/webrev00>
>>
>>     The problem is in Java9 and later, when a directory path that
>>     contains leading/trailing space is provided, it throws an
>>     InvalidPathException. As per Phil’s recommendation, I have added
>>     a simple fix, which will trim the path for Windows, whereas for
>>     other platforms, it keeps it as it is.
>>
>>     Thanks,
>>
>>     Krishna
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20180216/04473e3a/attachment.html>


More information about the swing-dev mailing list