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


Reply via email to