This is probably caused by the BufferedReader used to read "play:ok/error" from the socket's InputStream in Communicator. Some of the contents in the InputStream are buffered into the reader and then lost when the method returns the InputStream itself.