SinglePage page = getSinglePageForRedo(loggable.pageNum); if (page != null && requiresRedo(loggable, page)) {
SinglePage page = getSinglePageForRedo(loggable, loggable.pageNum); if (page != null) {
    protected void redoStoreOverflow(OverflowStoreLoggable loggable) {        try {            SinglePage page = getSinglePageForRedo(loggable.pageNum);            if (page != null && requiresRedo(loggable, page)) {                BFilePageHeader ph = page.getPageHeader();                try {                    System.arraycopy(loggable.data, 0, page.getData(), 0, loggable.size);                } catch (ArrayIndexOutOfBoundsException e) {                    LOG.warn(loggable.data.length + "; " + page.getData().length + "; " + ph.getDataLength() + "; " + loggable.size);                    throw e;                }                ph.setDataLength(loggable.size);                ph.setNextInChain(0);                ph.setLsn(loggable.getLsn());                page.setDirty(true);                dataCache.add(page);                                if (loggable.prevPage != Page.NO_PAGE) {                    page = getSinglePage(loggable.prevPage);                    SanityCheck.ASSERT(page != null, "Previous page is null");                    page.getPageHeader().setNextInChain(loggable.pageNum);                    page.setDirty(true);                    dataCache.add(page);                }            }        } catch (IOException e) {            LOG.warn("An IOException occurred during redo: " + e.getMessage(), e);        }    }