sorry, forget the updated webrev http://cr.openjdk.java.net/~ssadetsky/8081722/webrev.01/

On 10/30/2015 12:07 PM, Semyon Sadetsky wrote:
Hello Phil,

On 10/29/2015 9:30 PM, Phil Race wrote:
We should specify what happens if you pass in to get(String)
a) null
b) an unrecognised name.

Yes. I forget this.
Would it make sense to define string constants on FileSystemView
as otherwise people have to spell these exactly right without compiler help ?

That is a good service for developers. But in our case the key strings may vary because they depends on the implementation. It is not a strong API. Also this methods will be used rarely just in several apps like NetBeans and probably will be spell once only. But if you think that it is really mandatory I'm ready to rework the fix.
Also I expect (hope!) that we do not assert any privileges here so there
will be a SecurityException if the caller does not have the necessary permissions.
That should be documented.
OK, added.
I find it odd that isLink(File) catches FNFE and just returns "false" like this
was a normal file. Why is that ? In fact I find it particularly odd since
getLinkLocation() *does* throw FNFE if it does not exist.
It seems to me more convenient. If file is a link one can try to query the real location using getLinkLocation(). Just to avoid too many try-catch blocks. Then getLinkLocation() throws FNFE if the location of the link is wrong not the link file itself.
Also the docs casually say
"a shell interpreted link" and "platform shell" without explaining
what they mean by a shell. Should this term be used at all or
should the docs describe this in some other words ?

I'm trying to indicate difference with a file system link. I think "shell" is a common term in computing. For example GUI desktop is a shell. If I write "desktop interpreted link" will it require explaining anyway?
getLinkLocation says
"Returns a file linked to the specified file if the specified file"
What that reads like to me is that you get back a link if
you pass in a regular file, whereas (I believe) you mean
the opposite.

I think you mean :
"Returns the regular file referenced by the specified link file"
+1

I also note that one of the uses we located was of ShellFolder.getShellFolder(File) That internal API returns a ShellFolder but it we expose that it would have to
be the java.io.File superclass I expect.
Sorry, but what sense to have getShellFolder(File) returned the same File object? In those usages getShellFolder() just a handle to execute ShellFolder.isLink() or ShellFolder.getLinkLocation(). Those methods now available in FileSystemView class.

-phil.









-phil.


On 10/26/2015 06:51 AM, Semyon Sadetsky wrote:
Hello,

Please review fix for JDK9:

bug: https://bugs.openjdk.java.net/browse/JDK-8081722
webrev: http://cr.openjdk.java.net/~ssadetsky/8081722/webrev.00

As the solution it is suggested to have 3 new static methods in the javax.swing.filechooser.FileSystemView class. Those methods proxy sun.awt.shell.ShellFolder calls and it is enough to cover NetBeans request. getShellFolder() method is not added because it returns the ShellFolder instance which is not for public use under the proposed approach.
The CCC request will be rework when the fix is approved.

--Semyon



Reply via email to