private synchronized void cleanup() {
		setState(STATE_INVALID);
		if (transport != null)
			transport.disconnect();
		sockets.clear();
		synchronized (connections) {
			List<IOConnection> con = connections.get(urlStr);
			if (con != null && con.size() > 1)
				con.remove(this);
			else
				connections.remove(urlStr);
		}
		logger.info("Cleanup");
		backgroundTimer.cancel();
	}
Cleanup. IOConnection is not usable after this calling this.
src/io/socket/IOConnection.java