This is an automated email from the ASF dual-hosted git repository.

elharo pushed a commit to branch flush
in repository https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git

commit 55843cbf5eb449c9e339ac1806eb740c1eb6e530
Author: Elliotte Rusty Harold <elh...@ibiblio.org>
AuthorDate: Thu Jun 5 08:03:56 2025 -0400

    Buffer the writers
---
 .../maven/plugins/pmd/exec/CpdReportConsumer.java     |  5 +++--
 .../apache/maven/plugins/pmd/exec/PmdExecutor.java    | 19 ++++++++++---------
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git 
a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdReportConsumer.java 
b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdReportConsumer.java
index 86b6439..c6f16a2 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdReportConsumer.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdReportConsumer.java
@@ -23,6 +23,8 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
 import java.util.function.Consumer;
 import java.util.function.Predicate;
 
@@ -92,9 +94,8 @@ class CpdReportConsumer implements Consumer<CPDReport> {
         }
 
         File targetFile = new File(targetDir, "cpd." + extension);
-        try (Writer writer = new OutputStreamWriter(new 
FileOutputStream(targetFile), request.getOutputEncoding())) {
+        try (Writer writer = Files.newBufferedWriter(targetFile.toPath(), 
Charset.forName(request.getOutputEncoding())) {
             renderer.render(cpd.filterMatches(filterMatches()), writer);
-            writer.flush();
         }
         return targetFile;
     }
diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java 
b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java
index d2a0002..0ad6679 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java
@@ -28,6 +28,7 @@ import java.io.ObjectOutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
 import java.nio.charset.Charset;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
@@ -321,8 +322,8 @@ public class PmdExecutor extends Executor {
         }
     }
 
-    private File writeReport(Report report, Renderer r) throws IOException {
-        if (r == null) {
+    private File writeReport(Report report, Renderer renderer) throws 
IOException {
+        if (renderer == null) {
             return null;
         }
 
@@ -331,16 +332,16 @@ public class PmdExecutor extends Executor {
             throw new IOException("Couldn't create report target directory: " 
+ targetDir);
         }
 
-        String extension = r.defaultFileExtension();
+        String extension = renderer.defaultFileExtension();
         File targetFile = new File(targetDir, "pmd." + extension);
-        try (Writer writer = new OutputStreamWriter(new 
FileOutputStream(targetFile), request.getOutputEncoding())) {
-            r.setWriter(writer);
-            r.start();
+        try (Writer writer = Files.newBufferedWriter(targetFile.toPath(), 
Charset.forName(request.getOutputEncoding()))) {
+            renderer.setWriter(writer);
+            renderer.start();
             if (report != null) {
-                r.renderFileReport(report);
+                renderer.renderFileReport(report);
             }
-            r.end();
-            r.flush();
+            renderer.end();
+            renderer.flush();
         }
 
         return targetFile;

Reply via email to