diff --git a/bin/win/IdeaWin32.dll b/bin/win/IdeaWin32.dll index 6f48e5f4623c..a31ab2d772d9 100644 Binary files a/bin/win/IdeaWin32.dll and b/bin/win/IdeaWin32.dll differ diff --git a/bin/win/IdeaWin64.dll b/bin/win/IdeaWin64.dll index 8270cee7a916..e10392536226 100644 Binary files a/bin/win/IdeaWin64.dll and b/bin/win/IdeaWin64.dll differ diff --git a/platform/util/src/com/intellij/openapi/util/io/FileSystemUtil.java b/platform/util/src/com/intellij/openapi/util/io/FileSystemUtil.java index c515b411a05d..28ebdf7189e3 100644 --- a/platform/util/src/com/intellij/openapi/util/io/FileSystemUtil.java +++ b/platform/util/src/com/intellij/openapi/util/io/FileSystemUtil.java @@ -262,7 +262,8 @@ public class FileSystemUtil { Object pathObj = myGetPath.invoke(null, path, ArrayUtil.EMPTY_STRING_ARRAY); Object attributes = myReadAttributes.invoke(null, pathObj, mySchema, myNoFollowLinkOptions); - boolean isSymbolicLink = (Boolean)myIsSymbolicLink.invoke(attributes); + boolean isSymbolicLink = (Boolean)myIsSymbolicLink.invoke(attributes) || + SystemInfo.isWindows && (Boolean)myIsOther.invoke(attributes) && (Boolean)myIsDirectory.invoke(attributes); if (isSymbolicLink) { try { attributes = myReadAttributes.invoke(null, pathObj, mySchema, myLinkOptions); diff --git a/platform/util/testSrc/com/intellij/openapi/util/io/FileAttributesReadingTest.java b/platform/util/testSrc/com/intellij/openapi/util/io/FileAttributesReadingTest.java index 09dd2d15eb29..77f036349d2b 100644 --- a/platform/util/testSrc/com/intellij/openapi/util/io/FileAttributesReadingTest.java +++ b/platform/util/testSrc/com/intellij/openapi/util/io/FileAttributesReadingTest.java @@ -303,7 +303,7 @@ public abstract class FileAttributesReadingTest { try { FileAttributes attributes = getAttributes(junction); assertEquals(FileAttributes.Type.DIRECTORY, attributes.type); - assertEquals(0, attributes.flags); + assertEquals(FileAttributes.SYM_LINK, attributes.flags); assertTrue(attributes.isWritable()); final String resolved1 = FileSystemUtil.resolveSymLink(junction); @@ -312,8 +312,8 @@ public abstract class FileAttributesReadingTest { FileUtil.delete(target); attributes = getAttributes(junction); - assertEquals(FileAttributes.Type.DIRECTORY, attributes.type); - assertEquals(0, attributes.flags); + assertNull(attributes.type); + assertEquals(FileAttributes.SYM_LINK, attributes.flags); assertTrue(attributes.isWritable()); final String resolved2 = FileSystemUtil.resolveSymLink(junction);