public HollowOrdinalIterator findKeysWithPrefix(String prefix) {
        TST current;
        HollowOrdinalIterator it;
        do {
            current = prefixIndexVolatile;
            it = current.findKeysWithPrefix(prefix);
        } while (current != this.prefixIndexVolatile);
        return it;
    }
@Test
    public void testFindKeysWithPrefix() throws Exception {
        for (Movie movie : getSimpleList()) {
            objectMapper.add(movie);
        }
        StateEngineRoundTripper.roundTripSnapshot(writeStateEngine, readStateEngine);
        HollowTokenizedPrefixIndex tokenizedPrefixIndex = new HollowTokenizedPrefixIndex(readStateEngine, "SimpleMovie", "name.value", false);

        Set<Integer> ordinals = toSet(tokenizedPrefixIndex.findKeysWithPrefix("th"));
        Assert.assertTrue(ordinals.size() == 3);

        ordinals = toSet(tokenizedPrefixIndex.findKeysWithPrefix("matrix"));
        Assert.assertTrue(ordinals.size() == 3);

        ordinals = toSet(tokenizedPrefixIndex.findKeysWithPrefix("re"));
        Assert.assertTrue(ordinals.size() == 2);

        ordinals = toSet(tokenizedPrefixIndex.findKeysWithPrefix("the "));// note the whitespace in findKeysWithPrefix string.
        // expected result ordinals size is 0, since entire movie is not indexed. movie name is split by whitespace.
        Assert.assertTrue(ordinals.size() == 0);

        ordinals = toSet(tokenizedPrefixIndex.findKeysWithPrefix(""));
        Assert.assertTrue(ordinals.size() == 6);
    }