public synchronized void init() {
        Object tmp = library.getObject(entries, "Pages");
        pageTree = null;
        if (tmp instanceof PageTree) {
            pageTree = (PageTree) tmp;
        }
        // malformed core corner case, pages must not be references, but we
        // have a couple cases that break the spec.
        else if (tmp instanceof Hashtable) {
            pageTree = new PageTree(library, (Hashtable) tmp);
        }

        try {
            pageTree.init();
            pageTree.initRootPageTree();
        }
        catch (NullPointerException e) {
            logger.log(Level.FINE, "Error parsing page tree.", e);
        }
    }