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

myskov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 6852e3eb93 HDDS-12861. Add AvoidStringBufferField PMD rule (#8312)
6852e3eb93 is described below

commit 6852e3eb93cfca8d0aa55f7d920f733c5d8b6af0
Author: Anastasia Kostryukova <[email protected]>
AuthorDate: Thu Apr 24 16:11:35 2025 +0300

    HDDS-12861. Add AvoidStringBufferField PMD rule (#8312)
---
 dev-support/pmd/pmd-ruleset.xml                           |  1 +
 .../ozone/container/stream/DirstreamClientHandler.java    | 14 ++++++--------
 .../ozone/container/stream/DirstreamServerHandler.java    |  3 +--
 .../java/org/apache/hadoop/ozone/audit/AuditLogger.java   |  1 +
 .../om/ratis_snapshot/TestOmRatisSnapshotProvider.java    | 15 ++++++++++-----
 .../hadoop/ozone/admin/nssummary/DiskUsageSubCommand.java |  3 +--
 .../ozone/admin/nssummary/FileSizeDistSubCommand.java     |  3 +--
 .../hadoop/ozone/admin/nssummary/NSSummaryCLIUtils.java   |  4 ++--
 .../ozone/admin/nssummary/QuotaUsageSubCommand.java       |  3 +--
 .../hadoop/ozone/admin/nssummary/SummarySubCommand.java   |  3 +--
 .../org/apache/hadoop/ozone/utils/FormattingCLIUtils.java |  1 +
 11 files changed, 26 insertions(+), 25 deletions(-)

diff --git a/dev-support/pmd/pmd-ruleset.xml b/dev-support/pmd/pmd-ruleset.xml
index 5e7f2db92a..1bdb2be45a 100644
--- a/dev-support/pmd/pmd-ruleset.xml
+++ b/dev-support/pmd/pmd-ruleset.xml
@@ -26,6 +26,7 @@
     PMD Ruleset for Apache Ozone
   </description>
 
+  <rule ref="category/java/bestpractices.xml/AvoidStringBufferField" />
   <rule ref="category/java/bestpractices.xml/ForLoopCanBeForeach"/>
   <rule ref="category/java/bestpractices.xml/MissingOverride"/>
   <rule ref="category/java/bestpractices.xml/UnusedPrivateMethod"/>
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/DirstreamClientHandler.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/DirstreamClientHandler.java
index d8f8b416ba..2ad37dde9b 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/DirstreamClientHandler.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/DirstreamClientHandler.java
@@ -46,7 +46,7 @@ public class DirstreamClientHandler extends 
ChannelInboundHandlerAdapter {
 
   private final StreamingDestination destination;
   private boolean headerMode = true;
-  private StringBuilder currentFileName = new StringBuilder();
+  private String currentFileName = "";
   private RandomAccessFile destFile;
 
   private FileChannel destFileChannel;
@@ -76,11 +76,10 @@ public void doRead(ChannelHandlerContext ctx, ByteBuf 
buffer)
       if (eolPosition > 0) {
         headerMode = false;
         final ByteBuf name = buffer.readBytes(eolPosition);
-        currentFileName.append(name
-            .toString(StandardCharsets.UTF_8));
+        currentFileName += name.toString(StandardCharsets.UTF_8);
         name.release();
         buffer.skipBytes(1);
-        String[] parts = currentFileName.toString().split(" ", 2);
+        String[] parts = currentFileName.split(" ", 2);
         remaining = Long.parseLong(parts[0]);
         Path destFilePath = destination.mapToDestination(parts[1]);
         final Path destfileParent = destFilePath.getParent();
@@ -94,8 +93,7 @@ public void doRead(ChannelHandlerContext ctx, ByteBuf buffer)
         destFileChannel = this.destFile.getChannel();
 
       } else {
-        currentFileName
-            .append(buffer.toString(StandardCharsets.UTF_8));
+        currentFileName += buffer.toString(StandardCharsets.UTF_8);
       }
     }
     if (!headerMode) {
@@ -105,7 +103,7 @@ public void doRead(ChannelHandlerContext ctx, ByteBuf 
buffer)
             buffer.readBytes(destFileChannel, readableBytes);
       } else {
         remaining -= buffer.readBytes(destFileChannel, (int) remaining);
-        currentFileName = new StringBuilder();
+        currentFileName = "";
         headerMode = true;
         destFile.close();
         if (readableBytes > 0) {
@@ -142,6 +140,6 @@ public void exceptionCaught(ChannelHandlerContext ctx, 
Throwable cause) {
   }
 
   public String getCurrentFileName() {
-    return currentFileName.toString();
+    return currentFileName;
   }
 }
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/DirstreamServerHandler.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/DirstreamServerHandler.java
index 9288e6dd4c..3f172f6f41 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/DirstreamServerHandler.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/DirstreamServerHandler.java
@@ -46,8 +46,6 @@ public class DirstreamServerHandler extends 
ChannelInboundHandlerAdapter {
 
   public static final String END_MARKER = "0 END";
 
-  private final StringBuilder id = new StringBuilder();
-
   private StreamingSource source;
 
   private boolean headerProcessed = false;
@@ -59,6 +57,7 @@ public DirstreamServerHandler(StreamingSource source) {
   @Override
   public void channelRead(ChannelHandlerContext ctx, Object msg)
       throws Exception {
+    StringBuilder id = new StringBuilder();
     if (!headerProcessed) {
       ByteBuf buffer = (ByteBuf) msg;
       int eolPosition = buffer.forEachByte(ByteProcessor.FIND_LF) - buffer
diff --git 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLogger.java
 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLogger.java
index 28ab88440b..53bed47203 100644
--- 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLogger.java
+++ 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLogger.java
@@ -146,6 +146,7 @@ private String getLowerCaseOp(String op) {
   /**
    * Utility class for building performance log strings.
    */
+  @SuppressWarnings(value = "PMD.AvoidStringBufferField")
   public static class PerformanceStringBuilder {
     private final StringBuilder builder = new StringBuilder(128).append('{');
     /**
diff --git 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis_snapshot/TestOmRatisSnapshotProvider.java
 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis_snapshot/TestOmRatisSnapshotProvider.java
index dac7264d9d..d2a8f92f29 100644
--- 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis_snapshot/TestOmRatisSnapshotProvider.java
+++ 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis_snapshot/TestOmRatisSnapshotProvider.java
@@ -60,7 +60,6 @@ public class TestOmRatisSnapshotProvider {
       "Content-Disposition: form-data; name=\""
           + OzoneConsts.OZONE_DB_CHECKPOINT_REQUEST_TO_EXCLUDE_SST + "[]\""
           + CR_NL + CR_NL;
-  private StringBuilder sb;
   private File targetFile;
 
   @BeforeEach
@@ -79,16 +78,13 @@ public void setup(@TempDir File snapshotDir,
     omRatisSnapshotProvider =
         new OmRatisSnapshotProvider(snapshotDir, peerNodesMap, httpPolicy,
             false, connectionFactory);
-
-    sb = new StringBuilder();
-    sb.append("--").append(MULTIPART_FORM_DATA_BOUNDARY).append(CR_NL);
-    sb.append(CONTENT_DISPOSITION);
   }
 
   @Test
   public void testDownloadSnapshot() throws IOException,
       AuthenticationException {
     URL omCheckpointUrl = mock(URL.class);
+    StringBuilder sb = getStringBuilder();
     when(leader.getOMDBCheckpointEndpointUrl(anyBoolean(), anyBoolean()))
         .thenReturn(omCheckpointUrl);
 
@@ -117,6 +113,7 @@ public void testWriteFormDataWithSstFile() throws 
IOException {
     String fileName = "file1.sst";
     sstFiles.add(fileName);
     ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+    StringBuilder sb = getStringBuilder();
     when(connection.getOutputStream()).thenReturn(outputStream);
 
 
@@ -132,6 +129,7 @@ public void testWriteFormDataWithSstFile() throws 
IOException {
   public void testWriteFormDataWithoutSstFile() throws IOException {
     HttpURLConnection connection = mock(HttpURLConnection.class);
     ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+    StringBuilder sb = getStringBuilder();
     when(connection.getOutputStream()).thenReturn(outputStream);
 
     OmRatisSnapshotProvider.writeFormData(connection, new ArrayList<>());
@@ -141,4 +139,11 @@ public void testWriteFormDataWithoutSstFile() throws 
IOException {
         new String(outputStream.toByteArray(), StandardCharsets.UTF_8));
   }
 
+  private static StringBuilder getStringBuilder() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("--").append(MULTIPART_FORM_DATA_BOUNDARY).append(CR_NL);
+    sb.append(CONTENT_DISPOSITION);
+    return sb;
+  }
+
 }
diff --git 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/DiskUsageSubCommand.java
 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/DiskUsageSubCommand.java
index e2b889ce93..119ecb603f 100644
--- 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/DiskUsageSubCommand.java
+++ 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/DiskUsageSubCommand.java
@@ -79,14 +79,13 @@ public class DiskUsageSubCommand implements Callable {
   private static final int DU_INDENT = 12;
   private static final int PATH_INDENT = 27;
 
-  private StringBuffer url = new StringBuffer();
-
   @Override
   public Void call() throws Exception {
     if (path == null || path.isEmpty()) {
       printEmptyPathRequest();
       return null;
     }
+    StringBuilder url = new StringBuilder();
     url.append(parent.getReconWebAddress()).append(ENDPOINT);
 
     String response = makeHttpCall(url, parseInputPath(path), listFiles,
diff --git 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/FileSizeDistSubCommand.java
 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/FileSizeDistSubCommand.java
index c06dcefd71..fb9d99a42d 100644
--- 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/FileSizeDistSubCommand.java
+++ 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/FileSizeDistSubCommand.java
@@ -52,14 +52,13 @@ public class FileSizeDistSubCommand implements Callable {
 
   private static final String ENDPOINT = "/api/v1/namespace/dist";
 
-  private StringBuffer url = new StringBuffer();
-
   @Override
   public Void call() throws Exception {
     if (path == null || path.isEmpty()) {
       printEmptyPathRequest();
       return null;
     }
+    StringBuilder url = new StringBuilder();
     url.append(parent.getReconWebAddress()).append(ENDPOINT);
 
     printNewLines(1);
diff --git 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/NSSummaryCLIUtils.java
 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/NSSummaryCLIUtils.java
index dc71cd4836..5c6d744a45 100644
--- 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/NSSummaryCLIUtils.java
+++ 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/NSSummaryCLIUtils.java
@@ -43,14 +43,14 @@ private NSSummaryCLIUtils() {
 
   private static final String OFS_PREFIX = "ofs://";
 
-  public static String makeHttpCall(StringBuffer url, String path,
+  public static String makeHttpCall(StringBuilder url, String path,
                                     boolean isSpnegoEnabled,
                                     ConfigurationSource conf)
       throws Exception {
     return makeHttpCall(url, path, false, false, isSpnegoEnabled, conf);
   }
 
-  public static String makeHttpCall(StringBuffer url, String path,
+  public static String makeHttpCall(StringBuilder url, String path,
                                     boolean listFile, boolean withReplica,
                                     boolean isSpnegoEnabled,
                                     ConfigurationSource conf)
diff --git 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/QuotaUsageSubCommand.java
 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/QuotaUsageSubCommand.java
index 748acd0a03..da223ba0ff 100644
--- 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/QuotaUsageSubCommand.java
+++ 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/QuotaUsageSubCommand.java
@@ -53,14 +53,13 @@ public class QuotaUsageSubCommand implements Callable {
 
   private static final String ENDPOINT = "/api/v1/namespace/quota";
 
-  private StringBuffer url = new StringBuffer();
-
   @Override
   public Void call() throws Exception {
     if (path == null || path.isEmpty()) {
       printEmptyPathRequest();
       return null;
     }
+    StringBuilder url = new StringBuilder();
     url.append(parent.getReconWebAddress()).append(ENDPOINT);
 
     printNewLines(1);
diff --git 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/SummarySubCommand.java
 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/SummarySubCommand.java
index 491337d7f8..0e85039724 100644
--- 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/SummarySubCommand.java
+++ 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/admin/nssummary/SummarySubCommand.java
@@ -52,14 +52,13 @@ public class SummarySubCommand implements Callable<Void> {
 
   private static final String ENDPOINT = "/api/v1/namespace/summary";
 
-  private StringBuffer url = new StringBuffer();
-
   @Override
   public Void call() throws Exception {
     if (path == null || path.isEmpty()) {
       printEmptyPathRequest();
       return null;
     }
+    StringBuilder url = new StringBuilder();
     url.append(parent.getReconWebAddress()).append(ENDPOINT);
 
     printNewLines(1);
diff --git 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/utils/FormattingCLIUtils.java
 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/utils/FormattingCLIUtils.java
index bcb55e7c65..143973ff17 100644
--- 
a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/utils/FormattingCLIUtils.java
+++ 
b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/utils/FormattingCLIUtils.java
@@ -39,6 +39,7 @@
  * | bigdata-ozone-online31          |  om31   |  LEADER  |
  * +---------------------------------+---------+----------+
  */
+@SuppressWarnings(value = "PMD.AvoidStringBufferField")
 public final class FormattingCLIUtils {
   /** Table title. */
   private String title;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to