You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2015/02/13 02:42:19 UTC

[6/8] jclouds git commit: Handle removal during iteration

Handle removal during iteration

Previously this threw UnsupportedOperationException due to
findGrantsForGrantee returning an immutable view.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/eacfc8fd
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/eacfc8fd
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/eacfc8fd

Branch: refs/heads/master
Commit: eacfc8fdf1afdcdca88a71301e3e783515cba636
Parents: 3e84133
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Feb 6 14:24:11 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Thu Feb 12 17:26:47 2015 -0800

----------------------------------------------------------------------
 .../main/java/org/jclouds/s3/domain/AccessControlList.java  | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/eacfc8fd/apis/s3/src/main/java/org/jclouds/s3/domain/AccessControlList.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/domain/AccessControlList.java b/apis/s3/src/main/java/org/jclouds/s3/domain/AccessControlList.java
index 7450f30..34a7366 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/domain/AccessControlList.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/domain/AccessControlList.java
@@ -19,6 +19,7 @@ package org.jclouds.s3.domain;
 import java.net.URI;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -105,10 +106,10 @@ public class AccessControlList {
     * @param permission
     */
    public AccessControlList revokePermission(Grantee grantee, String permission) {
-      Collection<Grant> grantsForGrantee = findGrantsForGrantee(grantee.getIdentifier());
-      for (Grant grant : grantsForGrantee) {
-         if (grant.getPermission().equals(permission)) {
-            grants.remove(grant);
+      for (Iterator<Grant> it = grants.iterator(); it.hasNext();) {
+         Grant grant = it.next();
+         if (grant.getGrantee().equals(grantee) && grant.getPermission().equals(permission)) {
+            it.remove();
          }
       }
       return this;