private void processHeader(ByteBuffer b) {
		boolean isDone = processDone(b, head);

		if(isDone) {
			//get header data....
			HELPER.doneFillingBuffer(head.getCache());
			body.setSequence(head.getCache().getInt());
			body.setNumNeededBytes(head.getCache().getInt());
			state = ProcessingState.PROCESSING_BODY;
			head.getCache().clear();
			if(body.getNumNeededBytes() <= 0 || body.getNumNeededBytes() > maxSizeContents)
				throw new CorruptPacketException("header='"+body.getNumNeededBytes()+"' is not valid.  Must\n"
						+"be less than maxSizeContents="
						+maxSizeContents+" and greater than 0", true, false);
		}
	}