@Override
 public boolean runProcessWithProgressSynchronously(
     @NotNull final Task task, @Nullable final JComponent parentComponent) {
   final long start = System.currentTimeMillis();
   final boolean result = super.runProcessWithProgressSynchronously(task, parentComponent);
   if (result) {
     final long end = System.currentTimeMillis();
     final Task.NotificationInfo notificationInfo = task.notifyFinished();
     long time = end - start;
     if (notificationInfo != null
         && time > 5000) { // show notification only if process took more than 5 secs
       final JFrame frame = WindowManager.getInstance().getFrame(task.getProject());
       if (frame != null && !frame.hasFocus()) {
         systemNotify(notificationInfo);
       }
     }
   }
   return result;
 }
 protected void showErrors(final CvsHandler handler, final CvsTabbedWindow tabbedWindow) {
   final List<VcsException> errors = handler.getErrorsExceptAborted();
   if (!myShowErrors || myIsQuietOperation) return;
   if (tabbedWindow == null) {
     if (errors.isEmpty()) return;
     final List<String> messages = new ArrayList<String>();
     for (VcsException error : errors) {
       if (!StringUtil.isEmptyOrSpaces(error.getMessage())) {
         messages.add(error.getMessage());
       }
     }
     final String errorMessage = StringUtil.join(messages, "\n");
     Messages.showErrorDialog(errorMessage, "CVS Error");
     return;
   }
   if (errors.isEmpty()) {
     tabbedWindow.hideErrors();
   } else {
     ErrorTreeView errorTreeView = tabbedWindow.getErrorsTreeView();
     for (final VcsException exception : errors) {
       final String groupName =
           DateFormatUtil.formatDateTime(System.currentTimeMillis()) + ' ' + handler.getTitle();
       if (exception.isWarning()) {
         errorTreeView.addMessage(
             MessageCategory.WARNING,
             exception.getMessages(),
             groupName,
             DummyNavigatable.INSTANCE,
             null,
             null,
             exception);
       } else {
         errorTreeView.addMessage(
             MessageCategory.ERROR,
             exception.getMessages(),
             groupName,
             DummyNavigatable.INSTANCE,
             null,
             null,
             exception);
       }
     }
     tabbedWindow.ensureVisible(myProject);
   }
 }