diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-01-08 22:44:05 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-01-08 22:44:05 +0100 |
commit | a8fcb9a0eadd03887fb8efd1602c00e71ed9b261 (patch) | |
tree | 2250c9aa2725ecb01704f040d428ff91ec0e5ea9 /container-search/src/main | |
parent | 76b84365234ce53cd6b2509947beed9ad2c28d4e (diff) |
Correct for some shortcutting in prefix manipulation in visitor
Diffstat (limited to 'container-search/src/main')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/query/profile/PrefixQueryProfileVisitor.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/PrefixQueryProfileVisitor.java b/container-search/src/main/java/com/yahoo/search/query/profile/PrefixQueryProfileVisitor.java index c6c2eba0ea7..6077e6ae7e0 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/PrefixQueryProfileVisitor.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/PrefixQueryProfileVisitor.java @@ -50,15 +50,17 @@ abstract class PrefixQueryProfileVisitor extends QueryProfileVisitor { @Override public final boolean enter(String name) { if (prefixComponentIndex++ < prefix.size()) return true; // we're in the given prefix, which should not be included in the name - currentPrefixes.push(currentPrefix); - currentPrefix = cache.computeIfAbsent(currentPrefix, __ -> new HashMap<>()).computeIfAbsent(name, currentPrefix::append); + if ( ! name.isEmpty()) { + currentPrefixes.push(currentPrefix); + currentPrefix = cache.computeIfAbsent(currentPrefix, __ -> new HashMap<>()).computeIfAbsent(name, currentPrefix::append); + } return true; } @Override public final void leave(String name) { if (--prefixComponentIndex < prefix.size()) return; // we're in the given prefix, which should not be included in the name - if ( ! name.isEmpty() && ! currentPrefix.isEmpty()) + if ( ! name.isEmpty()) currentPrefix = currentPrefixes.pop(); } |