void (@NotNull SuspendContextImpl context) { showStatusText(JavaDebuggerBundle.message("status.run.to.cursor")); cancelRunToCursorBreakpoint(); if (myRunToCursorBreakpoint == null) { return; } if (myIgnoreBreakpoints) { DebuggerManagerEx.getInstanceEx(myProject).getBreakpointManager().disableBreakpoints(DebugProcessImpl.this); } applyThreadFilter(getContextThread()); prepareAndSetSteppingBreakpoint(context, myRunToCursorBreakpoint, null, false); final DebugProcessImpl debugProcess = context.getDebugProcess(); if (debugProcess.getRequestsManager().getWarning(myRunToCursorBreakpoint) == null) { super.contextAction(context); } else { DebuggerInvocationUtil.swingInvokeLater(myProject, () -> { Messages.showErrorDialog( JavaDebuggerBundle.message("error.running.to.cursor.no.executable.code", myRunToCursorBreakpoint.getSourcePosition().getFile().getName(), myRunToCursorBreakpoint.getLineIndex() + 1), UIUtil.removeMnemonic(ActionsBundle.actionText(XDebuggerActions.RUN_TO_CURSOR))); DebuggerSession session = debugProcess.getSession(); session.getContextManager().setState(DebuggerContextUtil.createDebuggerContext(session, context), DebuggerSession.State.PAUSED, DebuggerSession.Event.CONTEXT, null); }); } }