public void testDataDuringRehandshake() throws Exception {
		testBasic();
		feedData(clientEngine, clientList, serverEngine, serverList);				
		
		log.fine("B*******************************************");
		clientEngine.beginHandshake();
		String expected = "abc";
		ByteBuffer data = ByteBuffer.allocate(10);
		helper.putString(data, expected);
		helper.doneFillingBuffer(data);
		clientEngine.feedPlainPacket(data, null);
		
		ByteBuffer b = clientList.getPacketEncrypted();
		ByteBuffer encData = clientList.getPacketEncrypted();
		
		serverEngine.feedEncryptedPacket(b, null);
		Runnable r = serverList.getRunnable();
		r.run();
		ByteBuffer hsMsg = serverList.getPacketEncrypted();	
		
		serverEngine.feedEncryptedPacket(encData, null);
		
		b = serverList.getAssembledUnencryptedPacket();
		String actual = helper.readString(b, b.remaining());
		assertEquals(expected, actual);	
		
		clientEngine.feedEncryptedPacket(hsMsg, null);
		r = clientList.getRunnable();
		
		r.run();

//		feedData(clientEngine, clientList, serverEngine, serverList);

		ByteBuffer b0 = clientList.getPacketEncrypted();		
//		feedData(clientEngine, clientList, serverEngine, serverList);

		serverEngine.feedEncryptedPacket(b0, null);
		ByteBuffer b1 = clientList.getPacketEncrypted();
		r = serverList.getRunnable();

		r.run();
				
		serverEngine.feedEncryptedPacket(b1, null);
		ByteBuffer b2 = clientList.getPacketEncrypted();		

		serverEngine.feedEncryptedPacket(b2, null);		
		
		b0 = serverList.getPacketEncrypted();		
		clientEngine.feedEncryptedPacket(b0, null);
		b1 = serverList.getPacketEncrypted();
		clientEngine.feedEncryptedPacket(b1, null);

//		feedData(clientEngine, clientList, serverEngine, serverList);		
	}