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

JFileChooser InvalidPathException when selecting some system folders on Windows

XMLWordPrintable

    • b10
    • 20
    • b26
    • x86_64
    • windows_10

      ADDITIONAL SYSTEM INFORMATION :
      Java 20, Java 20.0.1
      Windows 10, Windows 11

      A DESCRIPTION OF THE PROBLEM :
      Selecting the "This PC", "Libraries", or "Network" folders from the system "Desktop" folder in a JFileChooser causes an InvalidPathException in Java 20. Does not happen in Java 19.

      REGRESSION : Last worked in version 19.0.2

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Run code on Windows. Select "Desktop" folder from "Save In". Select "This PC", "Libraries", or "Network" from the file list.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Expect nothing to happen other than the selection changing.
      ACTUAL -
      Stack dump for "This PC" selection on Java 20.0.1:

      Exception in thread "AWT-EventQueue-0" java.nio.file.InvalidPathException: Illegal char <:> at index 0: ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
      at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
      at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
      at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
      at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
      at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232)
      at java.base/java.io.File.toPath(File.java:2398)
      at java.desktop/javax.swing.plaf.basic.BasicFileChooserUI$Handler.valueChanged(BasicFileChooserUI.java:744)
      at java.desktop/javax.swing.JList.fireSelectionValueChanged(JList.java:1831)
      at java.desktop/javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1845)
      at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:229)
      at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:191)
      at java.desktop/javax.swing.DefaultListSelectionModel.setValueIsAdjusting(DefaultListSelectionModel.java:733)
      at java.desktop/javax.swing.JList.setValueIsAdjusting(JList.java:2179)
      at java.desktop/javax.swing.plaf.basic.BasicListUI$Handler.mouseReleased(BasicListUI.java:2988)
      at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298)
      at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
      at java.desktop/java.awt.Component.processMouseEvent(Component.java:6620)
      at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398)
      at java.desktop/java.awt.Component.processEvent(Component.java:6385)
      at java.desktop/java.awt.Container.processEvent(Container.java:2266)
      at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4995)
      at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
      at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827)
      at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
      at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
      at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
      at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
      at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
      at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827)
      at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
      at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
      at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
      at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
      at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
      at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
      at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
      at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
      at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
      at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
      at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
      at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
      at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
      at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
      at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
      at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
      at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
      at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
      at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
      at java.desktop/java.awt.Dialog.show(Dialog.java:1080)
      at java.desktop/javax.swing.JFileChooser.showDialog(JFileChooser.java:771)
      at java.desktop/javax.swing.JFileChooser.showSaveDialog(JFileChooser.java:693)
      at JFileChooserBug20.lambda$main$0(JFileChooserBug20.java:5)
      at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
      at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
      at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
      at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
      at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
      at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
      at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
      at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
      at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
      at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
      at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
      at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
      at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)



      ---------- BEGIN SOURCE ----------
      import javax.swing.*;

      public class JFileChooserBug20 {
         public static void main(String args[]) {
            SwingUtilities.invokeLater(()->new JFileChooser().showSaveDialog(null));
         }
      }

      ---------- END SOURCE ----------

      FREQUENCY : always


            tr Tejesh R
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: