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