extracted doWhenXSessionPausedThenResume

This commit is contained in:
Egor.Ushakov
2017-02-22 19:41:27 +03:00
parent fe61000c67
commit 299bd6fcdf
@@ -59,10 +59,7 @@ import com.intellij.psi.PsiFile;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.util.ThrowableRunnable;
import com.intellij.util.ui.UIUtil;
import com.intellij.xdebugger.XDebugProcess;
import com.intellij.xdebugger.XDebugProcessStarter;
import com.intellij.xdebugger.XDebugSession;
import com.intellij.xdebugger.XDebuggerManager;
import com.intellij.xdebugger.*;
import com.sun.jdi.Location;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
@@ -612,4 +609,26 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
renderer.setEnabled(state);
}
}
protected void doWhenXSessionPausedThenResume(ThrowableRunnable runnable) {
XDebugSession session = getDebuggerSession().getXDebugSession();
assertNotNull(session);
session.addSessionListener(new XDebugSessionListener() {
@Override
public void sessionPaused() {
ApplicationManager.getApplication().executeOnPooledThread(() -> {
try {
runnable.run();
}
catch (Throwable e) {
addException(e);
}
finally {
//noinspection SSBasedInspection
SwingUtilities.invokeLater(session::resume);
}
});
}
});
}
}