You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2010/06/15 12:43:38 UTC
svn commit: r954802 - in /ant/core/trunk: WHATSNEW
src/main/org/apache/tools/ant/util/DOMElementWriter.java
src/tests/antunit/taskdefs/optional/junit/xmlformatter-test.xml
src/tests/junit/org/apache/tools/ant/util/DOMElementWriterTest.java
Author: bodewig
Date: Tue Jun 15 10:43:37 2010
New Revision: 954802
URL: http://svn.apache.org/viewvc?rev=954802&view=rev
Log:
unconditionally encode & as & in DOMElementWriter. PR 49404
Modified:
ant/core/trunk/WHATSNEW
ant/core/trunk/src/main/org/apache/tools/ant/util/DOMElementWriter.java
ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/xmlformatter-test.xml
ant/core/trunk/src/tests/junit/org/apache/tools/ant/util/DOMElementWriterTest.java
Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=954802&r1=954801&r2=954802&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Tue Jun 15 10:43:37 2010
@@ -16,6 +16,14 @@ Changes that could break older environme
* Removed ant-nodeps.jar; it is now merged into ant.jar.
+ * DOMElementWriter#encode used to employ special code before encoding
+ ampersands so that { remained { rather than being turned
+ into {. This is no longer the case, ampersands will now
+ be encoded unconditionally.
+ This affects <echoxml> task as well as the XML logger or JUnit
+ formatter where ampersands will now always get encoded.
+ Bugzilla Report 49404.
+
Fixed bugs:
-----------
Modified: ant/core/trunk/src/main/org/apache/tools/ant/util/DOMElementWriter.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/util/DOMElementWriter.java?rev=954802&r1=954801&r2=954802&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/util/DOMElementWriter.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/util/DOMElementWriter.java Tue Jun 15 10:43:37 2010
@@ -429,13 +429,7 @@ public class DOMElementWriter {
sb.append(""");
break;
case '&':
- int nextSemi = value.indexOf(";", i);
- if (nextSemi < 0
- || !isReference(value.substring(i, nextSemi + 1))) {
- sb.append("&");
- } else {
- sb.append('&');
- }
+ sb.append("&");
break;
default:
if (isLegalCharacter(c)) {
Modified: ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/xmlformatter-test.xml
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/xmlformatter-test.xml?rev=954802&r1=954801&r2=954802&view=diff
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/xmlformatter-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/taskdefs/optional/junit/xmlformatter-test.xml Tue Jun 15 10:43:37 2010
@@ -79,14 +79,12 @@ public class A extends TestCase {
</junit>
<xmlvalidate file="${output}/TEST-org.example.A.xml"
lenient="true"/>
- <!--
<au:assertResourceContains
resource="${output}/TEST-org.example.A.xml"
value="message="&amp;amp;&amp;"/>
<au:assertResourceContains
resource="${output}/TEST-org.example.A.xml"
- value="message=AssertionFailedError: &amp;&"/>
- -->
+ value="AssertionFailedError: &amp;amp;&"/>
</target>
</project>
Modified: ant/core/trunk/src/tests/junit/org/apache/tools/ant/util/DOMElementWriterTest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/util/DOMElementWriterTest.java?rev=954802&r1=954801&r2=954802&view=diff
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/ant/util/DOMElementWriterTest.java (original)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/util/DOMElementWriterTest.java Tue Jun 15 10:43:37 2010
@@ -53,17 +53,17 @@ public class DOMElementWriterTest extend
}
public void testEncode() {
- assertEquals("", w.encode(""));
- assertEquals(" ", w.encode(" "));
- assertEquals(" ", w.encode(" "));
+ assertEquals("&#20;", w.encode(""));
+ assertEquals("&#x20;", w.encode(" "));
+ assertEquals("&#xA0;", w.encode(" "));
assertEquals("&#A0;", w.encode("&#A0;"));
assertEquals("20;", w.encode("20;"));
assertEquals("&#20", w.encode(""));
- assertEquals(""", w.encode("""));
- assertEquals("'", w.encode("'"));
- assertEquals(">", w.encode(">"));
- assertEquals("<", w.encode("<"));
- assertEquals("&", w.encode("&"));
+ assertEquals("&quot;", w.encode("""));
+ assertEquals("&apos;", w.encode("'"));
+ assertEquals("&gt;", w.encode(">"));
+ assertEquals("&lt;", w.encode("<"));
+ assertEquals("&amp;", w.encode("&"));
assertEquals(""", w.encode("\""));
assertEquals("<", w.encode("<"));
assertEquals("&", w.encode("&"));