Repository: groovy Updated Branches: refs/heads/master 613822f2b -> 668c62858
GROOVY-7629: ObjectRange methods duplicate functionality and should not rely on size (revert incomplete attempt to make iterator method thread-safe) Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/668c6285 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/668c6285 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/668c6285 Branch: refs/heads/master Commit: 668c628588c3e66d258266e5bbf07c7010b38284 Parents: 613822f Author: paulk <pa...@asert.com.au> Authored: Sun Jul 31 12:03:21 2016 +1000 Committer: paulk <pa...@asert.com.au> Committed: Sun Jul 31 12:03:21 2016 +1000 ---------------------------------------------------------------------- src/main/groovy/lang/ObjectRange.java | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/668c6285/src/main/groovy/lang/ObjectRange.java ---------------------------------------------------------------------- diff --git a/src/main/groovy/lang/ObjectRange.java b/src/main/groovy/lang/ObjectRange.java index d6e0f4e..8741c9b 100644 --- a/src/main/groovy/lang/ObjectRange.java +++ b/src/main/groovy/lang/ObjectRange.java @@ -374,8 +374,9 @@ public class ObjectRange extends AbstractList<Comparable> implements Range<Compa } /** - * iterates over all values and returns true if one value matches. - * Also see containsWithinBounds. + * Iterates over all values and returns true if one value matches. + * + * @see #containsWithinBounds(Object) */ @Override public boolean contains(Object value) { @@ -406,28 +407,11 @@ public class ObjectRange extends AbstractList<Comparable> implements Range<Compa @Override public Iterator<Comparable> iterator() { // non thread-safe iterator - final Iterator<Comparable> innerIterator = new StepIterator(this, 1); - return new Iterator<Comparable>() { - @Override - public synchronized boolean hasNext() { - return innerIterator.hasNext(); - } - - @Override - public synchronized Comparable next() { - return innerIterator.next(); - } - - @Override - public synchronized void remove() { - innerIterator.remove(); - } - }; + return new StepIterator(this, 1); } /** - * convenience class to serve in other methods. - * It's not thread-safe, and lazily produces the next element only on calls of hasNext() or next() + * Non-thread-safe iterator which lazily produces the next element only on calls of hasNext() or next() */ private static class StepIterator implements Iterator<Comparable> { // actual step, can be +1 when desired step is -1 and direction is from high to low