Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4997453

REGRESSION: It is impossible to open nonexistent file in JFileChooser

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P1 P1
    • None
    • 5.0
    • client-libs



      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)

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

            kereminsunw Konstantin Eremin (Inactive)
            idk Igor Kushnirskiy (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: