You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by dd...@apache.org on 2012/09/13 16:01:10 UTC

svn commit: r1384338 - in /shindig/trunk/java: common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java

Author: ddumont
Date: Thu Sep 13 14:01:10 2012
New Revision: 1384338

URL: http://svn.apache.org/viewvc?rev=1384338&view=rev
Log:
SHINDIG-1831 - IE8 file download failed when retrieving content through proxy
Committed for Marshall Shi

Modified:
    shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java

Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java?rev=1384338&r1=1384337&r2=1384338&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/HttpUtil.java Thu Sep 13 14:01:10 2012
@@ -107,13 +107,17 @@ public final class HttpUtil {
   }
 
   public static List<Pair<String, String>> getCachingHeadersToSet(int ttl, boolean noProxy) {
+    return getCachingHeadersToSet(ttl, null, null, noProxy);
+  }
+
+  public static List<Pair<String, String>> getCachingHeadersToSet(int ttl, String cacheControl, String pragma, boolean noProxy) {
     List<Pair<String, String>> cachingHeaders = Lists.newArrayListWithExpectedSize(3);
     cachingHeaders.add(Pair.of("Expires",
         DateUtil.formatRfc1123Date(timeSource.currentTimeMillis() + (1000L * ttl))));
 
     if (ttl <= 0) {
-      cachingHeaders.add(Pair.of("Pragma", "no-cache"));
-      cachingHeaders.add(Pair.of("Cache-Control", "no-cache"));
+      cachingHeaders.add(Pair.of("Pragma", pragma == null ? "no-cache" : pragma));
+      cachingHeaders.add(Pair.of("Cache-Control", cacheControl == null ? "no-cache" : cacheControl));
     } else {
       if (noProxy) {
         cachingHeaders.add(Pair.of("Cache-Control", "private,max-age=" + Integer.toString(ttl)));

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java?rev=1384338&r1=1384337&r2=1384338&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java Thu Sep 13 14:01:10 2012
@@ -90,7 +90,10 @@ public final class ServletUtil {
   }
 
   public static void setCachingHeaders(HttpResponseBuilder response, int ttl, boolean noProxy) {
-    for (Pair<String, String> header : HttpUtil.getCachingHeadersToSet(ttl, noProxy)) {
+    // Initial cache control headers are in this response, we should now sanitize them or set them if they are missing.
+    String cacheControl = response.getHeader("Cache-Control");
+    String pragma = response.getHeader("Pragma");
+    for (Pair<String, String> header : HttpUtil.getCachingHeadersToSet(ttl, cacheControl, pragma, noProxy)) {
       response.setHeader(header.one, header.two);
     }
   }