ledgerId,
0,
1,
numEdits,
false);
EditLogFileInputStream fileEditsIn =
new EditLogFileInputStream(tempEditsFile);
long lastBkPos = bkEditsIn.getPosition();
long lastFilePos = fileEditsIn.getPosition();
for (int i = 0; i <= numEdits; i++) {
assertEquals("Position in file must be equal to position in bk",
lastBkPos, lastFilePos);
bkEditsIn.refresh(lastBkPos, -1);
fileEditsIn.refresh(lastFilePos, -1);
FSEditLogOp opFromBk = bkEditsIn.readOp();
FSEditLogOp opFromFile = fileEditsIn.readOp();
if (LOG.isDebugEnabled()) {
LOG.debug("txId = " + i + ", " + "opFromBk = " + opFromBk +
", opFromFile = " + opFromFile);
}
assertEquals(
"Operation read from file and BookKeeper must be same after refresh",
opFromBk, opFromFile);
lastBkPos = bkEditsIn.getPosition();
lastFilePos = fileEditsIn.getPosition();
bkEditsIn =
new BookKeeperEditLogInputStream(ledgerProvider,
ledgerId,
0,
1,
numEdits,
false);
fileEditsIn =
new EditLogFileInputStream(tempEditsFile);
}
bkEditsIn.refresh(lastBkPos, -1);
assertNull("BookKeeper edit log must end at last txId", bkEditsIn.readOp());
}