diff --git a/platform/external-system-api/src/com/intellij/openapi/externalSystem/util/ExternalSystemApiUtil.java b/platform/external-system-api/src/com/intellij/openapi/externalSystem/util/ExternalSystemApiUtil.java index b2c18c6bd5b9..39016299b6be 100644 --- a/platform/external-system-api/src/com/intellij/openapi/externalSystem/util/ExternalSystemApiUtil.java +++ b/platform/external-system-api/src/com/intellij/openapi/externalSystem/util/ExternalSystemApiUtil.java @@ -405,11 +405,22 @@ public class ExternalSystemApiUtil { @NotNull public static String getProjectRepresentationName(@NotNull String targetProjectPath, @Nullable String rootProjectPath) { if (rootProjectPath == null) { - return new File(targetProjectPath).getParentFile().getName(); + File rootProjectDir = new File(targetProjectPath); + if (rootProjectDir.isFile()) { + rootProjectDir = rootProjectDir.getParentFile(); + } + return rootProjectDir.getName(); + } + File rootProjectDir = new File(rootProjectPath); + if (rootProjectDir.isFile()) { + rootProjectDir = rootProjectDir.getParentFile(); + } + File targetProjectDir = new File(targetProjectPath); + if (targetProjectDir.isFile()) { + targetProjectDir = targetProjectDir.getParentFile(); } - File rootProjectDir = new File(rootProjectPath).getParentFile(); StringBuilder buffer = new StringBuilder(); - for (File f = new File(targetProjectPath).getParentFile(); f != null && !FileUtil.filesEqual(f, rootProjectDir); f = f.getParentFile()) { + for (File f = targetProjectDir; f != null && !FileUtil.filesEqual(f, rootProjectDir); f = f.getParentFile()) { buffer.insert(0, f.getName()).insert(0, ":"); } buffer.insert(0, rootProjectDir.getName()); diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskSettingsControl.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskSettingsControl.java index 266b3bb5d33b..b5091d710cfc 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskSettingsControl.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskSettingsControl.java @@ -117,7 +117,7 @@ public class ExternalSystemTaskSettingsControl implements ExternalSystemSettings String path = myOriginalSettings.getExternalProjectPath(); if (StringUtil.isEmpty(path)) { - path = ExternalSystemApiUtil.getLastUsedExternalProjectPath(myExternalSystemId); + path = ""; } myProjectPathField.setText(path); myTasksTextField.setText(StringUtil.join(myOriginalSettings.getTaskNames(), " ")); diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalProjectPathField.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalProjectPathField.java index 4e8e245f3433..bcf49e497ea0 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalProjectPathField.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalProjectPathField.java @@ -241,6 +241,9 @@ public class ExternalProjectPathField extends ComponentWithBrowseButton