From 0a12d050e652eedb82a5d9e123b9aa783ea59f19 Mon Sep 17 00:00:00 2001 From: Ramazan Dzhekshembaev Date: Wed, 13 Dec 2023 16:26:12 +0100 Subject: [PATCH] [fleet] FL-23749 implement methods synchronously in fleet GitOrigin-RevId: 42dee2cccbb409dfe2a868be78d897dcee78d3bf --- .../generation/OverrideImplementUtil.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java index 7bff62b6b5c3..fd923fa30f9d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java @@ -20,6 +20,7 @@ import com.intellij.openapi.actionSystem.Shortcut; import com.intellij.openapi.actionSystem.ex.ActionUtil; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ModalityState; +import com.intellij.openapi.application.NonBlockingReadAction; import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.command.CommandProcessor; @@ -449,14 +450,18 @@ public final class OverrideImplementUtil extends OverrideImplementExploreUtil { final Editor editor, @NotNull PsiClass aClass, final boolean toImplement) { - ReadAction.nonBlocking(() -> { + NonBlockingReadAction prepareChooserTask = ReadAction.nonBlocking(() -> { return prepareChooser(aClass, toImplement); }) - .finishOnUiThread(ModalityState.defaultModalityState(), container -> { + .expireWhen(() -> !aClass.isValid()); + + if (ApplicationManager.getApplication().isHeadlessEnvironment()) { + showAndPerform(project, editor, aClass, toImplement, prepareChooserTask.executeSynchronously()); + } else { + prepareChooserTask.finishOnUiThread(ModalityState.defaultModalityState(), container -> { showAndPerform(project, editor, aClass, toImplement, container); - }) - .expireWhen(() -> !aClass.isValid()) - .submit(AppExecutorUtil.getAppExecutorService()); + }).submit(AppExecutorUtil.getAppExecutorService()); + } } public static void showAndPerform(@NotNull Project project,