Guess I'm not seeing an issue here.
The 304 response is independent of ResourceManager interactions. Based on the
API, the Resource has to be looked up before we can determine if the user agent
This means we have to go through the ResourceManager to obtain the cached
metadata. Note that by default, the metadata will be refreshed every 5 minutes
from its last access unless the configuration option I referenced previously is
set to -1.
However, anytime the user agent asks about the modified time of a resource,
we'll answer it.
Doing some local testing with FF 3.6 and Live HTTP Headers, if I make an initial
request to an application with managed resources, I see the GET being made to
the resources with the Expires, Last-Modified, and ETag response headers being
If I then issue the same GET request, I see only the GET for the page, and not
the resources, so the conditional GET sequence is not initiated. Assuming no
reloads, the request for the resource shouldn't be issues again for another
If the reload button is hit, then a request is sent for the resources with an
If-Modified-Since request header. This cases
ResourceImpl.userAgentNeedsUpdate() to be invoked which will query the timestamp.
If a shift-reload occurs, then the resource is re-requested with no
If you're seeing the conditional GET requests being sent for every resource
regardless of the headers, I'd like to know what user agent you're using.