Index: surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java =================================================================== --- surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java (Revision 447987) +++ surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java (Arbeitskopie) @@ -16,8 +16,11 @@ * limitations under the License. */ +import java.util.Iterator; + import junit.framework.AssertionFailedError; import junit.framework.TestCase; + import org.codehaus.plexus.util.xml.Xpp3Dom; public class XMLReporterTest @@ -65,4 +68,31 @@ assertEquals( message, child.getAttribute( "type" ) ); } + /* + * Test method for MSUREFIREREP-26 + */ + public void testResetResults() + { + assertNoEntriesInResults(); + + reporter.testError( reportEntry, "", "" ); + assertOneEntryInResult(); + + reporter.reset(); + assertNoEntriesInResults(); + } + + private void assertOneEntryInResult() + { + Iterator iter = reporter.getResults(); + assertTrue( iter.hasNext() ); + iter.next(); + assertFalse( iter.hasNext() ); + } + + private void assertNoEntriesInResults() + { + Iterator iter = reporter.getResults(); + assertFalse( iter.hasNext() ); + } } Index: surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java =================================================================== --- surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java (Revision 447972) +++ surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java (Arbeitskopie) @@ -51,12 +51,29 @@ private File reportsDirectory; - private List results = Collections.synchronizedList( new ArrayList() ); + private List results; + /* + * list with results must be cleared, otherwise they accumulate here + * MSUREFIREREP-26 + * @see org.apache.maven.surefire.report.AbstractReporter#reset() + */ + public void reset() + { + super.reset(); + clearResults(); + } + + private void clearResults() + { + results = Collections.synchronizedList( new ArrayList() ); + } + public XMLReporter( File reportsDirectory, Boolean trimStackTrace ) { super( trimStackTrace ); + clearResults(); this.reportsDirectory = reportsDirectory; }