diff --git a/jdk/src/java.desktop/share/classes/sun/awt/shell/ShellFolder.java b/jdk/src/java.desktop/share/classes/sun/awt/shell/ShellFolder.java index 90bf4d02389..590f2bd70ab 100644 --- a/jdk/src/java.desktop/share/classes/sun/awt/shell/ShellFolder.java +++ b/jdk/src/java.desktop/share/classes/sun/awt/shell/ShellFolder.java @@ -30,6 +30,10 @@ import java.awt.Image; import java.awt.Toolkit; import java.io.*; import java.io.FileNotFoundException; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.*; import java.util.concurrent.Callable; @@ -240,10 +244,11 @@ public abstract class ShellFolder extends File { * @exception FileNotFoundException if file does not exist */ public static ShellFolder getShellFolder(File file) throws FileNotFoundException { + Path path = Paths.get(file.getPath()); if (file instanceof ShellFolder) { return (ShellFolder)file; } - if (!file.exists()) { + if (!Files.exists(path, LinkOption.NOFOLLOW_LINKS)) { throw new FileNotFoundException(); } return shellFolderManager.createShellFolder(file);