code: @Override
      public ResponseCtx getCacheItem(String request) {
          String hash = null;
          ResponseCtx response = null;
  
          try {
              hash = makeHash(request);
  
              // thread-safety on cache operations
              synchronized (requestCache) {
  
                  if (logger.isDebugEnabled()) {
                      logger.debug("Getting Cache Item (" + requestCache.size() + "/"
                                   + requestCacheUsageTracker.size() + "/"
                                   + requestCacheTimeTracker.size() + "): " + hash);
                  }
  
                  response = requestCache.get(hash);
  
                  if (response == null) {
                      return null;
                  }
  
                  // if this item is older than CACHE_ITEM_TTL then we can't use it
                  long usedLast =
                      System.currentTimeMillis()
                      - requestCacheTimeTracker.get(hash).longValue();
                  if (usedLast > TTL) {
                      requestCache.remove(hash);
                      requestCacheUsageTracker.remove(hash);
                      requestCacheTimeTracker.remove(hash);
  
                      if (logger.isDebugEnabled()) {
                          logger.debug("CACHE_ITEM_TTL exceeded: " + hash);
                      }
  
                      return null;
                  }
  
                  // we just used this item, move it to the end of the list (items at
                  // beginning get removed...)
                  requestCacheUsageTracker.add(requestCacheUsageTracker
                                               .remove(requestCacheUsageTracker.indexOf(hash)));
              }
          } catch (Exception e) {
              logger.warn("Error getting cache item: " + e.getMessage(), e);
              response = null;
          }
  
          return response;
      }
docs: /*
  (non-Javadoc)
  @see org.fcrepo.server.security.xacml.pep.ResponseCache#getCacheItem(java.lang.String)