You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directmemory.apache.org by ol...@apache.org on 2012/02/20 19:40:33 UTC

svn commit: r1291405 - in /incubator/directmemory/trunk/server/directmemory-server/src: main/java/org/apache/directmemory/server/services/CacheServlet.java test/java/org/apache/directmemory/server/services/ServletWithClientTest.java

Author: olamy
Date: Mon Feb 20 18:40:33 2012
New Revision: 1291405

URL: http://svn.apache.org/viewvc?rev=1291405&view=rev
Log:
fix status 204 on DELETE when entry was not here

Modified:
    incubator/directmemory/trunk/server/directmemory-server/src/main/java/org/apache/directmemory/server/services/CacheServlet.java
    incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/ServletWithClientTest.java

Modified: incubator/directmemory/trunk/server/directmemory-server/src/main/java/org/apache/directmemory/server/services/CacheServlet.java
URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/server/directmemory-server/src/main/java/org/apache/directmemory/server/services/CacheServlet.java?rev=1291405&r1=1291404&r2=1291405&view=diff
==============================================================================
--- incubator/directmemory/trunk/server/directmemory-server/src/main/java/org/apache/directmemory/server/services/CacheServlet.java (original)
+++ incubator/directmemory/trunk/server/directmemory-server/src/main/java/org/apache/directmemory/server/services/CacheServlet.java Mon Feb 20 18:40:33 2012
@@ -21,6 +21,7 @@ package org.apache.directmemory.server.s
 import org.apache.commons.lang.StringUtils;
 import org.apache.directmemory.cache.CacheService;
 import org.apache.directmemory.cache.CacheServiceImpl;
+import org.apache.directmemory.memory.Pointer;
 import org.apache.directmemory.server.commons.DirectMemoryCacheException;
 import org.apache.directmemory.server.commons.DirectMemoryCacheRequest;
 import org.slf4j.Logger;
@@ -154,8 +155,13 @@ public class CacheServlet
         String key = retrieveKeyFromPath( path );
 
         // TODO if key == null -> BAD_REQUEST http response or SC_NO_CONTENT (olamy: I prefer SC_NO_CONTENT )
-
-        cacheService.free( key );
+        Pointer pointer = cacheService.getPointer( key );
+        if ( pointer == null )
+        {
+            resp.sendError( HttpServletResponse.SC_NO_CONTENT, "No content for key: " + key );
+            return;
+        }
+        cacheService.free( pointer );
     }
 
     @Override

Modified: incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/ServletWithClientTest.java
URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/ServletWithClientTest.java?rev=1291405&r1=1291404&r2=1291405&view=diff
==============================================================================
--- incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/ServletWithClientTest.java (original)
+++ incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/ServletWithClientTest.java Mon Feb 20 18:40:33 2012
@@ -139,7 +139,9 @@ public class ServletWithClientTest
         assertEquals( "Bordeaux", wine.getName() );
         assertEquals( "very great wine", wine.getDescription() );
 
-        client.delete( new DirectMemoryCacheRequest<Wine>().setKey( "bordeaux" ) );
+        DirectMemoryCacheResponse deleteResponse =
+            client.delete( new DirectMemoryCacheRequest<Wine>().setKey( "bordeaux" ) );
+        assertTrue( deleteResponse.isDeleted() );
 
         response = client.retrieve( new DirectMemoryCacheRequest().setKey( "bordeaux" ).setSerializer(
             SerializerFactory.createNewSerializer() ).setExchangeType( ExchangeType.JSON ).setObjectClass(
@@ -149,4 +151,13 @@ public class ServletWithClientTest
         wine = response.getResponse();
         assertNull( wine );
     }
+
+    @Test
+    public void deleteNotFound()
+        throws Exception
+    {
+        DirectMemoryCacheResponse deleteResponse =
+            client.delete( new DirectMemoryCacheRequest<Wine>().setKey( "fofoofofof" ) );
+        assertFalse( deleteResponse.isDeleted() );
+    }
 }