You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2013/06/24 17:48:52 UTC
git commit: [SUREFIRE-1006] Fixed cdata section
Updated Branches:
refs/heads/master cb908dd79 -> 54c46be0a
[SUREFIRE-1006] Fixed cdata section
Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/54c46be0
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/54c46be0
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/54c46be0
Branch: refs/heads/master
Commit: 54c46be0af7ce161f92f156df44569129ea9417c
Parents: cb908dd
Author: Kristian Rosenvold <kr...@apache.org>
Authored: Mon Jun 24 17:47:11 2013 +0200
Committer: Kristian Rosenvold <kr...@apache.org>
Committed: Mon Jun 24 17:47:11 2013 +0200
----------------------------------------------------------------------
.../surefire/report/StatelessXmlReporter.java | 47 ++++++++++----------
.../report/StatelessXMLReporterTest.java | 5 ++-
2 files changed, 27 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/54c46be0/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
index 51308e9..a7e61b9 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
@@ -290,7 +290,9 @@ public class StatelessXmlReporter
xmlWriter.writeText( "" ); // Cheat sax to emit element
outputStreamWriter.flush();
stdOut.close();
+ eos.getUnderlying().write( "<![CDATA[".getBytes() ); // emit cdata
stdOut.writeTo( eos );
+ eos.getUnderlying().write( "]]>".getBytes() );
eos.flush();
}
catch ( IOException e )
@@ -361,17 +363,36 @@ public class StatelessXmlReporter
private static class EncodingOutputStream
extends FilterOutputStream
{
+ private int c1;
+
+ private int c2;
+
+ private static final byte[] cdataEscapeString = "]]><![CDATA[>".getBytes();
public EncodingOutputStream( OutputStream out )
{
super( out );
}
+ public OutputStream getUnderlying()
+ {
+ return out;
+ }
+
+ private boolean isCdataEndBlock( int c )
+ {
+ return c1 == ']' && c2 == ']' && c == '>';
+ }
+
@Override
public void write( int b )
throws IOException
{
- if ( isIllegalEscape( b ) )
+ if ( isCdataEndBlock( b ) )
+ {
+ out.write( cdataEscapeString );
+ }
+ else if ( isIllegalEscape( b ) )
{
// uh-oh! This character is illegal in XML 1.0!
// http://www.w3.org/TR/1998/REC-xml-19980210#charsets
@@ -382,32 +403,12 @@ public class StatelessXmlReporter
out.write( b );
out.write( ';' ); // & Will be encoded to amp inside xml encodingSHO
}
- else if ( '<' == b )
- {
- out.write( '&' );
- out.write( 'l' );
- out.write( 't' );
- out.write( ';' ); // & Will be encoded to amp inside xml encodingSHO
- }
- else if ( '>' == b )
- {
- out.write( '&' );
- out.write( 'g' );
- out.write( 't' );
- out.write( ';' ); // & Will be encoded to amp inside xml encodingSHO
- }
- else if ( '&' == b )
- {
- out.write( '&' );
- out.write( 'a' );
- out.write( 'm' );
- out.write( 'p' );
- out.write( ';' ); // & Will be encoded to amp inside xml encodingSHO
- }
else
{
out.write( b ); //To change body of overridden methods use File | Settings | File Templates.
}
+ c1 = c2;
+ c2 = b;
}
}
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/54c46be0/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java
index 2bf3a75..9c55898 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java
@@ -89,7 +89,8 @@ public class StatelessXMLReporterTest
stats.testSucceeded( testSetReportEntry );
StackTraceWriter stackTraceWriter = new DeserializedStacktraceWriter( "A fud msg", "trimmed", "fail at foo" );
DeferredFileOutputStream s = new DeferredFileOutputStream( 1000000, "fds", "fdx", new File( "" ) );
- s.write( "std-o\u00DCt<null>!".getBytes("UTF-8") );
+ String expected = "st]]>d-o\u00DCt<null>!";
+ s.write( expected.getBytes( "UTF-8" ) );
DeferredFileOutputStream s1 = new DeferredFileOutputStream( 1000000, "fds", "fdx", new File( "" ) );
byte[] bytes = "std-\u0115rr?&-&£".getBytes("UTF-8");
s1.write( bytes );
@@ -125,7 +126,7 @@ public class StatelessXMLReporterTest
assertNotNull( errorNode );
assertEquals( "A fud msg", errorNode.getAttribute( "message" ) );
assertEquals( "fail at foo", errorNode.getAttribute( "type" ) );
- assertEquals( "std-o\u00DCt<null>!", tcb.getChild( "system-out" ).getValue() );
+ assertEquals( expected, tcb.getChild( "system-out" ).getValue() );
assertEquals( "std-\u0115rr?&-&£", tcb.getChild( "system-err" ).getValue() );
expectedReportFile.delete();