@Override
  public void invokeDslErrorPopup(Throwable e, final Project project, @NotNull VirtualFile vfile) {
    if (!GroovyDslFileIndex.isActivated(vfile)) {
      return;
    }

    final String exceptionText = ExceptionUtil.getThrowableText(e);
    LOG.info(exceptionText);
    GroovyDslFileIndex.disableFile(vfile, DslActivationStatus.Status.ERROR, exceptionText);


    if (!ApplicationManager.getApplication().isInternal() && !ProjectRootManager.getInstance(project).getFileIndex().isInContent(vfile)) {
      return;
    }

    String errorMessage = e.getMessage();
    String content = new HtmlBuilder().append(
      HtmlChunk.p().addText(errorMessage == null ? e.toString() : errorMessage)
    ).append(
      HtmlChunk.p().child(
        HtmlChunk.link("", GroovyBundle.message("gdsl.investigate.link.label"))
      )
    ).toString();
    NOTIFICATION_GROUP.createNotification(GroovyBundle.message("gdsl.error.notification.title"), content, NotificationType.ERROR)
      .setListener(new NotificationListener() {
        @Override
        public void hyperlinkUpdate(@NotNull Notification notification, @NotNull HyperlinkEvent event) {
          InvestigateFix.analyzeStackTrace(project, exceptionText);
          notification.expire();
        }
      })
      .notify(project);
  }
@Override
  public void invokeDslErrorPopup(Throwable e, final Project project, @NotNull VirtualFile vfile)