@Override
  public void finished() {
    super.finished();

    for (HotSwapProgressListener listener : myListeners) {
      listener.onFinish();
    }

    List<String> errors = getMessages(MessageCategory.ERROR);
    List<String> warnings = getMessages(MessageCategory.WARNING);

    if (!errors.isEmpty()) {
      notifyUser(JavaDebuggerBundle.message("status.hot.swap.completed.with.errors"), buildMessage(errors), true, NotificationType.ERROR);
    }
    else if (!warnings.isEmpty()) {
      notifyUser(JavaDebuggerBundle.message("status.hot.swap.completed.with.warnings"), buildMessage(warnings), true,
                 NotificationType.WARNING);
    }
    else if (!myMessages.isEmpty()) {
      List<String> messages = new ArrayList<>();
      for (IntIterator iterator = myMessages.keySet().iterator(); iterator.hasNext(); ) {
        messages.addAll(getMessages(iterator.nextInt()));
      }
      notifyUser("", buildMessage(messages), false, NotificationType.INFORMATION);
    }
  }
@Override
  public void finished()