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.addepa...@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.addepa...@oracle.com>; swing-dev@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



Reply via email to