public void addBreakpoint(@NotNull IBreakpoint breakpoint) {
   synchronized (myBreakpoints) {
     if (breakpoint instanceof ILocationBreakpoint) {
       addLocationBreakpoint((ILocationBreakpoint) breakpoint);
     }
     breakpoint.setCreationTime(System.currentTimeMillis());
     myBreakpoints.add(breakpoint);
     breakpoint.addToRunningSessions();
   }
   fireBreakpointAdded(breakpoint);
 }
 public Element getState() {
   Element rootElement = new Element(BREAKPOINTS_LIST_ELEMENT);
   synchronized (myBreakpoints) {
     for (IBreakpoint breakpoint : myBreakpoints) {
       try {
         Element element = myBreakpointsIO.writeBreakpoint(breakpoint);
         if (element != null) {
           rootElement.addContent(element);
         }
       } catch (Throwable t) {
         LOG.error("Error while saving breakpoint " + breakpoint.getPresentation(), t);
       }
     }
   }
   for (Element el : myUnreadBreakpoints) {
     rootElement.addContent((Element) el.clone());
   }
   return rootElement;
 }