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;