**/
private void readPageHeader()
throws IOException
{
// these reads are always against the page array
ArrayInputStream lrdi = rawDataIn;
lrdi.setPosition(PAGE_HEADER_OFFSET);
long spare;
isOverflowPage = lrdi.readBoolean();
setPageStatus (lrdi.readByte());
setPageVersion (lrdi.readLong());
slotsInUse = lrdi.readUnsignedShort();
nextId = lrdi.readInt();
generation = lrdi.readInt(); // page generation (Future Use)
prevGeneration = lrdi.readInt(); // previous generation (Future Use)
bipLocation = lrdi.readLong(); // BIPage location (Future Use)
// number of deleted rows on page, we start to store this release 2.0.
// for upgrade reasons, a 0 on disk means -1, so, we subtract one here.
deletedRowCount = lrdi.readUnsignedShort() - 1;
// the next 4 (total 22 bytes) are reserved for future
spare = lrdi.readUnsignedShort();
spare = lrdi.readInt(); // used by encryption
spare = lrdi.readLong();
spare = lrdi.readLong();
}