/** * Read a page. * * @param pos the page id * @return the page */ public synchronized Data readPage(int pos) { Data page = createData(); readPage(pos, page); return page; }
private void readVariableHeader() { Data page = createData(); for (int i = 1;; i++) { if (i == 3) { throw DbException.get( ErrorCode.FILE_CORRUPTED_1, fileName); } page.reset(); readPage(i, page); CRC32 crc = new CRC32(); crc.update(page.getBytes(), 4, pageSize - 4); int expected = (int) crc.getValue(); int got = page.readInt(); if (expected == got) { writeCountBase = page.readLong(); logKey = page.readInt(); logFirstTrunkPage = page.readInt(); logFirstDataPage = page.readInt(); break; } } }
/** * Write an undo log entry if required. * * @param page the page * @param old the old data (if known) or null */ public synchronized void logUndo(Page page, Data old) { if (logMode == LOG_MODE_OFF) { return; } checkOpen(); database.checkWritingAllowed(); if (!recoveryRunning) { int pos = page.getPos(); if (!log.getUndo(pos)) { if (old == null) { old = readPage(pos); } openForWriting(); log.addUndo(pos, old); } } }
readPage(pageId, data); int type = data.readByte(); if (type == Page.TYPE_EMPTY) {
/** * Read a page. * * @param pos the page id * @return the page */ public synchronized Data readPage(int pos) { Data page = createData(); readPage(pos, page); return page; }
/** * Read a page. * * @param pos the page id * @return the page */ public synchronized Data readPage(int pos) { Data page = createData(); readPage(pos, page); return page; }
private void readVariableHeader() { Data page = createData(); for (int i = 1;; i++) { if (i == 3) { throw DbException.get( ErrorCode.FILE_CORRUPTED_1, fileName); } page.reset(); readPage(i, page); CRC32 crc = new CRC32(); crc.update(page.getBytes(), 4, pageSize - 4); int expected = (int) crc.getValue(); int got = page.readInt(); if (expected == got) { writeCountBase = page.readLong(); logKey = page.readInt(); logFirstTrunkPage = page.readInt(); logFirstDataPage = page.readInt(); break; } } }
private void readVariableHeader() { Data page = createData(); for (int i = 1;; i++) { if (i == 3) { throw DbException.get( ErrorCode.FILE_CORRUPTED_1, fileName); } page.reset(); readPage(i, page); CRC32 crc = new CRC32(); crc.update(page.getBytes(), 4, pageSize - 4); int expected = (int) crc.getValue(); int got = page.readInt(); if (expected == got) { writeCountBase = page.readLong(); logKey = page.readInt(); logFirstTrunkPage = page.readInt(); logFirstDataPage = page.readInt(); break; } } }
/** * Write an undo log entry if required. * * @param page the page * @param old the old data (if known) or null */ public synchronized void logUndo(Page page, Data old) { if (logMode == LOG_MODE_OFF) { return; } checkOpen(); database.checkWritingAllowed(); if (!recoveryRunning) { int pos = page.getPos(); if (!log.getUndo(pos)) { if (old == null) { old = readPage(pos); } openForWriting(); log.addUndo(pos, old); } } }
/** * Write an undo log entry if required. * * @param page the page * @param old the old data (if known) or null */ public synchronized void logUndo(Page page, Data old) { if (logMode == LOG_MODE_OFF) { return; } checkOpen(); database.checkWritingAllowed(); if (!recoveryRunning) { int pos = page.getPos(); if (!log.getUndo(pos)) { if (old == null) { old = readPage(pos); } openForWriting(); log.addUndo(pos, old); } } }
readPage(pageId, data); int type = data.readByte(); if (type == Page.TYPE_EMPTY) {
readPage(pageId, data); int type = data.readByte(); if (type == Page.TYPE_EMPTY) {