public void beginHandshake() {
		if(isClosing || isClosed) {
			throw new IllegalStateException(id+"SSLEngine is in the process of closing or is closed");
		} else if(runningRunnable)
			throw new IllegalStateException(id+"SSLListener was passed a Runnable object " +
					"that has not completed yet and must complete before encryption can continue");

		if(log.isLoggable(Level.FINE))
			log.fine(id+"start handshake");
		try {
			sslEngine.beginHandshake();
		} catch (SSLException e) {
			throw new AsyncSSLEngineException(e);
		}
		HandshakeStatus status = sslEngine.getHandshakeStatus();
		continueHandShake(status);
	}