if (Log.isDebugEnabled()) Log.debug("CACHE MISS: {}",pathInContext);
    public Content lookup(String pathInContext, ResourceFactory factory)        throws IOException    {        if (Log.isDebugEnabled()) Log.debug("lookup {}",pathInContext);                Content content=null;                // Look up cache operations        synchronized(_cache)        {            // Look for it in the cache            content = (Content)_cache.get(pathInContext);                    if (content!=null && content.isValid())            {                if (Log.isDebugEnabled()) Log.debug("CACHE HIT: {}",content);                return content;            }            }        Resource resource=factory.getResource(pathInContext);        if (resource!=null && resource.exists() && !resource.isDirectory())        {            long len = resource.length();            if (len>0 && len<_maxCachedFileSize && len<_maxCacheSize)            {                content = new Content(resource);                fill(content);                synchronized(_cache)                {                    // check that somebody else did not fill this spot.                    Content content2 =(Content)_cache.get(pathInContext);                    if (content2!=null)                    {                        content.release();                        return content2;                    }                                        content.cache(pathInContext);                }            }        }        return null;     }