void (@NotNull final XLineBreakpoint<?> breakpoint, @Nullable final Icon icon, @Nullable final String errorMessage) { CustomizedBreakpointPresentation presentation; synchronized (myRegisteredBreakpoints) { presentation = myRegisteredBreakpoints.get(breakpoint); if (presentation == null || (Comparing.equal(presentation.getIcon(), icon) && Comparing.strEqual(presentation.getErrorMessage(), errorMessage))) { return; } presentation.setErrorMessage(errorMessage); presentation.setIcon(icon); long timestamp = presentation.getTimestamp(); if (timestamp != 0 && XDebuggerUtilImpl.getVerifiedIcon(breakpoint).equals(icon)) { long delay = System.currentTimeMillis() - timestamp; presentation.setTimestamp(0); BreakpointsUsageCollector.reportBreakpointVerified(breakpoint, delay); } } XBreakpointManagerImpl debuggerManager = myDebuggerManager.getBreakpointManager(); debuggerManager.getLineBreakpointManager().queueBreakpointUpdate(breakpoint, () -> debuggerManager.fireBreakpointPresentationUpdated(breakpoint, this)); }