RFR: 6616245: NullPointerException when using JFileChooser with a custom FileView [v2]

Tejesh R tr at openjdk.org
Mon Oct 3 12:09:22 UTC 2022


On Mon, 3 Oct 2022 12:00:52 GMT, Alexey Ivanov <aivanov at 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



More information about the client-libs-dev mailing list