From 8c5d67db14b25ee4ef0ffaf94fa37a39ec7d2e1c Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 30 Dec 2011 10:46:21 +0100 Subject: [PATCH] avoid refreshing project view from wrong thread --- .../impl/FileAssociationsManagerImpl.java | 13 ++++++++++--- .../xpath/xslt/associations/impl/TempManager.java | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/associations/impl/FileAssociationsManagerImpl.java b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/associations/impl/FileAssociationsManagerImpl.java index 4313e02d6629..1cb823f49258 100644 --- a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/associations/impl/FileAssociationsManagerImpl.java +++ b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/associations/impl/FileAssociationsManagerImpl.java @@ -44,12 +44,17 @@ class FileAssociationsManagerImpl extends FileAssociationsManager implements Pro private final VirtualFilePointerManager myFilePointerManager; private final Map myAssociations; private long myModCount; + private boolean myTempCopy; public FileAssociationsManagerImpl(Project project, VirtualFilePointerManager filePointerManager) { myProject = project; myFilePointerManager = filePointerManager; myAssociations = new LinkedHashMap(); } + + public void markAsTempCopy() { + myTempCopy = true; + } @SuppressWarnings({"unchecked"}) public void readExternal(Element element) throws InvalidDataException { @@ -114,9 +119,11 @@ class FileAssociationsManagerImpl extends FileAssociationsManager implements Pro private void touch() { myModCount++; - final ProjectView view = ProjectView.getInstance(myProject); - if (view != null) { - view.refresh(); + if (!myTempCopy) { + final ProjectView view = ProjectView.getInstance(myProject); + if (view != null) { + view.refresh(); + } } } diff --git a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/associations/impl/TempManager.java b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/associations/impl/TempManager.java index 25369dcb2222..ff18c92771a7 100644 --- a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/associations/impl/TempManager.java +++ b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/associations/impl/TempManager.java @@ -31,6 +31,7 @@ class TempManager extends TransactionalManager { TempManager(FileAssociationsManagerImpl impl, Project project, VirtualFilePointerManager filePointerManager) { myTmp = new FileAssociationsManagerImpl(project, filePointerManager); + myTmp.markAsTempCopy(); myTmp.copyFrom(impl); myImpl = impl;