summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@vespa.ai>2023-11-21 10:37:23 +0100
committerJon Bratseth <bratseth@vespa.ai>2023-11-21 10:37:23 +0100
commit362551e5872cfbdf83cfdbc7462625bae3dc0ac3 (patch)
treea40f2fc7ed9351a5bd3d900f1d939775c37c4d14 /container-search
parentccc4d65ca958036b37a4fbbbcca443f2a873077f (diff)
Classify errors correctly
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/vespa/streamingvisitors/StreamingSearcher.java19
-rw-r--r--container-search/src/test/java/com/yahoo/vespa/streamingvisitors/StreamingSearcherTestCase.java8
2 files changed, 12 insertions, 15 deletions
diff --git a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/StreamingSearcher.java b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/StreamingSearcher.java
index 33f739e0cdb..3fb577a5ff3 100644
--- a/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/StreamingSearcher.java
+++ b/container-search/src/main/java/com/yahoo/vespa/streamingvisitors/StreamingSearcher.java
@@ -136,10 +136,10 @@ public class StreamingSearcher extends VespaBackEndSearcher {
initializeMissingQueryFields(query);
if (documentSelectionQueryParameterCount(query) != 1) {
- return new Result(query, ErrorMessage.createBackendCommunicationError("Streaming search needs one and " +
- "only one of these query parameters to be set: " +
- "streaming.userid, streaming.groupname, or " +
- "streaming.selection"));
+ return new Result(query, ErrorMessage.createIllegalQuery("Streaming search needs one and " +
+ "only one of these query parameters to be set: " +
+ "streaming.userid, streaming.groupname, or " +
+ "streaming.selection"));
}
if (query.getTrace().isTraceable(4))
query.trace("Routing to search cluster " + getSearchClusterName() + " and document type " + documentType, 4);
@@ -150,11 +150,11 @@ public class StreamingSearcher extends VespaBackEndSearcher {
try {
visitor.doSearch();
} catch (ParseException e) {
- return new Result(query, ErrorMessage.createBackendCommunicationError("Failed to parse document selection string: " +
- e.getMessage() + "'."));
+ return new Result(query, ErrorMessage.createInvalidQueryParameter("Failed to parse document selection string: " +
+ e.getMessage()));
} catch (TokenMgrException e) {
- return new Result(query, ErrorMessage.createBackendCommunicationError("Failed to tokenize document selection string: " +
- e.getMessage() + "'."));
+ return new Result(query, ErrorMessage.createInvalidQueryParameter("Failed to tokenize document selection string: " +
+ e.getMessage()));
} catch (TimeoutException e) {
double elapsedMillis = durationInMillisFromNanoTime(timeStartedNanos);
if ((effectiveTraceLevel > 0) && timeoutBadEnoughToBeReported(query, elapsedMillis)) {
@@ -163,10 +163,9 @@ public class StreamingSearcher extends VespaBackEndSearcher {
query, elapsedMillis / 1000.0)));
}
return new Result(query, ErrorMessage.createTimeout(e.getMessage()));
- } catch (InterruptedException | IllegalArgumentException e) {
+ } catch (InterruptedException e) {
return new Result(query, ErrorMessage.createBackendCommunicationError(e.getMessage()));
}
-
return buildResultFromCompletedVisitor(query, visitor);
}
diff --git a/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/StreamingSearcherTestCase.java b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/StreamingSearcherTestCase.java
index e4d4d476429..dd5e1c71b16 100644
--- a/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/StreamingSearcherTestCase.java
+++ b/container-search/src/test/java/com/yahoo/vespa/streamingvisitors/StreamingSearcherTestCase.java
@@ -244,17 +244,15 @@ public class StreamingSearcherTestCase {
// Magic query values are used to trigger specific behaviors from mock visitor.
checkError(searcher, "/?query=noselection",
- "Backend communication error", "Streaming search needs one and only one");
+ "Illegal query", "Streaming search needs one and only one");
checkError(searcher, "/?streaming.userid=1&query=parseexception",
- "Backend communication error", "Failed to parse document selection string");
+ "Invalid query parameter", "Failed to parse document selection string");
checkError(searcher, "/?streaming.userid=1&query=tokenizeexception",
- "Backend communication error", "Failed to tokenize document selection string");
+ "Invalid query parameter", "Failed to tokenize document selection string");
checkError(searcher, "/?streaming.userid=1&query=interruptedexception",
"Backend communication error", "Interrupted");
checkError(searcher, "/?streaming.userid=1&query=timeoutexception",
"Timed out", "Timed out");
- checkError(searcher, "/?streaming.userid=1&query=illegalargumentexception",
- "Backend communication error", "Illegal argument");
checkError(searcher, "/?streaming.userid=1&query=nosummary",
"Backend communication error", "Did not find summary for hit with document id");
checkError(searcher, "/?streaming.userid=1&query=nosummarytofill",