Author: dfabulich
Date: Fri Nov 23 08:51:23 2007
New Revision: 597701
URL: http://svn.apache.org/viewvc?rev=597701&view=rev
Log:
[SUREFIRE-57] Escape XML control characters before adding them to XML output
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire224WellFormedXmlFailuresTest.java
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/pom.xml
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/src/test/java/TestSurefire3.java
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java?rev=597701&r1=597700&r2=597701&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
Fri Nov 23 08:51:23 2007
@@ -19,12 +19,6 @@
* under the License.
*/
-import org.apache.maven.surefire.util.PrettyPrintXMLWriter;
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.util.xml.Xpp3DomWriter;
-
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
@@ -40,6 +34,11 @@
import java.util.Properties;
import java.util.StringTokenizer;
+import org.apache.maven.surefire.util.PrettyPrintXMLWriter;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.codehaus.plexus.util.xml.Xpp3DomWriter;
+
/**
* XML format reporter.
@@ -273,9 +272,25 @@
private static String escapeAttribute( String attribute )
{
// Shouldn't Xpp3Dom do this itself?
- String s = StringUtils.replace( attribute, "<", "<" );
- s = StringUtils.replace( s, ">", ">" );
- return s;
+ StringBuffer sb = new StringBuffer ( attribute.length() * 2 );
+ for (int i = 0; i < attribute.length(); i++ ) {
+ char c = attribute.charAt( i );
+ if ( c < 32 ) {
+ if ( c == '\n' || c == '\r' || c == '\t') {
+ sb.append( c );
+ } else {
+ sb.append( "&#" ).append( (int) c).append( ';' );
+ }
+ } else if ( c == '<') {
+ sb.append( "<" );
+ } else if ( c == '>') {
+ sb.append( ">" );
+ }
+ else {
+ sb.append( c );
+ }
+ }
+ return sb.toString();
}
Modified:
maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire224WellFormedXmlFailuresTest.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire224WellFormedXmlFailuresTest.java?rev=597701&r1=597700&r2=597701&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire224WellFormedXmlFailuresTest.java
(original)
+++
maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire224WellFormedXmlFailuresTest.java
Fri Nov 23 08:51:23 2007
@@ -26,7 +26,7 @@
// verifier.verifyErrorFreeLog();
verifier.resetStreams();
- HelperAssertions.assertTestSuiteResults( 3, 0, 3, 0, testDir );
+ HelperAssertions.assertTestSuiteResults( 4, 0, 4, 0, testDir );
}
}
Modified:
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/pom.xml
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/pom.xml?rev=597701&r1=597700&r2=597701&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/pom.xml
(original)
+++
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/pom.xml
Fri Nov 23 08:51:23 2007
@@ -43,7 +43,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.1</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
Modified:
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/src/test/java/TestSurefire3.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/src/test/java/TestSurefire3.java?rev=597701&r1=597700&r2=597701&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/src/test/java/TestSurefire3.java
(original)
+++
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-224-wellFormedXmlFailures/src/test/java/TestSurefire3.java
Fri Nov 23 08:51:23 2007
@@ -33,4 +33,9 @@
fail( ">" );
}
+ public void testU0000()
+ {
+ fail( "\u0000" );
+ }
+
}