summaryrefslogtreecommitdiff
path: root/plugins/devkit/src/actions/ShowSerializedXmlAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/devkit/src/actions/ShowSerializedXmlAction.java')
-rw-r--r--plugins/devkit/src/actions/ShowSerializedXmlAction.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/plugins/devkit/src/actions/ShowSerializedXmlAction.java b/plugins/devkit/src/actions/ShowSerializedXmlAction.java
index 888042424295..e718eb74989d 100644
--- a/plugins/devkit/src/actions/ShowSerializedXmlAction.java
+++ b/plugins/devkit/src/actions/ShowSerializedXmlAction.java
@@ -41,6 +41,7 @@ import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.containers.FList;
import com.intellij.util.lang.UrlClassLoader;
import com.intellij.util.xmlb.Accessor;
+import com.intellij.util.xmlb.XmlSerializationException;
import com.intellij.util.xmlb.XmlSerializer;
import com.intellij.util.xmlb.XmlSerializerUtil;
import org.jdom.Element;
@@ -121,7 +122,16 @@ public class ShowSerializedXmlAction extends DumbAwareAction {
return;
}
- final Element element = XmlSerializer.serialize(o);
+ final Element element;
+ try {
+ element = XmlSerializer.serialize(o);
+ }
+ catch (XmlSerializationException e) {
+ LOG.info(e);
+ Throwable cause = e.getCause();
+ Messages.showErrorDialog(project, e.getMessage() + (cause != null ? ": " + cause.getMessage() : ""), CommonBundle.getErrorTitle());
+ return;
+ }
final String text = JDOMUtil.writeElement(element, "\n");
Messages.showIdeaMessageDialog(project, text, "Serialized XML for '" + className + "'",
new String[]{CommonBundle.getOkButtonText()}, 0, Messages.getInformationIcon(), null);