You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by sr...@apache.org on 2008/07/10 04:46:36 UTC

svn commit: r675420 - /lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/IteratorIterable.java

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 {@link IteratorIterable} for an {@link 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