Author: gagan
Date: Wed Mar 2 02:16:47 2011
New Revision: 1076086
URL: http://svn.apache.org/viewvc?rev=1076086&view=rev
Log:
Patch by nikhilmadan23 | Issue 4257044: Bug Fix - Add Pragma and Cache-Control
header only if not null in AbstractHttpCache |
http://codereview.appspot.com/4257044/
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java?rev=1076086&r1=1076085&r2=1076086&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
(original)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/AbstractHttpCache.java
Wed Mar 2 02:16:47 2011
@@ -94,12 +94,24 @@ public abstract class AbstractHttpCache
@VisibleForTesting
HttpResponseBuilder buildStrictNoCacheHttpResponse(HttpRequest request,
HttpResponse response) {
HttpResponseBuilder responseBuilder = new HttpResponseBuilder();
- responseBuilder.setHeader("Cache-Control",
response.getHeader("Cache-Control"));
- responseBuilder.setHeader("Pragma", response.getHeader("Pragma"));
+ copyHeaderIfPresent("Cache-Control", response, responseBuilder);
+ copyHeaderIfPresent("Pragma", response, responseBuilder);
responseBuilder.setCacheControlMaxAge(strictNoCacheResourceTtlInSeconds);
return responseBuilder;
}
+ /**
+ * Copy the specified header from response into builder if it exists.
+ */
+ private void copyHeaderIfPresent(String header,
+ HttpResponse response,
+ HttpResponseBuilder builder) {
+ String headerValue = response.getHeader(header);
+ if (headerValue != null) {
+ builder.setHeader(header, headerValue);
+ }
+ }
+
public HttpResponse removeResponse(HttpRequest request) {
String keyString = createKey(request);
HttpResponse response = getResponseImpl(keyString);
Modified:
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java?rev=1076086&r1=1076085&r2=1076086&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
(original)
+++
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
Wed Mar 2 02:16:47 2011
@@ -467,6 +467,7 @@ public class AbstractHttpCacheTest {
assertTrue(builtResponse.isStrictNoCache());
assertEquals("", builtResponse.getResponseAsString());
assertEquals("private,max-age=86400",
builtResponse.getHeader("Cache-Control"));
+ assertFalse(builtResponse.getHeaders().containsKey("Pragma"));
assertNull(builtResponse.getHeader("X-Method-Override"));
}
@@ -480,7 +481,7 @@ public class AbstractHttpCacheTest {
HttpResponse builtResponse = cache
.buildStrictNoCacheHttpResponse(new HttpRequest(DEFAULT_URI),
response).create();
- assertTrue(builtResponse.isStrictNoCache());
+ assertTrue(builtResponse.isStrictNoCache());
assertEquals("", builtResponse.getResponseAsString());
assertEquals("max-age=-1", builtResponse.getHeader("Cache-Control"));
assertEquals("no-cache", builtResponse.getHeader("Pragma"));