On Mon, 3 Oct 2022 12:00:52 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

>> https://github.com/openjdk/jdk/blob/ccc1d3169691d066c08e294f5d989b007bfab114/src/java.desktop/share/classes/javax/swing/JFileChooser.java#L608
>> Here the above logic checks if the current selected directory is traversable 
>> and if not it goes up to parent directory till top level and when every 
>> check fails then null is set to `currentDirectory`. Should we think of 
>> modifying this logic to not to set to null, rather remain in previously 
>> valid folder......?
>
> Well, the logic there tries to prevent the current directory from becoming 
> `null`. Yet it traverses up the tree:
> https://github.com/openjdk/jdk/blob/ccc1d3169691d066c08e294f5d989b007bfab114/src/java.desktop/share/classes/javax/swing/JFileChooser.java#L603-L607
> 
> Probably, if `dir` becomes `null` in the end, it should resort to its default 
> behaviour: `getFileSystemView().getDefaultDirectory()`. Or not change at all?
> 
> Then, you can handle the situation here: if 
> `getFileChooser().getCurrentDirectory()` returns `null`, restore the previous 
> current directory.
> 
> And what about other L&F? If the same code runs in Windows L&F, Nimbus L&F, 
> any other?

In other L&F the same problem exist, but NPE is does not occurs because 
previous state check is not done, directly the clicked file is been set. 
https://github.com/openjdk/jdk/blob/ccc1d3169691d066c08e294f5d989b007bfab114/src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java#L1328

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

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

Reply via email to