code: @Override
    public synchronized P readPage(int pageID) {
      countRead();
      P page = map.get(pageID);
      if(page != null) {
        if(LOG.isDebuggingFine()) {
          LOG.debugFine("Read from cache: " + pageID);
        }
      }
      else {
        if(LOG.isDebuggingFine()) {
          LOG.debugFine("Read from backing: " + pageID);
        }
        page = file.readPage(pageID);
        map.put(pageID, page);
      }
      return page;
    }
docs: Retrieves a page from the cache. The retrieved page becomes the MRU (most
  recently used) page.
  
  @param pageID the id of the page to be returned
  @return the page associated to the id or null if no value with this key
  exists in the cache