diff --git a/dev-support/pmd/pmd-ruleset.xml b/dev-support/pmd/pmd-ruleset.xml
index 5e7f2db92aaf..1bdb2be45a51 100644
--- a/dev-support/pmd/pmd-ruleset.xml
+++ b/dev-support/pmd/pmd-ruleset.xml
@@ -26,6 +26,7 @@
PMD Ruleset for Apache Ozone
+
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 d8f8b416bad2..2ad37dde9b53 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 9288e6dd4ca6..3f172f6f41da 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 28ab88440bdd..53bed47203f6 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 dac7264d9d9e..d2a8f92f29f1 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 e2b889ce935d..119ecb603fef 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 c06dcefd7173..fb9d99a42d7b 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 dc71cd4836fb..5c6d744a4522 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 748acd0a036f..da223ba0ffce 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 491337d7f862..0e850397248f 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 {
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 bcb55e7c6581..143973ff17b5 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;