diff --git a/src/qz/communication/SocketIO.java b/src/qz/communication/SocketIO.java index 8a86e517f..87640b127 100644 --- a/src/qz/communication/SocketIO.java +++ b/src/qz/communication/SocketIO.java @@ -62,8 +62,10 @@ public String processSocketResponse() throws IOException { } } while(dataIn.available() > 0); - - return new String(ArrayUtils.toPrimitive(fullResponse.toArray(new Byte[0])), encoding); + if(fullResponse.size() > 0) { + return new String(ArrayUtils.toPrimitive(fullResponse.toArray(new Byte[0])), encoding); + } + return null; } public void close() throws IOException { diff --git a/src/qz/utils/SocketUtilities.java b/src/qz/utils/SocketUtilities.java index 0be3563e6..505266144 100644 --- a/src/qz/utils/SocketUtilities.java +++ b/src/qz/utils/SocketUtilities.java @@ -30,9 +30,12 @@ public static void setupSocket(final Session session, String UID, SocketConnecti //TODO - move to dedicated options class? Charset encoding = StandardCharsets.UTF_8; - if (!params.isNull("encoding")) { - try { encoding = Charset.forName(params.getString("encoding")); } - catch(JSONException e) { LoggerUtilities.optionWarn(log, "string", "encoding", params.opt("encoding")); } + if (!params.isNull("options")) { + JSONObject options = params.getJSONObject("options"); + + if (!options.isNull("encoding")) { + encoding = Charset.forName(options.getString("encoding")); + } } try {