From 3d7699241642be41e17a4bd2aa3f573e7f043f82 Mon Sep 17 00:00:00 2001 From: Eldar Abusalimov Date: Wed, 7 Mar 2018 19:54:50 +0300 Subject: [PATCH] xdebugger: (testing) Invoke Promise.getBlocking() outside write action --- .../intellij/xdebugger/XDebuggerTestUtil.java | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java index 64247073b53d..d6d265665176 100644 --- a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java +++ b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java @@ -7,7 +7,6 @@ import com.intellij.execution.impl.ConsoleViewImpl; import com.intellij.icons.AllIcons; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ReadAction; -import com.intellij.openapi.application.Result; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Disposer; @@ -31,15 +30,16 @@ import com.intellij.xdebugger.impl.frame.XStackFrameContainerEx; import org.intellij.lang.annotations.Language; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.concurrency.Promise; import java.awt.*; import java.io.File; import java.io.IOException; import java.util.*; import java.util.List; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import static org.junit.Assert.*; @@ -65,15 +65,13 @@ public class XDebuggerTestUtil { @Nullable public static XLineBreakpoint toggleBreakpoint(Project project, VirtualFile file, int line) { - return new WriteAction() { - @Override - protected void run(@NotNull Result result) { - Promise promise = - ((XDebuggerUtilImpl)XDebuggerUtil.getInstance()).toggleAndReturnLineBreakpoint(project, file, line, false); - - promise.done(result::setResult); - } - }.execute().getResultObject(); + try { + return WriteAction.computeAndWait(() -> ((XDebuggerUtilImpl)XDebuggerUtil.getInstance()) + .toggleAndReturnLineBreakpoint(project, file, line, false)).blockingGet(TIMEOUT_MS); + } + catch (TimeoutException | ExecutionException e) { + return null; + } } public static

XBreakpoint

insertBreakpoint(final Project project,