diff --git a/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java b/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java index ad600c2ec778..3abdcbbdbb35 100644 --- a/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java +++ b/java/java-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java @@ -1463,7 +1463,10 @@ public class JavaDocInfoGenerator { } if (value != null) { - buffer.append(value); + String valueText = StringUtil.escapeXml(value.toString()); + if (value instanceof String) valueText = '"' + valueText + '"'; + if (valueField.equals(myElement)) buffer.append(valueText); // don't generate link to itself + else generateLink(buffer, valueField, valueText, true); } else { buffer.append(element.getText()); diff --git a/java/java-tests/testData/codeInsight/javadocIG/escapingStringValue.html b/java/java-tests/testData/codeInsight/javadocIG/escapingStringValue.html new file mode 100644 index 000000000000..5ece92695d12 --- /dev/null +++ b/java/java-tests/testData/codeInsight/javadocIG/escapingStringValue.html @@ -0,0 +1 @@ + A
public static void JAVADOC_ME()
The value of B is "a<b". \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/escapingStringValue.java b/java/java-tests/testData/codeInsight/javadocIG/escapingStringValue.java new file mode 100644 index 000000000000..aa8861cd57f8 --- /dev/null +++ b/java/java-tests/testData/codeInsight/javadocIG/escapingStringValue.java @@ -0,0 +1,6 @@ +class A { + public static String B = "a A
public static void JAVADOC_ME()
The value of A is 23. \ No newline at end of file + A
public static void JAVADOC_ME()
The value of A is 23. \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/valueInMethodNoHash.html b/java/java-tests/testData/codeInsight/javadocIG/valueInMethodNoHash.html index 8342feaa01c7..4528aefd3d37 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/valueInMethodNoHash.html +++ b/java/java-tests/testData/codeInsight/javadocIG/valueInMethodNoHash.html @@ -1 +1 @@ - A
public static void JAVADOC_ME()
The value of A is 23. \ No newline at end of file + A
public static void JAVADOC_ME()
The value of A is 23. \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java index 07eb77bbd6e3..c95ba0d75615 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java @@ -65,6 +65,10 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase { doTestMethod(); } + public void testEscapingStringValue() throws Exception { + doTestMethod(); + } + public void testIdeadev2326() throws Exception { doTestMethod(); }