Repository: samza Updated Branches: refs/heads/master 54c690e6f -> e204d298e
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 Project: http://git-wip-us.apache.org/repos/asf/samza/repo Commit: http://git-wip-us.apache.org/repos/asf/samza/commit/e204d298 Tree: http://git-wip-us.apache.org/repos/asf/samza/tree/e204d298 Diff: http://git-wip-us.apache.org/repos/asf/samza/diff/e204d298 Branch: refs/heads/master Commit: e204d298e84f549ecf4d8d9d642304502f046c29 Parents: 54c690e Author: xinyuiscool <[email protected]> Authored: Thu May 10 14:19:08 2018 -0700 Committer: xiliu <[email protected]> Committed: Thu May 10 14:19:08 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/e204d298/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/e204d298/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); }
