diff --git a/platform/testFramework/src/com/intellij/testFramework/EdtTestUtil.kt b/platform/testFramework/src/com/intellij/testFramework/EdtTestUtil.kt index fb6643dcd844..96e83a229d68 100644 --- a/platform/testFramework/src/com/intellij/testFramework/EdtTestUtil.kt +++ b/platform/testFramework/src/com/intellij/testFramework/EdtTestUtil.kt @@ -28,22 +28,6 @@ class EdtTestUtil { @TestOnly @JvmStatic fun runInEdtAndWait(runnable: ThrowableRunnable) { runInEdtAndWait { runnable.run() } } - - /** - * Same as {@link #runInEdtAndWait}, but when an unchecked exception happens inside runnable, its just rethrown without being wrapped. - * Can be useful to decrease "Caused by" chain for cases when the stack trace of the calling thread is not important or obvious. - */ - @TestOnly @JvmStatic fun runInEdtAndWaitRethrowing(runnable: ThrowableRunnable) { - var exception: Throwable? = null - runInEdtAndWait { - try { - runnable.run() - } catch (e: Throwable) { - exception = e - } - } - ExceptionUtil.rethrowAllAsUnchecked(exception) - } } } @@ -51,7 +35,15 @@ class EdtTestUtil { fun runInEdtAndWait(runnable: () -> Unit) { val application = ApplicationManager.getApplication() if (application is ApplicationImpl) { - application.invokeAndWait(runnable) + var exception: Throwable? = null + application.invokeAndWait { + try { + runnable() + } catch (e: Throwable) { + exception = e + } + } + ExceptionUtil.rethrowAllAsUnchecked(exception) return } diff --git a/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java b/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java index e523fd64e0c3..302b06286973 100644 --- a/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java @@ -496,7 +496,7 @@ public abstract class LightPlatformTestCase extends UsefulTestCase implements Da } TestRunnerUtil.replaceIdeEventQueueSafely(); - EdtTestUtil.runInEdtAndWaitRethrowing(() -> { + EdtTestUtil.runInEdtAndWait(() -> { try { ourTestThread = Thread.currentThread(); startRunAndTear(); diff --git a/platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java b/platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java index d58ca60e2c8a..a83b4a56d885 100644 --- a/platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java @@ -414,7 +414,7 @@ public abstract class UsefulTestCase extends TestCase { if (runInDispatchThread()) { TestRunnerUtil.replaceIdeEventQueueSafely(); - EdtTestUtil.runInEdtAndWaitRethrowing(this::defaultRunBare); + EdtTestUtil.runInEdtAndWait(this::defaultRunBare); } else { defaultRunBare();