mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cleanup [psi]: avoid NULL file instantion on log access
Allows avoiding the following exception: java.lang.ExceptionInInitializerError at com.intellij.psi.impl.file.impl.MultiverseFileViewProviderCacheKt.<clinit>(MultiverseFileViewProviderCache.kt:147) at com.intellij.psi.impl.file.impl.MultiverseFileViewProviderCache.clear(MultiverseFileViewProviderCache.kt:34) at com.intellij.psi.impl.file.impl.FileManagerImpl.lambda$clearViewProviders$4(FileManagerImpl.java:229) at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:589) at com.intellij.psi.impl.file.impl.FileManagerImpl.clearViewProviders(FileManagerImpl.java:225) at com.intellij.psi.impl.file.impl.FileManagerImpl.dispose(FileManagerImpl.java:216) ... Caused by: com.intellij.util.IncorrectOperationException: Sorry but parent: Application ... has already been disposed ... at com.intellij.openapi.util.ObjectTree.register(ObjectTree.java:43) at com.intellij.openapi.util.Disposer.register(Disposer.java:168) at com.intellij.openapi.extensions.ExtensionPointUtil.createDisposable(ExtensionPointUtil.java:79) at com.intellij.openapi.extensions.ExtensionPointUtil.createExtensionDisposable(ExtensionPointUtil.java:50) at com.intellij.openapi.vfs.DeprecatedVirtualFileSystem.startEventPropagation(DeprecatedVirtualFileSystem.java:27) at com.intellij.testFramework.LightVirtualFileBase$MyVirtualFileSystem.<init>(LightVirtualFileBase.java:79) at com.intellij.testFramework.LightVirtualFileBase$MyVirtualFileSystem.<init>(LightVirtualFileBase.java:75) at com.intellij.testFramework.LightVirtualFileBase.<clinit>(LightVirtualFileBase.java:101) ... GitOrigin-RevId: 8713e0f99880504e003cf2b61f37e11df4d170bb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7b8d4b5d4a
commit
64cce9546b
+2
-2
@@ -100,7 +100,7 @@ internal class MultiverseFileViewProviderCache : FileViewProviderCache {
|
||||
|
||||
// cache.cache is in fact ConcurrentWeakValueHashMap.
|
||||
// calling cache.cache.remove(unrelated-object) calls ConcurrentWeakValueHashMap#processQueue under the hood
|
||||
cache.cache.remove(NULL)
|
||||
cache.cache.remove(NullFile)
|
||||
}
|
||||
|
||||
override fun trySetContext(viewProvider: FileViewProvider, context: CodeInsightContext): CodeInsightContext? {
|
||||
@@ -144,7 +144,7 @@ object MultiverseFileViewProviderCacheLog {
|
||||
}
|
||||
}
|
||||
|
||||
private val NULL: VirtualFile = LightVirtualFile()
|
||||
private object NullFile : LightVirtualFile()
|
||||
|
||||
private typealias FullCacheMap = ConcurrentMap<VirtualFile, FileProviderMap>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user