[core] IDEA-337801: change exitProcess() -> app.exit()

+ exitProcess triggers ShutDownTracker directly, avoiding normal container shutdown, which causes de-initialization ordering problems

GitOrigin-RevId: 50668ba053f66d30b241f134c30888ec19f37896
This commit is contained in:
Ruslan Cheremin
2024-07-16 12:45:29 +02:00
committed by intellij-monorepo-bot
parent ef82709c51
commit 4c9572f7b9
3 changed files with 14 additions and 11 deletions

View File

@@ -14,7 +14,9 @@ import com.intellij.inspectopedia.extractor.data.Inspection
import com.intellij.inspectopedia.extractor.data.OptionsPanelInfo
import com.intellij.inspectopedia.extractor.utils.HtmlUtils
import com.intellij.openapi.application.ApplicationInfo
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.ModernApplicationStarter
import com.intellij.openapi.application.ex.ApplicationManagerEx
import com.intellij.openapi.components.serviceAsync
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.project.ProjectManager
@@ -50,12 +52,12 @@ private class InspectopediaExtractor : ModernApplicationStarter() {
}
catch (e: IOException) {
LOG.error("Output directory does not exist and could not be created")
exitProcess(-1)
ApplicationManagerEx.getApplicationEx().exit( /*force: */ false, /*confirm: */ true, -1 )
}
if (!Files.isDirectory(outputPath) || !Files.isWritable(outputPath)) {
LOG.error("Output path is invalid")
exitProcess(-1)
ApplicationManagerEx.getApplicationEx().exit( /*force: */ false, /*confirm: */ true, -1 )
}
try {
@@ -113,7 +115,7 @@ private class InspectopediaExtractor : ModernApplicationStarter() {
catch (e: Throwable) {
System.err.println("Error while processing ${wrapper.extension}")
e.printStackTrace()
exitProcess(-1)
ApplicationManagerEx.getApplicationEx().exit( /*force: */ false, /*confirm: */ true, -1 )
}
}
@@ -139,9 +141,9 @@ private class InspectopediaExtractor : ModernApplicationStarter() {
}
catch (e: Exception) {
e.printStackTrace()
exitProcess(-1)
ApplicationManagerEx.getApplicationEx().exit( /*force: */ false, /*confirm: */ true, -1 )
}
exitProcess(0)
ApplicationManagerEx.getApplicationEx().exit( /*force: */ false, /*confirm: */ true )
}
}

View File

@@ -21,8 +21,10 @@ import com.intellij.openapi.actionSystem.ActionGroup
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.impl.ActionManagerImpl
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.EDT
import com.intellij.openapi.application.ModernApplicationStarter
import com.intellij.openapi.application.ex.ApplicationManagerEx
import com.intellij.openapi.components.serviceAsync
import com.intellij.openapi.extensions.PluginDescriptor
import com.intellij.openapi.extensions.PluginId
@@ -44,7 +46,6 @@ import java.nio.charset.CodingErrorAction
import java.nio.file.Files
import java.nio.file.Path
import java.util.*
import kotlin.system.exitProcess
/**
* Used in installer's "build searchable options" step.
@@ -61,7 +62,7 @@ private class TraverseUIStarter : ModernApplicationStarter() {
options = LinkedHashMap(),
outputPath = Path.of(args[1]).toAbsolutePath().normalize(),
)
exitProcess(0)
ApplicationManagerEx.getApplicationEx().exit( /*force: */ false, /*confirm: */ true )
}
catch (e: Throwable) {
try {
@@ -70,7 +71,7 @@ private class TraverseUIStarter : ModernApplicationStarter() {
}
catch (ignored: Throwable) {
}
exitProcess(-1)
ApplicationManagerEx.getApplicationEx().exit( /*force: */ false, /*confirm: */ true, -1 )
}
}
}

View File

@@ -7,6 +7,7 @@ import com.intellij.openapi.actionSystem.ex.ActionManagerEx
import com.intellij.openapi.application.ModernApplicationStarter
import com.intellij.openapi.application.PathManager
import com.intellij.openapi.application.ex.ApplicationInfoEx
import com.intellij.openapi.application.ex.ApplicationManagerEx
import com.intellij.openapi.components.serviceAsync
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.keymap.KeymapUtil
@@ -17,7 +18,6 @@ import kotlinx.coroutines.withContext
import java.io.IOException
import java.nio.file.Files
import java.nio.file.Path
import kotlin.system.exitProcess
private val LOG = logger<KeymapGenerator>()
@@ -66,9 +66,9 @@ private class KeymapGenerator : ModernApplicationStarter() {
}
catch (e: IOException) {
LOG.error("Cannot save keymaps", e)
exitProcess(1)
ApplicationManagerEx.getApplicationEx().exit( /*force: */ false, /*confirm: */ true, -1)
}
exitProcess(0)
ApplicationManagerEx.getApplicationEx().exit( /*force: */ false, /*confirm: */ true)
}
}