diff --git a/core/src/main/java/hudson/TcpSlaveAgentListener.java b/core/src/main/java/hudson/TcpSlaveAgentListener.java index 046adbfb102c7a340d7b0ee0ec12dffa252fb872..2c5f4f916c62591b4ddbb6f34da8833e8029324b 100644 --- a/core/src/main/java/hudson/TcpSlaveAgentListener.java +++ b/core/src/main/java/hudson/TcpSlaveAgentListener.java @@ -26,8 +26,10 @@ package hudson; import hudson.slaves.OfflineCause; import jenkins.AgentProtocol; +import java.io.BufferedWriter; import java.io.DataInputStream; import java.io.IOException; +import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.BindException; import java.net.ServerSocket; @@ -139,7 +141,9 @@ public final class TcpSlaveAgentListener extends Thread { LOGGER.info("Accepted connection #"+id+" from "+s.getRemoteSocketAddress()); DataInputStream in = new DataInputStream(s.getInputStream()); - PrintWriter out = new PrintWriter(s.getOutputStream(),true); // DEPRECATED: newer protocol shouldn't use PrintWriter but should use DataOutputStream + PrintWriter out = new PrintWriter( + new BufferedWriter(new OutputStreamWriter(s.getOutputStream(),"UTF-8")), + true); // DEPRECATED: newer protocol shouldn't use PrintWriter but should use DataOutputStream String s = in.readUTF(); diff --git a/core/src/main/java/hudson/cli/CliProtocol.java b/core/src/main/java/hudson/cli/CliProtocol.java index 0f1d5035cfe50b48e3a41c3d32ac34e0c96f618d..b3b725fe33ff896a3c59b1a167c682c935c7fe00 100644 --- a/core/src/main/java/hudson/cli/CliProtocol.java +++ b/core/src/main/java/hudson/cli/CliProtocol.java @@ -9,7 +9,9 @@ import jenkins.model.Jenkins; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; +import java.io.BufferedWriter; import java.io.IOException; +import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; @@ -39,7 +41,7 @@ public class CliProtocol extends AgentProtocol { } public void run() throws IOException, InterruptedException { - PrintWriter out = new PrintWriter(socket.getOutputStream(),true); + PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")),true); out.println("Welcome"); runCli(new Connection(socket)); } diff --git a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java index 664f5e3822facfd83db3adeb5f65367ab76d6344..4b32de1b33ffcbefca9a20f2772080cf5f296e7c 100644 --- a/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java +++ b/core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java @@ -12,10 +12,12 @@ import jenkins.security.HMACConfidentialKey; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; +import java.io.BufferedWriter; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.util.logging.Level; @@ -81,7 +83,7 @@ public class JnlpSlaveAgentProtocol extends AgentProtocol { public Handler(Socket socket) throws IOException { this.socket = socket; in = new DataInputStream(socket.getInputStream()); - out = new PrintWriter(socket.getOutputStream(),true); + out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")),true); } protected void run() throws IOException, InterruptedException {