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_();
}