maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todor Todorov (JIRA)" <j...@codehaus.org>
Subject [jira] Created: (SUREFIRE-455) XML delimiter characters in attribute and text content are escaped twice.
Date Mon, 11 Feb 2008 14:36:28 GMT
XML delimiter characters in attribute and text content are escaped twice. 
--------------------------------------------------------------------------

                 Key: SUREFIRE-455
                 URL: http://jira.codehaus.org/browse/SUREFIRE-455
             Project: Maven Surefire
          Issue Type: Bug
          Components: xml generation
    Affects Versions: 2.4.1, 2.4
            Reporter: Todor Todorov
         Attachments: surefire-api.patch

XML delimiter characters (left angle bracket, ampersand, etc.) are escaped twice in _TEST-*.xml_
files in _surefire-reports_ directory. For example the left angle bracket is replaced with
&amp;lt; instead of &lt; and the right angle bracket with &amp;gt; instead of
&gt;

{code:xml}
  <testcase time="2.306" classname="MyTest" name="testItem">
    <failure message="expected:&amp;lt;10&amp;gt; but was:&amp;lt;7&amp;gt;"
type="junit.framework.AssertionFailedError">
junit.framework.AssertionFailedError: expected:&amp;lt;10&amp;gt; but was:&amp;lt;7&amp;gt;
        at junit.framework.Assert.fail(Assert.java:47)
        at junit.framework.Assert.failNotSame(Assert.java:278)
        at junit.framework.Assert.assertSame(Assert.java:242)
        at MyTest.testItem(MyTest.java:38)
    </failure>
  </testcase>
{code}

The problem is that both *org.apache.maven.surefire.report.XMLReporter* and *org.apache.maven.surefire.util.PrettyPrintXMLWriter*
are escaping the XML content. As a result the ampersand character is escaped once more time.
In addition *org.apache.maven.surefire.util.PrettyPrintXMLWriter#escapeXml* has implementation
error: three characters (ampersand, left angle bracket and right angle bracket) are replaced
with *&amp;amp;*

In the attached patch (for surefire-2.4.1) I removed *org.apache.maven.surefire.report.XMLReporter#escapeAttribute*
method and fixed *org.apache.maven.surefire.util.PrettyPrintXMLWriter#escapeXml* implementation.
Afterwards the XML report was generated as expected:

{code:xml}
  <testcase time="2.306" classname="MyTest" name="testItem">
    <failure message="expected:&lt;10&gt; but was:&lt;7&gt;" type="junit.framework.AssertionFailedError">
junit.framework.AssertionFailedError: expected:&lt;10&gt; but was:&lt;7&gt;
        at junit.framework.Assert.fail(Assert.java:47)
        at junit.framework.Assert.failNotSame(Assert.java:278)
        at junit.framework.Assert.assertSame(Assert.java:242)
        at MyTest.testItem(MyTest.java:38)
    </failure>
  </testcase>
{code}


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message