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() {


Reply via email to