void (@NotNull XLineBreakpoint<XBreakpointProperties> breakpoint, final boolean temporary) { final XSourcePosition sourcePosition = breakpoint.getSourcePosition(); if (sourcePosition == null || !sourcePosition.getFile().exists() || !sourcePosition.getFile().isValid()) { // ??? return; } final VirtualFile file = sourcePosition.getFile(); final Project project = myXsltDebugProcess.getSession().getProject(); final String fileURL = getFileURL(file); final int lineNumber = getActualLineNumber(breakpoint, project); try { final BreakpointManager manager = myXsltDebugProcess.getBreakpointManager(); if (temporary) { final Breakpoint bp = manager.getBreakpoint(fileURL, lineNumber); if (bp != null) { bp.setEnabled(false); } } else { manager.removeBreakpoint(fileURL, lineNumber); } } catch (DebuggerStoppedException ignore) { } catch (VMPausedException e) { myXsltDebugProcess.getSession().reportMessage( XsltDebuggerBundle.message("notification.content.target.vm.not.responding.breakpoint.can.not.be.removed"), MessageType.ERROR); } }