summaryrefslogtreecommitdiffstats
path: root/container-search/src/main
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-01-08 22:44:05 +0100
committerJon Marius Venstad <venstad@gmail.com>2021-01-08 22:44:05 +0100
commita8fcb9a0eadd03887fb8efd1602c00e71ed9b261 (patch)
tree2250c9aa2725ecb01704f040d428ff91ec0e5ea9 /container-search/src/main
parent76b84365234ce53cd6b2509947beed9ad2c28d4e (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.java8
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();
}