void (@NotNull DebuggerCommandImpl managerCommand) { assertIsManagerThread(); myCurrentCommands.get().push(managerCommand); try { if (myEvents.isClosed()) { managerCommand.notifyCancelled(); } else { managerCommand.run(); } } catch (VMDisconnectedException e) { LOG.debug(e); } catch (RuntimeException e) { throw e; } catch (InterruptedException e) { throw new RuntimeException(e); } catch (Exception e) { LOG.error(e); } finally { myCurrentCommands.get().pop(); } }