From f7d7feed16b5a41560cdeaf7ee35aba74666deb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=87=E7=A8=8B?= <1498425439@qq.com> Date: Sat, 13 Jan 2024 21:21:20 +0800 Subject: [PATCH] fix(LineEndCache): some time null and some time project disposed --- .../linwancen/plugin/show/cache/LineEndCacheUtils.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/linwancen/plugin/show/cache/LineEndCacheUtils.java b/src/main/java/io/github/linwancen/plugin/show/cache/LineEndCacheUtils.java index c7a091b..f2c5117 100644 --- a/src/main/java/io/github/linwancen/plugin/show/cache/LineEndCacheUtils.java +++ b/src/main/java/io/github/linwancen/plugin/show/cache/LineEndCacheUtils.java @@ -1,5 +1,6 @@ package io.github.linwancen.plugin.show.cache; +import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.editor.LineExtensionInfo; import com.intellij.openapi.project.DumbService; @@ -97,8 +98,15 @@ public class LineEndCacheUtils { if (!(lineCache.needUpdate() || list == null)) { return; } - ApplicationManager.getApplication().runReadAction(() -> { + Application application = ApplicationManager.getApplication(); + if (application == null) { + return; + } + application.runReadAction(() -> { try { + if (project.isDisposed()) { + return; + } @Nullable LineExtensionInfo lineExt = LineEnd.lineExt(info); @Nullable LineInfo info2 = LineInfo.of(info, lineNumber); if (info2 == null || !info2.text.equals(info.text)) {