From 0aea883e63bf3c6ab0fb9a3ff8eba894aad6eb69 Mon Sep 17 00:00:00 2001 From: Peter Gromov Date: Mon, 21 Sep 2009 16:51:34 +0400 Subject: [PATCH] diagnostics --- .../com/intellij/util/xml/impl/DomAnchorImpl.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java b/xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java index a766b8e19c..e636dafee1 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java +++ b/xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java @@ -4,10 +4,13 @@ */ package com.intellij.util.xml.impl; +import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlFile; +import com.intellij.psi.xml.XmlTag; import com.intellij.util.xml.DomElement; import com.intellij.util.xml.DomManager; import com.intellij.util.xml.DomFileElement; +import com.intellij.util.xml.GenericAttributeValue; import com.intellij.util.xml.reflect.AbstractDomChildrenDescription; import com.intellij.openapi.diagnostic.Logger; import org.jetbrains.annotations.Nullable; @@ -42,7 +45,24 @@ public abstract class DomAnchorImpl { final List values = description.getValues(parent); final int index = values.indexOf(t); if (index < 0) { - LOG.assertTrue(false, "Index<0: description=" + description + "\nparent=" + parent + "\nt=" + t + "\nvalues=" + values); + final XmlTag parentTag = parent.getXmlTag(); + StringBuilder diag = new StringBuilder("Index<0: description=" + description + "\nparent=" + parent + "\nt=" + t + "\nvalues=" + values + "\n"); + if (parentTag != null) { + diag.append("Parent tag: ").append(parentTag.getName()).append("\n"); + if (t instanceof GenericAttributeValue) { + for (XmlAttribute attribute : parentTag.getAttributes()) { + diag.append("attr: ").append(attribute.getName()); + } + diag.append("\n"); + } else { + for (XmlTag tag : parentTag.getSubTags()) { + diag.append("subtag: ").append(tag.getName()); + } + diag.append("\n"); + } + } + diag.append("Child name: ").append(t.getXmlElementName()).append(";").append(t.getXmlElementNamespaceKey()); + LOG.assertTrue(false, diag); } return new IndexedAnchor(parentAnchor, description, index); } -- 2.11.4.GIT