aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2020-08-18 15:28:57 +0200
committerGitHub <noreply@github.com>2020-08-18 15:28:57 +0200
commitb084901fe3461f620667b488624a817f0cada335 (patch)
treec1bd3da82a67de5843d78904c995c39dfeb3ad55 /container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java
parentae1ee22b8ecca06745a685c528f1fe053a7588e2 (diff)
parent60c1ca4e76e6d9154686511ad0a765fd722d4e9f (diff)
Merge pull request #14077 from vespa-engine/bratseth/exceptions
Skip logging only for IllegalInputException
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java32
1 files changed, 21 insertions, 11 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java b/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java
index 9924a05bb46..b9e0825ab03 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java
@@ -12,8 +12,14 @@ import com.yahoo.search.grouping.request.GroupingOperation;
import com.yahoo.search.query.Select;
import com.yahoo.search.searchchain.Execution;
import com.yahoo.search.searchchain.PhaseNames;
+import com.yahoo.processing.IllegalInputException;
-import java.util.*;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
/**
* This searcher is responsible for turning the "select" parameter into a corresponding {@link GroupingRequest}. It will
@@ -35,19 +41,23 @@ public class GroupingQueryParser extends Searcher {
@Override
public Result search(Query query, Execution execution) {
- String reqParam = query.properties().getString(PARAM_REQUEST);
- if (reqParam == null) {
+ try {
+ String reqParam = query.properties().getString(PARAM_REQUEST);
+ if (reqParam == null) return execution.search(query);
+
+ List<Continuation> continuations = getContinuations(query.properties().getString(PARAM_CONTINUE));
+ TimeZone zone = getTimeZone(query.properties().getString(PARAM_TIMEZONE, "utc"));
+ for (GroupingOperation op : GroupingOperation.fromStringAsList(reqParam)) {
+ GroupingRequest grpRequest = GroupingRequest.newInstance(query);
+ grpRequest.setRootOperation(op);
+ grpRequest.setTimeZone(zone);
+ grpRequest.continuations().addAll(continuations);
+ }
return execution.search(query);
}
- List<Continuation> continuations = getContinuations(query.properties().getString(PARAM_CONTINUE));
- TimeZone zone = getTimeZone(query.properties().getString(PARAM_TIMEZONE, "utc"));
- for (GroupingOperation op : GroupingOperation.fromStringAsList(reqParam)) {
- GroupingRequest grpRequest = GroupingRequest.newInstance(query);
- grpRequest.setRootOperation(op);
- grpRequest.setTimeZone(zone);
- grpRequest.continuations().addAll(continuations);
+ catch (IllegalArgumentException e) {
+ throw new IllegalInputException(e);
}
- return execution.search(query);
}
private List<Continuation> getContinuations(String param) {