if(vlen < 0) { LOG.debug("illegal data length: " + vlen + "; "+ page.page.getPageInfo()); return null; }
	protected final RecordPos findValuePosition(long p) {		long pageNr = (long) StorageAddress.pageFromPointer(p);		final short tid = (short) StorageAddress.tidFromPointer(p);		DOMPage page;		int pos;		short vlen;		while (pageNr > -1) {			page = getCurrentPage(pageNr);			buffer.add(page);			pos = 0;			final int dlen = page.getPageHeader().getDataLength();			//System.out.println(pos + " < " + dlen);			while (pos < dlen) {				final short current = ByteConversion.byteToShort(page.data, pos);				//System.out.println(current + " = " + tid);				if (current == tid)					return new RecordPos(pos + 2, page);				vlen = ByteConversion.byteToShort(page.data, pos + 2);				if (vlen == OVERFLOW)					pos += 12;				else					pos = pos + vlen + 4;			}			pageNr = page.getPageHeader().getNextDataPage();			//				LOG.debug(owner.toString() + 			//					": tid "			//						+ tid			//						+ " not found on "			//						+ page.page.getPageInfo()			//						+ ". Loading "			//						+ pageNr);		}		LOG.debug("tid " + tid + " not found.");		return null;	}