Description
Sample code snippet:
_realtimeStateStore.put("foo", new HashMap()); KeyValueIterator<String, Map<String, State>> realtimeIterator = _realtimeStateStore.all(); while (realtimeIterator.hasNext()) { Entry<String, Map<String, State>> entry = realtimeIterator.next(); System.out.println("read from leveldb: " + entry.getKey() + "=>" + entry.getValue()); } realtimeIterator.close(); _realtimeStateStore.delete("foo"); KeyValueIterator<String, Map<String, State>> iter = _realtimeStateStore.all(); while (iter.hasNext()) { Entry<String, Map<String, State>> entry = iter.next(); System.out.println("read from leveldb: " + entry.getKey() + "=>" + entry.getValue()); } iter.close();
Output:
read from leveldb: foo=>{}
read from leveldb: foo=>null
I would expect that the kv would remove both the key & value on delete so that subsequent iterators will not return keys that have been deleted.