diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerShellWebSocket.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerShellWebSocket.java index 4ca4db5..6f54078 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerShellWebSocket.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerShellWebSocket.java @@ -20,10 +20,11 @@ import java.io.IOException; import java.net.URI; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; +import org.apache.commons.io.IOUtils; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.yarn.api.records.ContainerId; @@ -68,30 +69,24 @@ public static void init(Context nm) { @OnWebSocketMessage public void onText(Session session, String message) throws IOException { - try { - byte[] buffer = new byte[4000]; if (session.isOpen()) { if (!message.equals("1{}")) { // Send keystroke to process input - byte[] payload; - payload = message.getBytes(Charset.forName("UTF-8")); + byte[] payload = message.getBytes(StandardCharsets.UTF_8); if (payload != null) { pair.out.write(payload); pair.out.flush(); } } // Render process output - int no = pair.in.available(); - pair.in.read(buffer, 0, Math.min(no, buffer.length)); - String formatted = new String(buffer, Charset.forName("UTF-8")) - .replaceAll("\n", "\r\n"); + String formatted = IOUtils.toString(pair.in, StandardCharsets.UTF_8); + formatted = formatted.replaceAll("\n", "\r\n"); session.getRemote().sendString(formatted); } } catch (IOException e) { onClose(session, 1001, "Shutdown"); } - } @OnWebSocketConnect