protected boolean checkSendfile(HttpServletRequest request,
HttpServletResponse response,
String path, CacheEntry entry,
long length, Range range) {
if ((sendfileSize > 0)
&& (entry.resource != null)
&& ((length > sendfileSize) || (entry.resource.getContent() == null))
&& (entry.attributes.getCanonicalPath() != null)
&& (request.getClass().getName().equals("org.apache.catalina.connector.RequestFacade"))
&& (response.getClass().getName().equals("org.apache.catalina.connector.ResponseFacade"))
&& ((RequestFacade) request).hasSendfile()) {
ResponseFacade responseFacade = (ResponseFacade) response;
if (range == null) {
responseFacade.sendFile(path, entry.attributes.getCanonicalPath(), 0, length);
} else {
responseFacade.sendFile(path, entry.attributes.getCanonicalPath(), range.start, range.end + 1);
}
return true;
} else {
return false;
}
}