private final RecordPos findValuePosition(long p) { long pageNr = (long) pageFromPointer(p); final short tid = (short) tidFromPointer(p); DOMPage page; int pos; while (pageNr > -1) { page = getCurrentPage(pageNr); buffer.add(page); pos = 0; final int dlen = page.getPageHeader().getDataLength();  while (pos < dlen) { final short current = ByteConversion.byteToShort(page.data, pos);  if (current == tid) return new RecordPos(pos + 2, page); pos = pos + ByteConversion.byteToShort(page.data, pos + 2) + 4;
protected final RecordPos findValuePosition(long p) { long pageNr = (long) pageFromPointer(p); final short tid = (short) tidFromPointer(p); DOMPage page; int pos; while (pageNr > -1) { page = getCurrentPage(pageNr); buffer.add(page); pos = 0; final int dlen = page.getPageHeader().getDataLength();  while (pos < dlen) { final short current = ByteConversion.byteToShort(page.data, pos);  if (current == tid) return new RecordPos(pos + 2, page); pos = pos + ByteConversion.byteToShort(page.data, pos + 2) + 4; } pageNr = page.getPageHeader().getNextDataPage();
	private final RecordPos findValuePosition(long p) {		long pageNr = (long) pageFromPointer(p);		final short tid = (short) tidFromPointer(p);		DOMPage page;		int pos;		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);				pos = pos + ByteConversion.byteToShort(page.data, pos + 2) + 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;	}