Author: johnh
Date: Thu Jun 10 15:42:44 2010
New Revision: 953355
URL: http://svn.apache.org/viewvc?rev=953355&view=rev
Log:
Don't cache HttpResponses with status 304.
Patch provided by Pradnya Karbhari.
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=953355&r1=953354&r2=953355&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
Thu Jun 10 15:42:44 2010
@@ -96,6 +96,11 @@ public abstract class AbstractHttpCache
// Caching was forced. Ignore what the response wants.
return true;
}
+
+ if (response.getHttpStatusCode() == HttpResponse.SC_NOT_MODIFIED) {
+ // Shindig server will serve 304s. Do not cache 304s from the origin
server.
+ return false;
+ }
// If the HTTP response allows for it, we can cache.
return !response.isStrictNoCache();
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=953355&r1=953354&r2=953355&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
Thu Jun 10 15:42:44 2010
@@ -259,6 +259,15 @@ public class AbstractHttpCacheTest {
assertEquals(0, cache.map.size());
}
+
+ @Test
+ public void addResponseIfModifiedSince() {
+ HttpRequest request = new HttpRequest(DEFAULT_URI);
+ HttpResponse response = new
HttpResponseBuilder().setHttpStatusCode(HttpResponse.SC_NOT_MODIFIED).create();
+ assertFalse(cache.addResponse(request, response));
+
+ assertEquals(0, cache.map.size());
+ }
@Test
public void addResponseUsingPost() {