fix StringIndexOutOfBounds when caret is in position 0
This commit is contained in:
@@ -175,21 +175,27 @@ public class FindValuesForQueryCompletion extends ExpressionVisitor<SortedSet<St
|
||||
this.queryCompletionIndex = queryCompletionIndex;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SortedSet<String> visit(final Property property) {
|
||||
@Override
|
||||
public SortedSet<String> visit(final Property property) {
|
||||
|
||||
final long start = System.nanoTime();
|
||||
final String field = property.getField();
|
||||
final String value = property.getValue().getValue();
|
||||
final long start = System.nanoTime();
|
||||
final String field = property.getField();
|
||||
final String value = property.getValue().getValue();
|
||||
|
||||
final SortedSet<String> allValuesForField = queryCompletionIndex.findAllValuesForField(dateRange, field);
|
||||
final SortedSet<String> allValuesForField = queryCompletionIndex.findAllValuesForField(dateRange, field);
|
||||
|
||||
final String valuePrefix = value.substring(0, value.indexOf(NewProposerParser.CARET_MARKER));
|
||||
final String valuePrefix;
|
||||
|
||||
final TreeSet<String> result = GloblikePattern.filterValues(allValuesForField, valuePrefix, TreeSet::new);
|
||||
METRIC_LOGGER.debug("{}: {}ms", property, (System.nanoTime() - start) / 1_000_000.0);
|
||||
return result;
|
||||
}
|
||||
if (value.indexOf(NewProposerParser.CARET_MARKER) >= 0) {
|
||||
valuePrefix = value.substring(0, value.indexOf(NewProposerParser.CARET_MARKER));
|
||||
} else {
|
||||
valuePrefix = value;
|
||||
}
|
||||
|
||||
final TreeSet<String> result = GloblikePattern.filterValues(allValuesForField, valuePrefix, TreeSet::new);
|
||||
METRIC_LOGGER.debug("{}: {}ms", property, (System.nanoTime() - start) / 1_000_000.0);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SortedSet<String> visit(final AndCaretExpression expression) {
|
||||
|
||||
Reference in New Issue
Block a user