From: <fg...@us...> - 2011-06-13 13:51:04
|
Revision: 3527 http://openutils.svn.sourceforge.net/openutils/?rev=3527&view=rev Author: fgiust Date: 2011-06-13 13:50:57 +0000 (Mon, 13 Jun 2011) Log Message: ----------- CACHE-4 hasGzip() returns always true Modified Paths: -------------- trunk/openutils-mgnlcache/src/main/java/net/sourceforge/openutils/mgnlsimplecache/filesystem/FSCachedItem.java trunk/openutils-mgnlcache/src/main/java/net/sourceforge/openutils/mgnlsimplecache/filters/CacheFilter.java Modified: trunk/openutils-mgnlcache/src/main/java/net/sourceforge/openutils/mgnlsimplecache/filesystem/FSCachedItem.java =================================================================== --- trunk/openutils-mgnlcache/src/main/java/net/sourceforge/openutils/mgnlsimplecache/filesystem/FSCachedItem.java 2011-06-13 08:28:31 UTC (rev 3526) +++ trunk/openutils-mgnlcache/src/main/java/net/sourceforge/openutils/mgnlsimplecache/filesystem/FSCachedItem.java 2011-06-13 13:50:57 UTC (rev 3527) @@ -137,7 +137,9 @@ */ public boolean hasGzip() { - return getBodyLength(true) > 0; + // the call to getBodyLength() is needed to force the check if the size is not cached + getBodyLength(true); + return sizeGzip > 0; } /** Modified: trunk/openutils-mgnlcache/src/main/java/net/sourceforge/openutils/mgnlsimplecache/filters/CacheFilter.java =================================================================== --- trunk/openutils-mgnlcache/src/main/java/net/sourceforge/openutils/mgnlsimplecache/filters/CacheFilter.java 2011-06-13 08:28:31 UTC (rev 3526) +++ trunk/openutils-mgnlcache/src/main/java/net/sourceforge/openutils/mgnlsimplecache/filters/CacheFilter.java 2011-06-13 13:50:57 UTC (rev 3527) @@ -207,6 +207,11 @@ if (cacheContentResponse.isError() || cacheContentResponse.isRedirect() || !hasContent) { + log.warn("Resetting {}: error={} redirect={}, empty={}", new Object[]{ + cacheManager.getKey(request), + cacheContentResponse.isError(), + cacheContentResponse.isRedirect(), + !hasContent }); cacheManager.reset(request); } } @@ -227,8 +232,10 @@ private boolean returnCachedContent(final HttpServletRequest request, final HttpServletResponse response, final boolean acceptGzip, CachedItem cacheContent) throws IOException, ServletException { - InputStream cacheContentInputStream = cacheContent.beginRead(acceptGzip); + boolean getGzip = acceptGzip && cacheContent.hasGzip(); + InputStream cacheContentInputStream = cacheContent.beginRead(getGzip); + boolean reset = true; try { @@ -252,8 +259,8 @@ // stream from cache response.setDateHeader("Last-Modified", cacheContent.getCreationTime()); - response.setContentLength((int) cacheContent.getBodyLength(acceptGzip)); - if (acceptGzip && cacheContent.hasGzip()) + response.setContentLength((int) cacheContent.getBodyLength(getGzip)); + if (getGzip) { response.setHeader("Content-Encoding", "gzip"); response.setHeader("Vary", "Accept-Encoding"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |