Details
-
Improvement
-
Status: Patch Available
-
Minor
-
Resolution: Unresolved
-
3.3.0
-
None
-
None
-
Patch
Description
ContainerShellWebSocket.java
// 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"); session.getRemote().sendString(formatted); }
This code strikes me as a bit odd. First of it, it is using available which is known as a being unreliable and inaccurate (i.e., for sockets) . Second, it will only read a max of 4000 characters and that's it. Anything else is truncated.
Change this code to read the entire data stream.