From 66ddd2ee21b528ea2132b6c916942d9a70d756bc Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Sun, 22 Mar 2020 18:27:11 +0300 Subject: [PATCH] cleanup: read & remove the config migration marker file within a single method to encapsulate the state transition IDEA-CR-60006, IDEA-233305 GitOrigin-RevId: 5cfad729a8537d93f6faa805ac4efb37ca3b4a6f --- .../openapi/application/ConfigImportHelper.java | 3 +-- .../application/CustomConfigMigrationOption.kt | 12 +++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java b/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java index 55cc14fccbb9..4b8191835b30 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java @@ -85,8 +85,7 @@ public final class ConfigImportHelper { catch (Exception ignored) { } List guessedOldConfigDirs = findConfigDirectories(newConfigDir); - CustomConfigMigrationOption customMigrationOption = CustomConfigMigrationOption.readCustomConfigMigrationOption(); - CustomConfigMigrationOption.removeCustomConfigMigrationFile(); + CustomConfigMigrationOption customMigrationOption = CustomConfigMigrationOption.readCustomConfigMigrationOptionAndRemoveMarkerFile(); File tempBackup = null; try { diff --git a/platform/platform-impl/src/com/intellij/openapi/application/CustomConfigMigrationOption.kt b/platform/platform-impl/src/com/intellij/openapi/application/CustomConfigMigrationOption.kt index ada1407b0e11..8d2a0498ee28 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/CustomConfigMigrationOption.kt +++ b/platform/platform-impl/src/com/intellij/openapi/application/CustomConfigMigrationOption.kt @@ -7,6 +7,7 @@ import com.intellij.util.io.delete import com.intellij.util.io.exists import com.intellij.util.io.systemIndependentPath import com.intellij.util.io.write +import java.nio.file.Files import java.nio.file.Path import java.nio.file.Paths @@ -20,7 +21,7 @@ sealed class CustomConfigMigrationOption { companion object { @JvmStatic - fun readCustomConfigMigrationOption(): CustomConfigMigrationOption? { + fun readCustomConfigMigrationOptionAndRemoveMarkerFile(): CustomConfigMigrationOption? { val markerFile = getMarkerFilePath() if (!markerFile.exists()) return null @@ -38,14 +39,15 @@ sealed class CustomConfigMigrationOption { log.warn("Couldn't load content of $markerFile") return null } + finally { + removeMarkerFile(markerFile) + } } @JvmStatic - fun needsCustomConfigMigration(): Boolean = readCustomConfigMigrationOption() != null + fun needsCustomConfigMigration(): Boolean = Files.exists(getMarkerFilePath()) - @JvmStatic - fun removeCustomConfigMigrationFile() { - val markerFile = getMarkerFilePath() + private fun removeMarkerFile(markerFile: Path) { try { markerFile.delete() }