Author: srowen
Date: Wed Jul 9 19:46:36 2008
New Revision: 675420
URL: http://svn.apache.org/viewvc?rev=675420&view=rev
Log:
Prevent iterator() from being called twice
Modified:
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IteratorIterable.java
Modified:
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IteratorIterable.java
URL:
http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IteratorIterable.java?rev=675420&r1=675419&r2=675420&view=diff
==============================================================================
---
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IteratorIterable.java
(original)
+++
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IteratorIterable.java
Wed Jul 9 19:46:36 2008
@@ -25,7 +25,7 @@
*/
public final class IteratorIterable<T> implements Iterable<T> {
- private final Iterator<T> iterator;
+ private Iterator<T> iterator;
/**
* <p>Constructs an [EMAIL PROTECTED] IteratorIterable} for an [EMAIL
PROTECTED] Iterator}.</p>
@@ -40,7 +40,12 @@
}
public Iterator<T> iterator() {
- return iterator;
+ if (iterator == null) {
+ throw new IllegalStateException("iterator() has already been called");
+ }
+ Iterator<T> result = iterator;
+ iterator = null;
+ return result;
}
@Override