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();