@Nullable
  @Override
  public Icon getIcon(@NotNull PsiElement element, int flags) {
    if (element.isValid()) {
      for (IconProvider provider : EXTENSION_POINT_NAME.getIterable()) {
        ProgressManager.checkCanceled();
        try {
          Icon icon = provider == null ? null : provider.getIcon(element, flags);
          if (icon != null) {
            LOG.debug("icon found in ", provider);
            return icon;
          }
        }
        catch (IndexNotReadyException exception) {
          throw new ProcessCanceledException(exception);
        }
        catch (ProcessCanceledException exception) {
          throw exception;
        }
        catch (Exception exception) {
          LOG.warn("unexpected error in " + provider, exception);
        }
      }
      return element.getIcon(flags);
    }
    return null;
  }
@Nullable
  @Override
  public Icon getIcon(@NotNull PsiElement element, int flags)