*/
	public boolean incomingData(ByteBuffer b, Object passthrough) throws IOException {
		try {
			return notifyImpl(b, passthrough);
		} catch(CorruptPacketException e) {
			log.log(Level.WARNING, id+"Corrupt packet received", e);
			clearState();
			throw e;
		}
	}
	
// I think recovering could be a security problem...if they send bad data...kill the link
//	private void recover(ByteBuffer b) {
//		try {
//			throw new UnsupportedOperationException("recovery is not supported yet");
//			//state = RECOVERING;
//			//notifyImpl(b);
//		} catch(RuntimeException e) {
//			log.log(Level.WARNING, "Ignoring exception as it happened after another\n"
//					+"exception that we will throw back.  This exception may be\n"
//					+"a result of the first exception", e);
//		}
//	}