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

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


The following commit(s) were added to refs/heads/master by this push:
     new b07483402 [STORM-3762] Set a default character set in 
InputStreamReader to solve potential garbled problems (#3393)
b07483402 is described below

commit b07483402a75f3b31a57b46f0cc7b02aadb77b97
Author: dbgp2021 <[email protected]>
AuthorDate: Tue Aug 15 17:39:05 2023 +0800

    [STORM-3762] Set a default character set in InputStreamReader to solve 
potential garbled problems (#3393)
---
 .../src/jvm/org/apache/storm/metric/cgroup/CGroupCpu.java |  3 ++-
 .../src/jvm/org/apache/storm/utils/ShellUtils.java        | 11 +++++++----
 .../src/main/java/org/apache/storm/utils/ServerUtils.java | 15 ++++++++-------
 3 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/storm-client/src/jvm/org/apache/storm/metric/cgroup/CGroupCpu.java 
b/storm-client/src/jvm/org/apache/storm/metric/cgroup/CGroupCpu.java
index 9789a6e32..aef62eebe 100644
--- a/storm-client/src/jvm/org/apache/storm/metric/cgroup/CGroupCpu.java
+++ b/storm-client/src/jvm/org/apache/storm/metric/cgroup/CGroupCpu.java
@@ -15,6 +15,7 @@ package org.apache.storm.metric.cgroup;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.storm.container.cgroup.SubSystemType;
@@ -40,7 +41,7 @@ public class CGroupCpu extends CGroupMetricsBase<Map<String, 
Long>> {
         if (userHz < 0) {
             ProcessBuilder pb = new ProcessBuilder("getconf", "CLK_TCK");
             Process p = pb.start();
-            BufferedReader in = new BufferedReader(new 
InputStreamReader(p.getInputStream()));
+            BufferedReader in = new BufferedReader(new 
InputStreamReader(p.getInputStream(), StandardCharsets.UTF_8));
             String line = in.readLine().trim();
             userHz = Integer.valueOf(line);
         }
diff --git a/storm-client/src/jvm/org/apache/storm/utils/ShellUtils.java 
b/storm-client/src/jvm/org/apache/storm/utils/ShellUtils.java
index e3c219e90..c1308d4b4 100644
--- a/storm-client/src/jvm/org/apache/storm/utils/ShellUtils.java
+++ b/storm-client/src/jvm/org/apache/storm/utils/ShellUtils.java
@@ -18,6 +18,7 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import java.util.Timer;
 import java.util.TimerTask;
@@ -214,11 +215,13 @@ public abstract class ShellUtils {
             timeOutTimer.schedule(timeoutTimerTask, timeOutInterval);
         }
         final BufferedReader errReader =
-            new BufferedReader(new InputStreamReader(process
-                                                         .getErrorStream()));
+            new BufferedReader(
+                new InputStreamReader(
+                    process.getErrorStream(), StandardCharsets.UTF_8));
         BufferedReader inReader =
-            new BufferedReader(new InputStreamReader(process
-                                                         .getInputStream()));
+            new BufferedReader(
+                new InputStreamReader(
+                    process.getInputStream(), StandardCharsets.UTF_8));
         final StringBuffer errMsg = new StringBuffer();
 
         // read error and input streams as this would free up the buffers
diff --git a/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java 
b/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java
index 091043a17..cc0cc240b 100644
--- a/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java
+++ b/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java
@@ -33,6 +33,7 @@ import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.RandomAccessFile;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.FileSystems;
 import java.nio.file.Files;
 import java.nio.file.NoSuchFileException;
@@ -803,7 +804,7 @@ public class ServerUtils {
         LOG.debug("CMD: tasklist /fo list /fi \"pid eq {}\" /v", pid);
         ProcessBuilder pb = new ProcessBuilder("tasklist", "/fo", "list", 
"/fi", "pid eq " + pid, "/v");
         pb.redirectError(ProcessBuilder.Redirect.INHERIT);
-        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream()))) {
+        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream(), StandardCharsets.UTF_8))) {
             int lineNo = 0;
             String line;
             while ((line = in.readLine()) != null) {
@@ -837,7 +838,7 @@ public class ServerUtils {
         LOG.debug("CMD: ps -o user -p {}", pid);
         ProcessBuilder pb = new ProcessBuilder("ps", "-o", "user", "-p", 
String.valueOf(pid));
         pb.redirectError(ProcessBuilder.Redirect.INHERIT);
-        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream()))) {
+        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream(), StandardCharsets.UTF_8))) {
             int lineNo = 1;
             String line = in.readLine();
             LOG.debug("CMD-LINE#{}: {}", lineNo, line);
@@ -923,7 +924,7 @@ public class ServerUtils {
         ProcessBuilder pb = new ProcessBuilder(cmdArgs);
         pb.redirectError(ProcessBuilder.Redirect.INHERIT);
         List<String> unexpectedUsers = new ArrayList<>();
-        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream()))) {
+        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream(), StandardCharsets.UTF_8))) {
             int lineNo = 0;
             String line;
             while ((line = in.readLine()) != null) {
@@ -988,7 +989,7 @@ public class ServerUtils {
         ProcessBuilder pb = new ProcessBuilder("ps", "-o", "user", "-p", 
pidParams);
         pb.redirectError(ProcessBuilder.Redirect.INHERIT);
         List<String> unexpectedUsers = new ArrayList<>();
-        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream()))) {
+        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream(), StandardCharsets.UTF_8))) {
             int lineNo = 1;
             String line = in.readLine();
             LOG.debug("CMD-LINE#{}: {}", lineNo, line);
@@ -1032,7 +1033,7 @@ public class ServerUtils {
         ProcessBuilder pb = new ProcessBuilder("ps", "-o", "uid", "-p", 
pidParams);
         pb.redirectError(ProcessBuilder.Redirect.INHERIT);
         List<String> unexpectedUsers = new ArrayList<>();
-        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream()))) {
+        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream(), StandardCharsets.UTF_8))) {
             int lineNo = 1;
             String line = in.readLine();
             LOG.debug("CMD-LINE#{}: {}", lineNo, line);
@@ -1086,7 +1087,7 @@ public class ServerUtils {
         LOG.debug("CMD: {}", String.join(" ", cmdArgs));
         ProcessBuilder pb = new ProcessBuilder(cmdArgs);
         pb.redirectError(ProcessBuilder.Redirect.INHERIT);
-        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream()))) {
+        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream(), StandardCharsets.UTF_8))) {
             String line = in.readLine();
             LOG.debug("CMD-LINE#1: {}", line);
             try {
@@ -1120,7 +1121,7 @@ public class ServerUtils {
         LOG.debug("CMD: ls -dn {}", fpath);
         ProcessBuilder pb = new ProcessBuilder("ls", "-dn", fpath);
         pb.redirectError(ProcessBuilder.Redirect.INHERIT);
-        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream()))) {
+        try (BufferedReader in = new BufferedReader(new 
InputStreamReader(pb.start().getInputStream(), StandardCharsets.UTF_8))) {
             String line = in.readLine();
             LOG.debug("CMD-OUTLINE: {}", line);
             line = line.trim();

Reply via email to