From 7d3a93e6e7cb1d0416ba80453eb63e573f802073 Mon Sep 17 00:00:00 2001 From: Alexey Pegov Date: Wed, 13 Apr 2011 19:24:50 +0400 Subject: [PATCH] EA-26724 - assert: MessageBusImpl.checkNotDisposed --- .../openapi/components/impl/stores/FileBasedStorage.java | 2 +- .../openapi/components/impl/stores/XmlElementStorage.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/FileBasedStorage.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/FileBasedStorage.java index 7ba1de8a9057..1936b4855700 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/FileBasedStorage.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/FileBasedStorage.java @@ -96,7 +96,7 @@ public class FileBasedStorage extends XmlElementStorage { final Listener listener = messageBus.syncPublisher(STORAGE_TOPIC); virtualFileTracker.addTracker(fileUrl, new VirtualFileAdapter() { public void contentsChanged(final VirtualFileEvent event) { - listener.storageFileChanged(event, FileBasedStorage.this); + if (!isDisposed()) listener.storageFileChanged(event, FileBasedStorage.this); } }, false, this); } diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/XmlElementStorage.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/XmlElementStorage.java index 0419e7856058..b8d7b72b8ecf 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/XmlElementStorage.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/XmlElementStorage.java @@ -75,6 +75,8 @@ public abstract class XmlElementStorage implements StateStorage, Disposable { myLocalVersionProvider.changeVersion(componentName, System.currentTimeMillis()); } }; + + private boolean myDisposed; protected XmlElementStorage(@Nullable final TrackingPathMacroSubstitutor pathMacroSubstitutor, @@ -113,6 +115,10 @@ public abstract class XmlElementStorage implements StateStorage, Disposable { }; } + protected boolean isDisposed() { + return myDisposed; + } + @Nullable protected abstract Document loadDocument() throws StateStorageException; @@ -536,6 +542,7 @@ public abstract class XmlElementStorage implements StateStorage, Disposable { } public void dispose() { + myDisposed = true; } protected static class StorageData {