Index: /trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java =================================================================== --- /trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java (revision 10586) +++ /trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java (revision 10587) @@ -12,8 +12,10 @@ import java.io.Writer; import java.net.Socket; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Date; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; @@ -45,4 +47,10 @@ */ public class RequestProcessor extends Thread { + + private static final Charset RESPONSE_CHARSET = StandardCharsets.UTF_8; + private static final String RESPONSE_TEMPLATE = "
%s%s"; + /** * RemoteControl protocol version. Change minor number for compatible @@ -145,5 +153,5 @@ try { OutputStream raw = new BufferedOutputStream(request.getOutputStream()); - out = new OutputStreamWriter(raw, StandardCharsets.UTF_8); + out = new OutputStreamWriter(raw, RESPONSE_CHARSET); BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream(), "ASCII")); @@ -269,10 +277,9 @@ private static void sendError(Writer out) throws IOException { sendHeader(out, "500 Internal Server Error", "text/html", true); - out.write("\r\n"); - out.write(""+Utils.escapeReservedCharactersHTML(help) + "
") + )); out.flush(); } /** - * Sends a 403 error: forbidden + * Sends a 400 error: bad request * * @param out @@ -333,13 +336,10 @@ private static void sendBadRequest(Writer out, String help) throws IOException { sendHeader(out, "400 Bad Request", "text/html", true); - out.write("\r\n"); - out.write("" + Utils.escapeReservedCharactersHTML(help) + "
")) + )); out.flush(); } @@ -362,8 +362,7 @@ boolean endHeaders) throws IOException { out.write("HTTP/1.1 " + status + "\r\n"); - Date now = new Date(); - out.write("Date: " + now + "\r\n"); + out.write("Date: " + new Date() + "\r\n"); out.write("Server: JOSM RemoteControl\r\n"); - out.write("Content-type: " + contentType + "\r\n"); + out.write("Content-type: " + contentType + "; charset=" + RESPONSE_CHARSET.name().toLowerCase(Locale.ENGLISH) + "\r\n"); out.write("Access-Control-Allow-Origin: *\r\n"); if (endHeaders) Index: /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java =================================================================== --- /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java (revision 10586) +++ /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java (revision 10587) @@ -247,6 +247,6 @@ if (error) { throw new RequestHandlerBadRequestException( - "The following keys are mandatory, but have not been provided: " - + Utils.join(", ", missingKeys)); + tr("The following keys are mandatory, but have not been provided: {0}", + Utils.join(", ", missingKeys))); } }