diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java index e14b679033..156592df39 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java @@ -15,16 +15,15 @@ package org.springframework.security.acls.afterinvocation; -import org.apache.commons.collections.iterators.ArrayIterator; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - import java.lang.reflect.Array; - import java.util.HashSet; import java.util.Iterator; +import java.util.NoSuchElementException; import java.util.Set; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * A filter used to filter arrays. @@ -40,8 +39,8 @@ class ArrayFilterer implements Filterer { //~ Instance fields ================================================================================================ - private Set removeList; - private T[] list; + private final Set removeList; + private final T[] list; //~ Constructors =================================================================================================== @@ -88,9 +87,25 @@ class ArrayFilterer implements Filterer { * * @see org.springframework.security.acls.afterinvocation.Filterer#iterator() */ - @SuppressWarnings("unchecked") public Iterator iterator() { - return new ArrayIterator(list); + return new Iterator() { + private int index = 0; + + public boolean hasNext() { + return index < list.length; + } + + public T next() { + if (hasNext() == false) { + throw new NoSuchElementException(); + } + return list[index++]; + } + + public void remove() { + throw new UnsupportedOperationException(); + } + }; } /**