You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2012/03/01 16:40:02 UTC

svn commit: r1295625 - in /incubator/wookie/trunk: src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java src/org/apache/wookie/controller/PoliciesController.java src/org/apache/wookie/proxy/Policies.java

Author: scottbw
Date: Thu Mar  1 15:40:02 2012
New Revision: 1295625

URL: http://svn.apache.org/viewvc?rev=1295625&view=rev
Log:
Fixed a problem with the Policies API when trying to delete a non-existant policy. 

Modified:
    incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java
    incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java
    incubator/wookie/trunk/src/org/apache/wookie/proxy/Policies.java

Modified: incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java?rev=1295625&r1=1295624&r2=1295625&view=diff
==============================================================================
--- incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java (original)
+++ incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/PoliciesControllerTest.java Thu Mar  1 15:40:02 2012
@@ -196,7 +196,7 @@ public class PoliciesControllerTest exte
     setAuthenticationCredentials(client);
     DeleteMethod delete = new DeleteMethod(TEST_POLICIES_SERVICE_URL_VALID+"/http%3A%2F%2Fno.such.scope%20http%3A%2F%2Fpolicies.test.origin%20ALLOW");
     client.executeMethod(delete);
-    assertEquals(200, delete.getStatusCode());
+    assertEquals(404, delete.getStatusCode());
   }
   
   @Test

Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java?rev=1295625&r1=1295624&r2=1295625&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java Thu Mar  1 15:40:02 2012
@@ -160,6 +160,14 @@ public class PoliciesController extends 
       //
       Policy policy;
       policy = new Policy(resourceId);
+      
+      //
+      // Policy doesn't exist so return 404
+      //
+      if (!Policies.getInstance().exists(policy)){
+        throw new ResourceNotFoundException();
+      }
+      
       Policies.getInstance().removePolicy(policy);
       return true;
       

Modified: incubator/wookie/trunk/src/org/apache/wookie/proxy/Policies.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/proxy/Policies.java?rev=1295625&r1=1295624&r2=1295625&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/proxy/Policies.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/proxy/Policies.java Thu Mar  1 15:40:02 2012
@@ -319,4 +319,17 @@ public class Policies {
     }
     return allPolicies.toArray(new Policy[allPolicies.size()]);
   }
+  
+  /**
+   * Check whether a policy already exists
+   * @param policy the policy to check
+   * @return true if the policy exists, otherwise false
+   */
+  public boolean exists(Policy policy){
+    @SuppressWarnings("unchecked")
+    Collection<Policy> existingPolicies = (Collection<Policy>) policies.get(policy.getScope());
+    if (existingPolicies == null) return false;
+    if (!existingPolicies.contains(policy)) return false;
+    return true;
+  }
 }