Author: ltheussl Date: Tue May 15 08:17:11 2012 New Revision: 1338590 URL: http://svn.apache.org/viewvc?rev=1338590&view=rev Log: [SUREFIRE-659] Maven PDF plugin: showSuccess=false creates empty table causing error. Avoid writing tables without rows.
Modified: maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java Modified: maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java?rev=1338590&r1=1338589&r2=1338590&view=diff ============================================================================== --- maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java (original) +++ maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java Tue May 15 08:17:11 2012 @@ -47,6 +47,8 @@ public class SurefireReportGenerator private final String xrefLocation; + private static final int LEFT = Sink.JUSTIFY_LEFT; + public SurefireReportGenerator( List<File> reportsDirectories, Locale locale, boolean showSuccess, String xrefLocation ) { @@ -127,6 +129,8 @@ public class SurefireReportGenerator sink.table(); + sink.tableRows( new int[]{LEFT, LEFT, LEFT, LEFT, LEFT, LEFT}, true ); + sink.tableRow(); sinkHeader( sink, bundle.getString( "report.surefire.label.tests" ) ); @@ -159,6 +163,8 @@ public class SurefireReportGenerator sink.tableRow_(); + sink.tableRows_(); + sink.table_(); sink.lineBreak(); @@ -189,6 +195,8 @@ public class SurefireReportGenerator sink.table(); + sink.tableRows( new int[]{LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT}, true ); + sink.tableRow(); sinkHeader( sink, bundle.getString( "report.surefire.label.package" ) ); @@ -236,6 +244,8 @@ public class SurefireReportGenerator sink.tableRow_(); } + sink.tableRows_(); + sink.table_(); sink.lineBreak(); @@ -261,8 +271,28 @@ public class SurefireReportGenerator sinkAnchor( sink, packageName ); + boolean showTable = false; + + while ( suiteIterator.hasNext() ) + { + ReportTestSuite suite = (ReportTestSuite) suiteIterator.next(); + + if ( showSuccess || suite.getNumberOfErrors() != 0 || suite.getNumberOfFailures() != 0 ) + { + showTable = true; + + break; + } + } + + suiteIterator = testSuiteList.iterator(); + + if ( showTable ) + { sink.table(); + sink.tableRows( new int[]{LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT}, true ); + sink.tableRow(); sinkHeader( sink, "" ); @@ -338,7 +368,10 @@ public class SurefireReportGenerator } } + sink.tableRows_(); + sink.table_(); + } sink.section2_(); } @@ -376,8 +409,28 @@ public class SurefireReportGenerator sinkAnchor( sink, suite.getPackageName() + suite.getName() ); + boolean showTable = false; + + while ( caseIterator.hasNext() ) + { + ReportTestCase testCase = (ReportTestCase) caseIterator.next(); + + if ( testCase.getFailure() != null || showSuccess ) + { + showTable = true; + + break; + } + } + + caseIterator = testCases.listIterator(); + + if ( showTable ) + { sink.table(); + sink.tableRows( new int[]{LEFT, LEFT, LEFT}, true ); + while ( caseIterator.hasNext() ) { ReportTestCase testCase = (ReportTestCase) caseIterator.next(); @@ -492,7 +545,10 @@ public class SurefireReportGenerator } } + sink.tableRows_(); + sink.table_(); + } sink.section2_(); } @@ -528,6 +584,8 @@ public class SurefireReportGenerator sink.table(); + sink.tableRows( new int[]{LEFT, LEFT}, true ); + while ( failIter.hasNext() ) { ReportTestCase tCase = (ReportTestCase) failIter.next(); @@ -618,6 +676,8 @@ public class SurefireReportGenerator } } + sink.tableRows_(); + sink.table_(); }