diff --git a/java/testFramework/src/com/intellij/debugger/ExecutionWithDebuggerToolsTestCase.java b/java/testFramework/src/com/intellij/debugger/ExecutionWithDebuggerToolsTestCase.java index 5411bdc99ed2..fd830adc470c 100644 --- a/java/testFramework/src/com/intellij/debugger/ExecutionWithDebuggerToolsTestCase.java +++ b/java/testFramework/src/com/intellij/debugger/ExecutionWithDebuggerToolsTestCase.java @@ -1,4 +1,4 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.debugger; import com.intellij.debugger.engine.*; @@ -32,6 +32,7 @@ import com.intellij.ui.classFilter.ClassFilter; import com.intellij.util.SmartList; import com.intellij.util.TimeoutUtil; import com.intellij.util.lang.CompoundRuntimeException; +import com.intellij.util.ui.EdtInvocationManager; import com.intellij.util.ui.UIUtil; import com.sun.jdi.Method; import org.jetbrains.annotations.NotNull; @@ -40,6 +41,7 @@ import org.jetbrains.java.debugger.breakpoints.properties.JavaLineBreakpointProp import org.jetbrains.java.debugger.breakpoints.properties.JavaMethodBreakpointProperties; import javax.swing.*; +import java.lang.reflect.InvocationTargetException; import java.util.*; import java.util.concurrent.TimeUnit; @@ -305,7 +307,12 @@ public abstract class ExecutionWithDebuggerToolsTestCase extends ExecutionTestCa } else { if (!SwingUtilities.isEventDispatchThread()) { - UIUtil.invokeAndWaitIfNeeded(() -> pumpSwingThread()); + try { + EdtInvocationManager.getInstance().invokeAndWait(() -> pumpSwingThread()); + } + catch (InvocationTargetException | InterruptedException e) { + throw new RuntimeException(e); + } } else { SwingUtilities.invokeLater(() -> pumpSwingThread());