diff --git a/xml/dom-impl/src/com/intellij/util/xml/impl/DomManagerImpl.java b/xml/dom-impl/src/com/intellij/util/xml/impl/DomManagerImpl.java index beaf4feca129..146e5a932949 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/impl/DomManagerImpl.java +++ b/xml/dom-impl/src/com/intellij/util/xml/impl/DomManagerImpl.java @@ -24,6 +24,7 @@ import com.intellij.pom.event.PomModelListener; import com.intellij.pom.xml.XmlAspect; import com.intellij.pom.xml.XmlChangeSet; import com.intellij.psi.*; +import com.intellij.psi.impl.PsiManagerEx; import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlElement; import com.intellij.psi.xml.XmlFile; @@ -137,7 +138,7 @@ public final class DomManagerImpl extends DomManager { } if (file.isValid() && StdFileTypes.XML.equals(file.getFileType())) { - final PsiFile psiFile = psiManager.findFile(file); + final PsiFile psiFile = getCachedPsiFile(file); if (psiFile instanceof XmlFile) { Collections.addAll(myDeletionEvents, recomputeFileElement((XmlFile)psiFile)); } @@ -190,7 +191,11 @@ public final class DomManagerImpl extends DomManager { private void processFileChange(final VirtualFile file) { if (StdFileTypes.XML != file.getFileType()) return; - processFileChange(PsiManager.getInstance(myProject).findFile(file)); + processFileChange(getCachedPsiFile(file)); + } + + private PsiFile getCachedPsiFile(VirtualFile file) { + return ((PsiManagerEx)PsiManager.getInstance(myProject)).getFileManager().getCachedPsiFile(file); } private void processFileChange(final PsiFile file) { diff --git a/xml/dom-impl/src/com/intellij/util/xml/stubs/builder/DomStubBuilder.java b/xml/dom-impl/src/com/intellij/util/xml/stubs/builder/DomStubBuilder.java index af0287372142..d637974baf1a 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/stubs/builder/DomStubBuilder.java +++ b/xml/dom-impl/src/com/intellij/util/xml/stubs/builder/DomStubBuilder.java @@ -19,6 +19,7 @@ import com.intellij.ide.highlighter.XmlFileType; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; +import com.intellij.openapi.project.ProjectCoreUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; @@ -39,7 +40,7 @@ public class DomStubBuilder implements BinaryFileStubBuilder { @Override public boolean acceptsFile(VirtualFile file) { - return file.getFileType() == XmlFileType.INSTANCE; + return file.getFileType() == XmlFileType.INSTANCE && !ProjectCoreUtil.isProjectOrWorkspaceFile(file); } @Override @@ -71,7 +72,7 @@ public class DomStubBuilder implements BinaryFileStubBuilder { @Override public int getStubVersion() { - int version = 8; + int version = 9; DomFileDescription[] descriptions = Extensions.getExtensions(DomFileDescription.EP_NAME); for (DomFileDescription description : descriptions) { version += description.getStubVersion();