diff options
author | Jon Bratseth <bratseth@vespa.ai> | 2023-11-21 10:37:23 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@vespa.ai> | 2023-11-21 10:37:23 +0100 |
commit | 362551e5872cfbdf83cfdbc7462625bae3dc0ac3 (patch) | |
tree | a40f2fc7ed9351a5bd3d900f1d939775c37c4d14 /container-search | |
parent | ccc4d65ca958036b37a4fbbbcca443f2a873077f (diff) |
Classify errors correctly
Diffstat (limited to 'container-search')
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", |