From e5f048698711a262b6e64110085d8c0ca878c6ae Mon Sep 17 00:00:00 2001 From: Thomas Schouten Date: Wed, 27 Nov 2024 09:47:49 +0100 Subject: [PATCH] Check if file is still valid after retrieving from cache (it may have been deleted) --- CHANGELOG.md | 1 + .../hannahsten/texifyidea/util/files/ReferencedFileSetCache.kt | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a3da820f..8abfafd7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Added ### Fixed +* Fix exception #3771 when a file referenced from cache is deleted * Fix basic case of false positive of duplicate label inspection when user defined \if commands are used * Fix a parse error when using \else with a user defined \if-command diff --git a/src/nl/hannahsten/texifyidea/util/files/ReferencedFileSetCache.kt b/src/nl/hannahsten/texifyidea/util/files/ReferencedFileSetCache.kt index e579cb6bb..4c61fdd2d 100644 --- a/src/nl/hannahsten/texifyidea/util/files/ReferencedFileSetCache.kt +++ b/src/nl/hannahsten/texifyidea/util/files/ReferencedFileSetCache.kt @@ -122,7 +122,8 @@ class ReferencedFileSetCache { } } } - cache[file.virtualFile]?.mapNotNull { it.element }?.toSet() ?: setOf(file) + // Make sure to check if file is still valid after retrieving from cache (it may have been deleted) + cache[file.virtualFile]?.mapNotNull { it.element }?.filter { it.isValid }?.toSet() ?: setOf(file) } else { setOf(file)