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