From 4dd9da76b4600a1217e7c2ed7a8e6e3e91ac3e4d Mon Sep 17 00:00:00 2001
From: Stefan Bodewig Also ensure that we are not including an ]]>
* marker by replacing that sequence with
- * &x5d;&x5d;>
.]]>
.
See XML 1.0 2.2 http://www.w3.org/TR/1998/REC-xml-19980210#charsets. and + * href="http://www.w3.org/TR/1998/REC-xml-19980210#charsets">http://www.w3.org/TR/1998/REC-xml-19980210#charsets and * 2.7 http://www.w3.org/TR/1998/REC-xml-19980210#sec-cdata-sect
+ * href="http://www.w3.org/TR/1998/REC-xml-19980210#sec-cdata-sect">http://www.w3.org/TR/1998/REC-xml-19980210#sec-cdata-sect. */ public String encodedata(final String value) { @@ -265,7 +265,7 @@ public class DOMElementWriter { int cdEnd = result.indexOf("]]>"); while (cdEnd != -1) { sb.setLength(cdEnd); - sb.append("&x5d;&x5d;>") + sb.append("]]>") .append(result.substring(cdEnd+3)); result = sb.toString(); cdEnd = result.indexOf("]]>"); diff --git a/src/testcases/org/apache/tools/ant/util/DOMElementWriterTest.java b/src/testcases/org/apache/tools/ant/util/DOMElementWriterTest.java index 54e98cdb3..fdc1f00f7 100644 --- a/src/testcases/org/apache/tools/ant/util/DOMElementWriterTest.java +++ b/src/testcases/org/apache/tools/ant/util/DOMElementWriterTest.java @@ -123,11 +123,11 @@ public class DOMElementWriterTest extends TestCase { public void testCDATAEndEncoding() { assertEquals("]>", w.encodedata("]>")); assertEquals("]]", w.encodedata("]]")); - assertEquals("&x5d;&x5d;>", w.encodedata("]]>")); - assertEquals("&x5d;&x5d;>A", w.encodedata("]]>A")); - assertEquals("A&x5d;&x5d;>", w.encodedata("A]]>")); - assertEquals("A&x5d;&x5d;>A", w.encodedata("A]]>A")); - assertEquals("A&x5d;&x5d;>B&x5d;&x5d;>C", + assertEquals("]]>", w.encodedata("]]>")); + assertEquals("]]>A", w.encodedata("]]>A")); + assertEquals("A]]>", w.encodedata("A]]>")); + assertEquals("A]]>A", w.encodedata("A]]>A")); + assertEquals("A]]>B]]>C", w.encodedata("A]]>B]]>C")); } }