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