On Thu, 21 Jul 2022 18:31:46 GMT, Tejesh R <t...@openjdk.org> wrote:

> Absolute path of Symbolic Link created in Windows is set to `null` in 
> `BasicFileChooserUI` class. This happens when propertyChangeListener is 
> implemented to get the Symbolic link's Absolute path on Mouse click through 
> JFileChooser. The reason being that on click of Symbolic link, the 
> _ValueChanged()_ in `BasicFileChooserUI` class has a logic which actually 
> sets the  `chooser.SelectedFile()` to `null` even though the path is not 
> null. Hence the issue is addressed by checking if its a Symbolic link and 
> then setting the `chooser.SelectedFile()` to the value of clicked link 
> without modifying the other logics.

I wonder if it's possible to create the symbolic link for the tester. Does 
[Files.html.createSymbolicLink](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/file/Files.html#createSymbolicLink(java.nio.file.Path,java.nio.file.Path,java.nio.file.attribute.FileAttribute...))
 not work?

It would be much more convenient for the tester and you would open the 
`JFileChooser` in the directory where you created the target and the link.

It may even be possible to automate the test altogether. If you explicitly set 
the L&F to Metal, you can use mnemonics and keyboard to select the link inside 
the directory and verify if `valueChanged` resets the file to `null`.

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java 
line 749:

> 747:                             } else {
> 748:                                 chooser.setSelectedFile(null);
> 749:                             }

What about the case where multiselection is enabled? It likely needs updating 
too.

test/jdk/javax/swing/JFileChooser/FileChooserSymLinkTest.java line 32:

> 30:             is valid on ValueChanged property listener.
> 31:    @run main FileChooserSymLinkTest
> 32: */

May I ask to place these tags before the class declaration?

Add the asterisk to each line, like you see in the copyright and other tests.

test/jdk/javax/swing/JFileChooser/FileChooserSymLinkTest.java line 45:

> 43: import javax.swing.WindowConstants;
> 44: 
> 45: public class FileChooserSymLinkTest{

Suggestion:

public class FileChooserSymLinkTest {

test/jdk/javax/swing/JFileChooser/FileChooserSymLinkTest.java line 76:

> 74:                 2. Create a Symbolic link targeting the created test 
> directory.
> 75:                     ex : mklink /D c:\\link c:\\target
> 76:                 3. In JFileChooser, navigate to "link" created directed.

…navigate to directory where you created the link. In this example, to C:\ 
drive.

Please use the capital C: for the drive.

-------------

Changes requested by aivanov (Reviewer).

PR: https://git.openjdk.org/jdk/pull/9597

Reply via email to