diff --git a/xml/dom-tests/testData/stubs/include.xml b/xml/dom-tests/testData/stubs/include.xml
new file mode 100644
index 000000000000..f60b9f3841ea
--- /dev/null
+++ b/xml/dom-tests/testData/stubs/include.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/xml/dom-tests/testData/stubs/inclusion.xml b/xml/dom-tests/testData/stubs/inclusion.xml
new file mode 100644
index 000000000000..199ed828168d
--- /dev/null
+++ b/xml/dom-tests/testData/stubs/inclusion.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/xml/dom-tests/tests/com/intellij/util/xml/stubs/DomStubBuilderTest.java b/xml/dom-tests/tests/com/intellij/util/xml/stubs/DomStubBuilderTest.java
index 5f84b060089d..946e2d882a11 100644
--- a/xml/dom-tests/tests/com/intellij/util/xml/stubs/DomStubBuilderTest.java
+++ b/xml/dom-tests/tests/com/intellij/util/xml/stubs/DomStubBuilderTest.java
@@ -81,6 +81,16 @@ public class DomStubBuilderTest extends DomStubTest {
assertNull(stubTree); // no stubs for invalid XML
}
+ public void testInclusion() throws Exception {
+ myFixture.copyFileToProject("include.xml");
+ doBuilderTest("inclusion.xml", "File:foo\n" +
+ " Element:foo\n" +
+ " Element:bar\n" +
+ " Attribute:string:xxx\n" +
+ " Attribute:int:666\n" +
+ " Element:bar\n");
+ }
+
public static class TestExtender extends DomExtender {
@Override
diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/InclusionProvider.java b/xml/xml-psi-impl/src/com/intellij/xml/util/InclusionProvider.java
index f0970b7031b9..7c05a0aaf750 100644
--- a/xml/xml-psi-impl/src/com/intellij/xml/util/InclusionProvider.java
+++ b/xml/xml-psi-impl/src/com/intellij/xml/util/InclusionProvider.java
@@ -42,7 +42,8 @@ class InclusionProvider implements CachedValueProvider {
@NotNull
public static PsiElement[] getIncludedTags(XmlTag xincludeTag) {
- return CachedValuesManager.getManager(xincludeTag.getProject()).getCachedValue(xincludeTag, new InclusionProvider(xincludeTag));
+ if (XmlUtil.isStubBuilding()) return PsiElement.EMPTY_ARRAY;
+ return CachedValuesManager.getCachedValue(xincludeTag, new InclusionProvider(xincludeTag));
}
public Result compute() {