diff --git a/python/src/com/jetbrains/python/sdk/flavors/MacPythonSdkFlavor.java b/python/src/com/jetbrains/python/sdk/flavors/MacPythonSdkFlavor.java index cfde0088e2f8..72c8f422f153 100644 --- a/python/src/com/jetbrains/python/sdk/flavors/MacPythonSdkFlavor.java +++ b/python/src/com/jetbrains/python/sdk/flavors/MacPythonSdkFlavor.java @@ -19,10 +19,10 @@ import com.intellij.openapi.util.io.FileSystemUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.newvfs.NewVirtualFile; +import com.intellij.util.containers.HashSet; -import java.util.ArrayList; import java.util.Collection; -import java.util.List; +import java.util.Set; /** * @author yole @@ -36,14 +36,14 @@ public class MacPythonSdkFlavor extends CPythonSdkFlavor { @Override public Collection suggestHomePaths() { - List candidates = new ArrayList(); + Set candidates = new HashSet(); collectPythonInstallations("/Library/Frameworks/Python.framework/Versions", candidates); collectPythonInstallations("/System/Library/Frameworks/Python.framework/Versions", candidates); UnixPythonSdkFlavor.collectUnixPythons("/usr/local/bin", candidates); return candidates; } - private static void collectPythonInstallations(String pythonPath, List candidates) { + private static void collectPythonInstallations(String pythonPath, Set candidates) { VirtualFile rootVDir = LocalFileSystem.getInstance().findFileByPath(pythonPath); if (rootVDir != null) { if (rootVDir instanceof NewVirtualFile) { @@ -63,7 +63,7 @@ public class MacPythonSdkFlavor extends CPythonSdkFlavor { if (FileSystemUtil.isSymLink(path)) { path = FileSystemUtil.resolveSymLink(path); } - if (path != null) { + if (path != null && !candidates.contains(path)) { candidates.add(path); break; } diff --git a/python/src/com/jetbrains/python/sdk/flavors/UnixPythonSdkFlavor.java b/python/src/com/jetbrains/python/sdk/flavors/UnixPythonSdkFlavor.java index 3ca47e8a6bbc..b01424b66c3a 100644 --- a/python/src/com/jetbrains/python/sdk/flavors/UnixPythonSdkFlavor.java +++ b/python/src/com/jetbrains/python/sdk/flavors/UnixPythonSdkFlavor.java @@ -19,10 +19,10 @@ import com.intellij.openapi.util.io.FileSystemUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.newvfs.NewVirtualFile; +import com.intellij.util.containers.HashSet; -import java.util.ArrayList; import java.util.Collection; -import java.util.List; +import java.util.Set; /** * @author yole @@ -37,12 +37,12 @@ public class UnixPythonSdkFlavor extends CPythonSdkFlavor { @Override public Collection suggestHomePaths() { - List candidates = new ArrayList(); + Set candidates = new HashSet(); collectUnixPythons("/usr/bin", candidates); return candidates; } - public static void collectUnixPythons(String path, List candidates) { + public static void collectUnixPythons(String path, Set candidates) { VirtualFile rootDir = LocalFileSystem.getInstance().findFileByPath(path); if (rootDir != null) { if (rootDir instanceof NewVirtualFile) { @@ -59,7 +59,8 @@ public class UnixPythonSdkFlavor extends CPythonSdkFlavor { if (FileSystemUtil.isSymLink(childPath)) { childPath = FileSystemUtil.resolveSymLink(childPath); } - if (childPath != null && !childName.endsWith("-config") && !childName.startsWith("pythonw") && !childName.endsWith("m")) { + if (childPath != null && !childName.endsWith("-config") && !childName.startsWith("pythonw") && !childName.endsWith("m") && + !candidates.contains(childPath)) { candidates.add(childPath); } break;