[MPMD-251] Invalid report XML is generated with includeXmlInSite=true
Use the renderer's flush method
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
index fe39380..2a8a897 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
@@ -233,9 +233,16 @@
return getBundle( locale ).getString( "report.pmd.description" );
}
- public void setRulesets( String[] rules )
+ /**
+ * Configures the PMD rulesets to be used directly.
+ * Note: Usually the rulesets are configured via the property.
+ *
+ * @param rulesets the PMD rulesets to be used.
+ * @see #rulesets
+ */
+ public void setRulesets( String[] rulesets )
{
- rulesets = rules;
+ this.rulesets = Arrays.copyOf( rulesets, rulesets.length );
}
/**
@@ -596,7 +603,7 @@
r.start();
r.renderFileReport( report );
r.end();
- writer.flush();
+ r.flush();
if ( includeXmlInSite )
{
@@ -650,7 +657,6 @@
{
try
{
- @SuppressWarnings( "unchecked" )
List<String> classpath =
includeTests ? project.getTestClasspathElements() : project.getCompileClasspathElements();
getLog().debug( "Using aux classpath: " + classpath );
diff --git a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
index e108f96..72afd01 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
@@ -370,7 +370,7 @@
assertTrue( pmdXmlTarget.contains( "</pmd>" ) );
// check that pmd.xml file has the closing element
- String pmdXml = readFile( new File( getBasedir(), "target/test/unit/default-configuration/target/site/pmd.xml" ) );
+ String pmdXml = readFile( generatedXmlFile );
assertTrue( pmdXml.contains( "</pmd>" ) );
}