From 7129f0031cef4a11d59b0fa7469e72658af46fb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=87=E7=A8=8B?= <1498425439@qq.com> Date: Tue, 12 Dec 2023 18:39:19 +0800 Subject: [PATCH] fix load ext *.tsv doc exception when close project --- .../github/linwancen/plugin/show/ext/conf/ConfCache.java | 6 ++++-- .../plugin/show/ext/conf/ConfFileChangeListener.java | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/linwancen/plugin/show/ext/conf/ConfCache.java b/src/main/java/io/github/linwancen/plugin/show/ext/conf/ConfCache.java index 7edea19..72db54d 100644 --- a/src/main/java/io/github/linwancen/plugin/show/ext/conf/ConfCache.java +++ b/src/main/java/io/github/linwancen/plugin/show/ext/conf/ConfCache.java @@ -128,7 +128,9 @@ public class ConfCache { if (files.isEmpty()) { return; } - ProjectView.getInstance(project).refresh(); + if (!project.isDisposed()) { + ProjectView.getInstance(project).refresh(); + } LOG.info("Ext doc conf load all complete {} files\n{}", files.size(), sb); }); } @@ -136,7 +138,7 @@ public class ConfCache { static void loadFile(@NotNull VirtualFile file, @Nullable Project project) { ApplicationManager.getApplication().invokeLater(() -> { ConfCache.load(file); - if (project != null) { + if (project != null && !project.isDisposed()) { ProjectView.getInstance(project).refresh(); } }); diff --git a/src/main/java/io/github/linwancen/plugin/show/ext/conf/ConfFileChangeListener.java b/src/main/java/io/github/linwancen/plugin/show/ext/conf/ConfFileChangeListener.java index 694b672..966fe06 100644 --- a/src/main/java/io/github/linwancen/plugin/show/ext/conf/ConfFileChangeListener.java +++ b/src/main/java/io/github/linwancen/plugin/show/ext/conf/ConfFileChangeListener.java @@ -2,6 +2,7 @@ package io.github.linwancen.plugin.show.ext.conf; import com.intellij.openapi.fileEditor.FileEditorManagerEvent; import com.intellij.openapi.fileEditor.FileEditorManagerListener; +import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -17,13 +18,17 @@ public class ConfFileChangeListener implements FileEditorManagerListener { @Override public void selectionChanged(@NotNull FileEditorManagerEvent event) { + @NotNull Project project = event.getManager().getProject(); + if (project.isDisposed()) { + return; + } @Nullable VirtualFile file = event.getOldFile(); if (file == null) { return; } if (file.exists()) { try { - ConfCache.loadFile(file, event.getManager().getProject()); + ConfCache.loadFile(file, project); } catch (Throwable e) { LOG.info("ConfFileChangeListener catch Throwable but log to record.", e); }