Repository: samza
Updated Branches:
  refs/heads/0.14.1 1e1330cef -> b2ca67ea1


Remove the iterable interface from KeyValueSnapshot

The iterable interface makes it hard for the users to close it after using.

Author: xinyuiscool <[email protected]>

Reviewers: Prateek M <[email protected]>

Closes #516 from xinyuiscool/kv-snapshot

(cherry picked from commit e204d298e84f549ecf4d8d9d642304502f046c29)
Signed-off-by: xiliu <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/samza/repo
Commit: http://git-wip-us.apache.org/repos/asf/samza/commit/b2ca67ea
Tree: http://git-wip-us.apache.org/repos/asf/samza/tree/b2ca67ea
Diff: http://git-wip-us.apache.org/repos/asf/samza/diff/b2ca67ea

Branch: refs/heads/0.14.1
Commit: b2ca67ea19becac1ea8c7a73d544438e75f94784
Parents: 1e1330c
Author: xinyuiscool <[email protected]>
Authored: Thu May 10 14:19:08 2018 -0700
Committer: xiliu <[email protected]>
Committed: Thu May 10 14:19:22 2018 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/samza/storage/kv/KeyValueSnapshot.java | 2 +-
 .../samza/storage/kv/inmemory/TestInMemoryKeyValueStore.java    | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/samza/blob/b2ca67ea/samza-api/src/main/java/org/apache/samza/storage/kv/KeyValueSnapshot.java
----------------------------------------------------------------------
diff --git 
a/samza-api/src/main/java/org/apache/samza/storage/kv/KeyValueSnapshot.java 
b/samza-api/src/main/java/org/apache/samza/storage/kv/KeyValueSnapshot.java
index 52cb7fa..850d1d9 100644
--- a/samza-api/src/main/java/org/apache/samza/storage/kv/KeyValueSnapshot.java
+++ b/samza-api/src/main/java/org/apache/samza/storage/kv/KeyValueSnapshot.java
@@ -26,7 +26,7 @@ package org.apache.samza.storage.kv;
  * @param <K> key type
  * @param <V> value type
  */
-public interface KeyValueSnapshot<K, V> extends Iterable<Entry<K, V>> {
+public interface KeyValueSnapshot<K, V> {
   /**
    * Creates a new iterator for this snapshot. The iterator MUST be
    * closed after its execution by invoking {@link KeyValueIterator#close}.

http://git-wip-us.apache.org/repos/asf/samza/blob/b2ca67ea/samza-kv-inmemory/src/test/java/org/apache/samza/storage/kv/inmemory/TestInMemoryKeyValueStore.java
----------------------------------------------------------------------
diff --git 
a/samza-kv-inmemory/src/test/java/org/apache/samza/storage/kv/inmemory/TestInMemoryKeyValueStore.java
 
b/samza-kv-inmemory/src/test/java/org/apache/samza/storage/kv/inmemory/TestInMemoryKeyValueStore.java
index 7ee588c..5919690 100644
--- 
a/samza-kv-inmemory/src/test/java/org/apache/samza/storage/kv/inmemory/TestInMemoryKeyValueStore.java
+++ 
b/samza-kv-inmemory/src/test/java/org/apache/samza/storage/kv/inmemory/TestInMemoryKeyValueStore.java
@@ -23,6 +23,7 @@ import com.google.common.collect.Iterators;
 import com.google.common.primitives.Ints;
 import org.apache.samza.metrics.MetricsRegistryMap;
 import org.apache.samza.storage.kv.Entry;
+import org.apache.samza.storage.kv.KeyValueIterator;
 import org.apache.samza.storage.kv.KeyValueSnapshot;
 import org.apache.samza.storage.kv.KeyValueStoreMetrics;
 import org.junit.Test;
@@ -57,7 +58,9 @@ public class TestInMemoryKeyValueStore {
     assertTrue(Iterators.size(snapshot.iterator()) == 100);
 
     List<Integer> keys = new ArrayList<>();
-    for (Entry<byte[], byte[]> entry : snapshot) {
+    KeyValueIterator<byte[], byte[]> iter = snapshot.iterator();
+    while (iter.hasNext()) {
+      Entry<byte[], byte[]> entry = iter.next();
       int key = Ints.fromByteArray(Arrays.copyOfRange(entry.getKey(), 
prefix.getBytes().length, entry.getKey().length));
       keys.add(key);
     }

Reply via email to