diff options
Diffstat (limited to 'xml/dom-impl/src/com/intellij/util/xml/stubs/StubParentStrategy.java')
-rw-r--r-- | xml/dom-impl/src/com/intellij/util/xml/stubs/StubParentStrategy.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/xml/dom-impl/src/com/intellij/util/xml/stubs/StubParentStrategy.java b/xml/dom-impl/src/com/intellij/util/xml/stubs/StubParentStrategy.java index b827c6221746..951c6f576249 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/stubs/StubParentStrategy.java +++ b/xml/dom-impl/src/com/intellij/util/xml/stubs/StubParentStrategy.java @@ -20,6 +20,7 @@ import com.intellij.psi.xml.XmlElement; import com.intellij.psi.xml.XmlFile; import com.intellij.psi.xml.XmlTag; import com.intellij.util.xml.impl.*; +import com.intellij.xml.util.XmlUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -32,6 +33,11 @@ import java.util.List; public class StubParentStrategy implements DomParentStrategy { private final static Logger LOG = Logger.getInstance(StubParentStrategy.class); + protected final DomStub myStub; + + public StubParentStrategy(@NotNull DomStub stub) { + myStub = stub; + } public static StubParentStrategy createAttributeStrategy(@Nullable AttributeStub stub, @NotNull final DomStub parent) { if (stub == null) { @@ -59,12 +65,6 @@ public class StubParentStrategy implements DomParentStrategy { } } - protected final DomStub myStub; - - public StubParentStrategy(@NotNull DomStub stub) { - myStub = stub; - } - @Override public DomInvocationHandler getParentHandler() { DomStub parentStub = myStub.getParentStub(); @@ -82,7 +82,14 @@ public class StubParentStrategy implements DomParentStrategy { // for custom elements, namespace information is lost // todo: propagate ns info through DomChildDescriptions - XmlTag[] tags = parentTag.getSubTags(); + XmlTag[] tags; + try { + XmlUtil.BUILDING_DOM_STUBS.set(true); + tags = parentTag.getSubTags(); + } + finally { + XmlUtil.BUILDING_DOM_STUBS.set(false); + } int i = 0; String nameToFind = myStub.getName(); |