From ad726d0abcdac6078e12de1b9f5b0efd10ff6135 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 4 Dec 2014 11:53:50 +0100 Subject: [PATCH] escape xml in types and description templates (IDEA-133830) --- .../codeInspection/ex/HTMLJavaHTMLComposerImpl.java | 10 +++++----- .../intellij/codeInspection/ex/DescriptorComposer.java | 8 +++++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInspection/ex/HTMLJavaHTMLComposerImpl.java b/java/java-impl/src/com/intellij/codeInspection/ex/HTMLJavaHTMLComposerImpl.java index 17e0fd376527..53a444eaaeb0 100644 --- a/java/java-impl/src/com/intellij/codeInspection/ex/HTMLJavaHTMLComposerImpl.java +++ b/java/java-impl/src/com/intellij/codeInspection/ex/HTMLJavaHTMLComposerImpl.java @@ -174,7 +174,7 @@ public class HTMLJavaHTMLComposerImpl extends HTMLJavaHTMLComposer { buf.append(InspectionsBundle.message("inspection.export.results.field")); buf.append(HTMLComposerImpl.NBSP).append(HTMLComposerImpl.CODE_OPENING); - buf.append(psiField.getType().getPresentableText()); + buf.append(XmlStringUtil.escapeString(psiField.getType().getPresentableText())); buf.append(HTMLComposerImpl.NBSP).append(HTMLComposerImpl.B_OPENING); buf.append(psiField.getName()); buf.append(HTMLComposerImpl.B_CLOSING).append(HTMLComposerImpl.CODE_CLOSING); @@ -201,7 +201,7 @@ public class HTMLJavaHTMLComposerImpl extends HTMLJavaHTMLComposer { buf.append(HTMLComposerImpl.NBSP).append(HTMLComposerImpl.CODE_OPENING); if (returnType != null) { - buf.append(returnType.getPresentableText()); + buf.append(XmlStringUtil.escapeString(returnType.getPresentableText())); buf.append(HTMLComposerImpl.NBSP); } @@ -281,7 +281,7 @@ public class HTMLJavaHTMLComposerImpl extends HTMLJavaHTMLComposer { if (refElement instanceof RefField) { RefField field = (RefField)refElement; PsiField psiField = field.getElement(); - buf.append(psiField.getType().getPresentableText()); + buf.append(XmlStringUtil.escapeString(psiField.getType().getPresentableText())); buf.append(HTMLComposerImpl.NBSP); } else if (refElement instanceof RefMethod) { @@ -290,7 +290,7 @@ public class HTMLJavaHTMLComposerImpl extends HTMLJavaHTMLComposer { PsiType returnType = psiMethod.getReturnType(); if (returnType != null) { - buf.append(returnType.getPresentableText()); + buf.append(XmlStringUtil.escapeString(returnType.getPresentableText())); buf.append(HTMLComposerImpl.NBSP); } } @@ -349,7 +349,7 @@ public class HTMLJavaHTMLComposerImpl extends HTMLJavaHTMLComposer { for (int i = 0; i < params.length; i++) { if (i != 0) buf.append(", "); PsiParameter param = params[i]; - buf.append(param.getType().getPresentableText()); + buf.append(XmlStringUtil.escapeString(param.getType().getPresentableText())); if (showNames) { buf.append(' '); buf.append(param.getName()); diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ex/DescriptorComposer.java b/platform/lang-impl/src/com/intellij/codeInspection/ex/DescriptorComposer.java index f7c8a4c99529..c2fef7068dea 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ex/DescriptorComposer.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ex/DescriptorComposer.java @@ -177,7 +177,13 @@ public class DescriptorComposer extends HTMLComposerImpl { anchor.append(""); } - String descriptionTemplate = XmlStringUtil.stripHtml(description.getDescriptionTemplate()); + String descriptionTemplate = description.getDescriptionTemplate(); + if (XmlStringUtil.isWrappedInHtml(descriptionTemplate)) { + descriptionTemplate = XmlStringUtil.stripHtml(descriptionTemplate); + } + else { + descriptionTemplate = XmlStringUtil.escapeString(descriptionTemplate); + } //noinspection HardCodedStringLiteral final String reference = "#ref"; final boolean containsReference = descriptionTemplate.contains(reference);