JDK-4997453 : REGRESSION: It is impossible to open nonexistent file in JFileChooser
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 5.0
  • Priority: P1
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2004-02-19
  • Updated: 2004-02-20
  • Resolved: 2004-02-20
Related Reports
Duplicate :  
Description

Name: ik75403			Date: 02/19/2004



It is impossible to open nonexistent file in JFileChooser

Test case:
---- FileChooserTest.java ---
import javax.swing.*;

public class FileChooserTest {
    private static void test() {
        JFileChooser fileChooser = new JFileChooser();
        fileChooser.showSaveDialog(null);
        System.out.println(fileChooser.getSelectedFile());
        fileChooser.showOpenDialog(null);
        System.out.println(fileChooser.getSelectedFile());

    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(
            new Runnable() {
                public void run() {
                    test();
                }
            });
    }
}

----
Steps to reproduce:
1. run FileChooserTest
2. input any nonexistent name into the inputField (test.test for instance)
3. Press confirm button
4. getSelectedFile returns null.

This bug is a regression to 4922507

This change 

sun/javax/FilePane:1243

            list.setSelectedIndex(0);

sets the selectedFile to null

Stack trace:

java.lang.Exception: Stack trace
        at java.lang.Thread.dumpStack(Thread.java:1109)
        at javax.swing.JFileChooser.setSelectedFile(JFileChooser.java:465)
        at javax.swing.plaf.basic.BasicFileChooserUI$Handler.valueChanged(BasicFileChooserUI.java:505)
        at javax.swing.JList.fireSelectionValueChanged(JList.java:1317)
        at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1331)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
        at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:408)
        at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:417)
        at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:441)
        at javax.swing.JList.setSelectedIndex(JList.java:1732)
        at sun.swing.FilePane.clearSelection(FilePane.java:1243)
        at sun.swing.FilePane.setFileSelected(FilePane.java:1115)
        at sun.swing.FilePane.doSelectedFileChanged(FilePane.java:1131)
        at sun.swing.FilePane.propertyChange(FilePane.java:1196)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:329)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:266)
        at java.awt.Component.firePropertyChange(Component.java:7106)
        at javax.swing.JFileChooser.setSelectedFile(JFileChooser.java:477)
        at javax.swing.plaf.basic.BasicFileChooserUI$ApproveSelectionAction.actionPerformed(BasicFileChooserUI.java:916)
        at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1569)
        at javax.swing.JComponent.processKeyBinding(JComponent.java:2715)
        at javax.swing.JComponent.processKeyBindings(JComponent.java:2761)
        at javax.swing.JComponent.processKeyEvent(JComponent.java:2678)
        at java.awt.Component.processEvent(Component.java:5242)
        at java.awt.Container.processEvent(Container.java:1961)
        at java.awt.Component.dispatchEventImpl(Component.java:3933)
        at java.awt.Container.dispatchEventImpl(Container.java:2019)
        at java.awt.Component.dispatchEvent(Component.java:3781)
        at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1804)
        at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:668)
        at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:916)
        at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:794)
        at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:632)
        at java.awt.Component.dispatchEventImpl(Component.java:3819)

======================================================================

Comments
EVALUATION Name: sh120115 Date: 02/19/2004 I believe this is a duplicate. ###@###.### 2004-02-19 ======================================================================
19-02-2004