diff --git a/android/guava/src/com/google/common/collect/Iterables.java b/android/guava/src/com/google/common/collect/Iterables.java index 585ce6bed0be..afb6dfc43450 100644 --- a/android/guava/src/com/google/common/collect/Iterables.java +++ b/android/guava/src/com/google/common/collect/Iterables.java @@ -777,7 +777,9 @@ public Iterator iterator() { checkNotNull(iterable); return (iterable instanceof List) ? ((List) iterable).get(position) - : Iterators.get(iterable.iterator(), position); + : ((iterable instanceof ImmutableCollection) + ? ((ImmutableCollection)iterable).asList().get(position) + : Iterators.get(iterable.iterator(), position)); } /** diff --git a/guava/src/com/google/common/collect/Iterables.java b/guava/src/com/google/common/collect/Iterables.java index 79b908d45959..b4b5e583af48 100644 --- a/guava/src/com/google/common/collect/Iterables.java +++ b/guava/src/com/google/common/collect/Iterables.java @@ -767,7 +767,9 @@ public Spliterator spliterator() { checkNotNull(iterable); return (iterable instanceof List) ? ((List) iterable).get(position) - : Iterators.get(iterable.iterator(), position); + : ((iterable instanceof ImmutableCollection) + ? ((ImmutableCollection)iterable).asList().get(position) + : Iterators.get(iterable.iterator(), position)); } /**