aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2021-10-06 14:35:43 +0000
committerArne H Juul <arnej@yahooinc.com>2021-10-06 14:35:43 +0000
commitd69bed9cff9e95c6c4422a32ad9708310337715b (patch)
tree22c72fc77bc7183d0c65e7290b0bb0c0329ac748 /container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
parent87c26111db1a8071ad58a0d78fc455a3e765a3fa (diff)
wire error received in protobuf message
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
index 250524fadf2..4379da5f98b 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
@@ -25,6 +25,7 @@ import com.yahoo.search.query.Ranking;
import com.yahoo.search.query.Sorting;
import com.yahoo.search.query.Sorting.Order;
import com.yahoo.search.result.Coverage;
+import com.yahoo.search.result.ErrorMessage;
import com.yahoo.searchlib.aggregation.Grouping;
import com.yahoo.slime.BinaryFormat;
import com.yahoo.vespa.objects.BufferSerializer;
@@ -42,6 +43,12 @@ public class ProtobufSerialization {
return convertFromQuery(query, hits, serverId).toByteArray();
}
+ private static void convertSearchReplyErrors(Result target, List<SearchProtocol.Error> errors) {
+ for (var error : errors) {
+ target.hits().addError(ErrorMessage.createSearchReplyError(error.getMessage()));
+ }
+ }
+
private static SearchProtocol.SearchRequest convertFromQuery(Query query, int hits, String serverId) {
var builder = SearchProtocol.SearchRequest.newBuilder().setHits(hits).setOffset(query.getOffset())
.setTimeout((int) query.getTimeLeft());
@@ -196,6 +203,8 @@ public class ProtobufSerialization {
result.getResult().setTotalHitCount(protobuf.getTotalHitCount());
result.getResult().setCoverage(convertToCoverage(protobuf));
+ convertSearchReplyErrors(result.getResult(), protobuf.getErrorsList());
+
var haveGrouping = ! protobuf.getGroupingBlob().isEmpty();
if (haveGrouping) {
BufferSerializer buf = new BufferSerializer(new GrowableByteBuffer(protobuf.getGroupingBlob().asReadOnlyByteBuffer()));