diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/MonitoringGuacamoleReader.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/MonitoringGuacamoleReader.java index b09881c98..9c3b4bdfa 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/MonitoringGuacamoleReader.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/MonitoringGuacamoleReader.java @@ -66,13 +66,23 @@ public class MonitoringGuacamoleReader implements GuacamoleReader { @Override public char[] read() throws GuacamoleException { - return readInstruction().toString().toCharArray(); + + // Read single instruction, handle end-of-stream + GuacamoleInstruction instruction = readInstruction(); + if (instruction == null) + return null; + + return instruction.toString().toCharArray(); + } @Override public GuacamoleInstruction readInstruction() throws GuacamoleException { + // Read single instruction, handle end-of-stream GuacamoleInstruction instruction = reader.readInstruction(); + if (instruction == null) + return null; // If clipboard changed, notify listeners if (instruction.getOpcode().equals("clipboard")) {