IDEA-132328 (hide broken symlinks in file chooser)
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Wed, 5 Nov 2014 19:01:31 +0000 (20:01 +0100)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Wed, 5 Nov 2014 19:01:31 +0000 (20:01 +0100)
platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptor.java

index 7509394a2368e72b5d5e2aa2f32fb3dc37c03b20..574904cb74ac341b28563e099b7ad3c4886db4c2 100644 (file)
@@ -231,6 +231,10 @@ public class FileChooserDescriptor implements Cloneable {
    * Defines whether a file is visible in the tree.
    */
   public boolean isFileVisible(VirtualFile file, boolean showHiddenFiles) {
+    if (file.is(VFileProperty.SYMLINK) && file.getCanonicalPath() == null) {
+      return false;
+    }
+
     if (!file.isDirectory()) {
       if (FileElement.isArchive(file)) {
         if (!myChooseJars && !myChooseJarContents) {
@@ -262,6 +266,9 @@ public class FileChooserDescriptor implements Cloneable {
   public boolean isFileSelectable(VirtualFile file) {
     if (file == null) return false;
 
+    if (file.is(VFileProperty.SYMLINK) && file.getCanonicalPath() == null) {
+      return false;
+    }
     if (file.isDirectory() && myChooseFolders) {
       return true;
     }