From 50de2d894bceb861ce20b7deb69247df6334ab6d Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Tue, 3 Sep 2019 17:37:27 +0300 Subject: [PATCH] [ES] do not override the last successful import data which was received before ES projects data storage initialization GitOrigin-RevId: 2a5509be5d0efa5d3dd94a65124cbda82740cecf --- .../project/manage/ExternalProjectsDataStorage.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalProjectsDataStorage.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalProjectsDataStorage.java index 444f7ce4ae53..d93a5f7786a8 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalProjectsDataStorage.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalProjectsDataStorage.java @@ -78,7 +78,6 @@ public class ExternalProjectsDataStorage implements SettingsSavingComponentJavaA } public synchronized void load() { - myExternalRootProjects.clear(); long startTs = System.currentTimeMillis(); long readEnd = startTs; try { @@ -92,9 +91,14 @@ public class ExternalProjectsDataStorage implements SettingsSavingComponentJavaA } for (InternalExternalProjectInfo projectInfo : ContainerUtil.notNullize(projectInfos)) { + Pair key = Pair.create(projectInfo.getProjectSystemId(), new File(projectInfo.getExternalProjectPath())); + InternalExternalProjectInfo projectInfoReceivedBeforeStorageInitialization = myExternalRootProjects.get(key); + if (projectInfoReceivedBeforeStorageInitialization != null && projectInfoReceivedBeforeStorageInitialization.getLastSuccessfulImportTimestamp() > 0) { + // do not override the last successful import data which was received before this data storage initialization + continue; + } if (validate(projectInfo)) { - myExternalRootProjects.put( - Pair.create(projectInfo.getProjectSystemId(), new File(projectInfo.getExternalProjectPath())), projectInfo); + myExternalRootProjects.put(key, projectInfo); if (projectInfo.getLastImportTimestamp() != projectInfo.getLastSuccessfulImportTimestamp()) { markDirty(projectInfo.getExternalProjectPath()); }