code: void handleDisconnected() throws IOException {
  		synchronized (this.asyncMutex) {
  			if (socket != null) {
  				socket.close();
  			}
  			this.socket = new Socket(server, port);
  			this.in = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
  			this.out = new BufferedWriter(new OutputStreamWriter(this.socket.getOutputStream()));
  			
  			this.listenThread = new SocketThread(this.in, this, this.resultParser, this.daemon);
  			this.listenThread.start();
  			if (lastWatch != null) { // restore watch if we had one.
  				this.syncCommand(lastWatch, WatchObject.class);
  			}
  		}
  		
  	}
docs: Our socket thread got disconnect and is exiting.