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;