Hi Phil,

On 12/06/2017 09:56 AM, Phil Race wrote:



On 12/06/2017 09:39 AM, Semyon Sadetsky wrote:

On 12/06/2017 08:33 AM, Phil Race wrote:

Hi,
I have some additional comments on this old review thread. Hopefully we can close it out soon
although it will need a CSR whatever ..

Since the implementation of ShellFolderManager filters out inaccessible files we
should document this somewhere.
I suggest either on the class or relevant methods saying something like
"Files or resources which are not accessible in the current security context
may be filtered out from the returned set".

The word "may" is key here ..
This looks to me like implementation details.

No. On the contrary. It can be specified.
You are suggesting to describe some solution as a part of a generic interface specification which assumes platform specific behavior. But if we add this extra details we need to be sure that the proposed generic solution is feasible.  At the moment there are no way to set permissions for virtual shell folders like "Network" or "Computer" and others but they are returned in the list. So, when in  the interface specification you are requesting inaccessible elements not to be returned you need to be sure that at least the current OpenJDK implementation is in alignment with it.

I agree that it is worth to mention this problematic in the method spec but since it is a generic method for different platforms it probably should be given in a different form than a particular platform specific solution. If the entries of the list are virtual they may not have any file system permissions at all.

If we are sure that this is always the case then it would follow that SecurityException
does not need to be documented.
Consistency would suggest that then this policy would extend to the other methods
added in JDK 9 which declare that exception. So all or none.
Being a RuntimeException that is not checked I think we can compatibly remove those.
This is not consistent with other JDK classes in which the SecurityException is always mentioned, for example, the java.awt.Desktop class and there are many others. I think it would be non-practical to rewrite all other specs because you've changed your mind in this particular fix review.

The API contract of some other class such as Desktop is not relevant.

I am saying FileSystemView should be internally consistent
I think more important criterion is the method specification is consistent with its own implementation and describes its results in full for developer. I have several bugs on my plate which suggest that it is important to remind about security exception which may be the result of the method otherwise the functionality of the client classes may be broken:
https://bugs.openjdk.java.net/browse/JDK-8193766
https://bugs.openjdk.java.net/browse/JDK-8193563
https://bugs.openjdk.java.net/browse/JDK-8193761

Most of the method specifications of the FileSystemView class *should* mention SecurityException as a result of their execution. For example, similar java.awt.Desktop class methods which provide access to the OS shell extensions all mention SecurityException.

--Semyon


Also, in this fix review [1]  you brought an opposite point of view.

[1] http://mail.openjdk.java.net/pipermail/swing-dev/2015-October/005073.html

That was because no one told me at the time that we were filtering out to prevent leakage.
i.e I have new information.


-phil.

--Semyon


-phil.


On 10/24/2017 09:22 PM, Alexander Zvegintsev wrote:

Hi Semyon,

the fix looks good to me, but I found a minor typo in the test:

testShortcatPanelFiles -> testShortcutPanelFiles

no need for a new webrev

Thanks,
Alexander.
On 04/10/2017 00:41, Semyon Sadetsky wrote:
Hello,

Please review fix for JDK10 (the changes involve AWT and Swing):

bug: https://bugs.openjdk.java.net/browse/JDK-8182041

webrev: http://cr.openjdk.java.net/~ssadetsky/8182041/webrev.00/

New API method was added letting to query shortcut panel entries for JFileChooser.

--Semyon






Reply via email to