}
private void processContent(final String relativeURIString,
final GrizzlyRequest gReq, final GrizzlyResponse gResp) {
try {
final StaticContent sc = content.get(relativeURIString);
/*
* No need to actually send the file if the request contains a
* If-Modified-Since date and the file is not more recent.
*/
final File fileToSend = sc.file();
if (fileToSend != null) {
if (returnIfClientCacheIsCurrent(relativeURIString,
gReq, fileToSend.lastModified())) {
return;
}
/*
* The client's cache is obsolete. Be sure to set the
* time header values.
*/
gResp.addDateHeader(LAST_MODIFIED_HEADER_NAME, fileToSend.lastModified());
gResp.addDateHeader(DATE_HEADER_NAME, System.currentTimeMillis());
}
/*
* Delegate to the Grizzly implementation.
*/
super.service(relativeURIString, gReq.getRequest(), gResp.getResponse());
final int status = gResp.getStatus();
if (status != HttpServletResponse.SC_OK) {
logger.fine(logPrefix() + "Could not serve content for " +
relativeURIString + " - status = " + status);
} else {
logger.fine(logPrefix() + "Served static content for " + gReq.getMethod() +
":" + sc.toString());
}
finishResponse(gResp, status);
} catch (Exception e) {
// gResp.getResponse().setErrorException(e);
// finishErrorResponse(gResp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR);