You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2014/08/27 00:34:16 UTC

git commit: TAP5-2323: Tapestry may send a 304 response to a browser that has an asset who minimized/non-minimized state does not match the server's configuration

Repository: tapestry-5
Updated Branches:
  refs/heads/master a338a2f07 -> 8e7cc4e35


TAP5-2323: Tapestry may send a 304 response to a browser that has an asset who minimized/non-minimized state does not match the server's configuration


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/8e7cc4e3
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/8e7cc4e3
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/8e7cc4e3

Branch: refs/heads/master
Commit: 8e7cc4e35279dab583d8e06ba4e3b4e17292a13e
Parents: a338a2f
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Tue Aug 26 15:34:10 2014 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Tue Aug 26 15:34:10 2014 -0700

----------------------------------------------------------------------
 .../internal/services/ResourceStreamerImpl.java | 37 ++++++++++----------
 1 file changed, 19 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/8e7cc4e3/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java
index ce3d1ae..9176555 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java
@@ -149,6 +149,25 @@ public class ResourceStreamerImpl implements ResourceStreamer
             return false;
         }
 
+
+        // ETag should be surrounded with quotes.
+        String token = QUOTE + actualChecksum + QUOTE;
+
+        // Even when sending a 304, we want the ETag associated with the request.
+        // In most cases (except JavaScript modules), the checksum is also embedded into the URL.
+        // However, E-Tags are also useful for enabling caching inside intermediate servers, CDNs, etc.
+        response.setHeader("ETag", token);
+
+        // If the client can send the correct ETag token, then its cache already contains the correct
+        // content.
+        String providedToken = request.getHeader("If-None-Match");
+
+        if (token.equals(providedToken))
+        {
+            response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+            return true;
+        }
+
         long lastModified = streamable.getLastModified();
 
         long ifModifiedSince;
@@ -169,24 +188,6 @@ public class ResourceStreamerImpl implements ResourceStreamer
             return true;
         }
 
-        // ETag should be surrounded with quotes.
-        String token = QUOTE + actualChecksum + QUOTE;
-
-        // Even when sending a 304, we want the ETag associated with the request.
-        // In most cases (except JavaScript modules), the checksum is also embedded into the URL.
-        // However, E-Tags are also useful for enabling caching inside intermediate servers, CDNs, etc.
-        response.setHeader("ETag", token);
-
-        // If the client can send the correct ETag token, then its cache already contains the correct
-        // content.
-        String providedToken = request.getHeader("If-None-Match");
-
-        if (token.equals(providedToken))
-        {
-            response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
-            return true;
-        }
-
         // Prevent the upstream code from compressing when we don't want to.
 
         response.disableCompression();