Author: etnu
Date: Fri Apr  4 14:13:18 2008
New Revision: 644933

URL: http://svn.apache.org/viewvc?rev=644933&view=rev
Log:
Fix for SHINDIG-165; Bypasses caching for proxies by setting Pragma: no-cache 
whenever options.ignoreCache is set.


Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/RemoteContentRequest.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/RemoteContentRequest.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/RemoteContentRequest.java?rev=644933&r1=644932&r2=644933&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/RemoteContentRequest.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/RemoteContentRequest.java
 Fri Apr  4 14:13:18 2008
@@ -163,11 +163,21 @@
     if (headers == null) {
       this.headers = Collections.emptyMap();
     } else {
+      boolean setPragmaHeader = false;
       Map<String, List<String>> tmpHeaders
           = new HashMap<String, List<String>>();
       for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
         List<String> newList = new ArrayList<String>(entry.getValue());
+        // Proxies should be bypassed with the Pragma: no-cache check.
+        if (entry.getKey().equals("Pragma") && options.ignoreCache) {
+          newList.add("no-cache");
+          setPragmaHeader = true;
+        }
         tmpHeaders.put(entry.getKey(), Collections.unmodifiableList(newList));
+      }
+      // Bypass caching in proxies as well.
+      if (!setPragmaHeader && options.ignoreCache) {
+        tmpHeaders.put("Pragma", Arrays.asList("no-cache"));
       }
       this.headers = Collections.unmodifiableMap(tmpHeaders);
     }


Reply via email to