@Override
  public void showErrors(final Map<HotfixData, List<VcsException>> exceptionGroups, @NotNull String tabDisplayName) {
    showErrorsImpl(exceptionGroups.isEmpty(), () -> {
      final List<VcsException> exceptionList = exceptionGroups.values().iterator().next();
      return exceptionList == null ? null : (exceptionList.isEmpty() ? null : exceptionList.get(0));
    }, tabDisplayName, vcsErrorViewPanel -> {
      for (Map.Entry<HotfixData, List<VcsException>> entry : exceptionGroups.entrySet()) {
        if (entry.getKey() == null) {
          addDirectMessages(vcsErrorViewPanel, entry.getValue());
        }
        else {
          final List<VcsException> exceptionList = entry.getValue();
          final List<SimpleErrorData> list = new ArrayList<>(exceptionList.size());
          for (VcsException exception : exceptionList) {
            final String[] messages = getExceptionMessages(exception);
            list.add(new SimpleErrorData(
              ErrorTreeElementKind.convertMessageFromCompilerErrorType(getErrorCategory(exception)), messages, exception.getVirtualFile()));
          }

          vcsErrorViewPanel.addHotfixGroup(entry.getKey(), list);
        }
      }
    });
  }
@Override
  public void showErrors(final Map<HotfixData, List<VcsException>> exceptionGroups, @NotNull String tabDisplayName)