diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-03-30 10:40:57 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-03-30 10:40:57 +0200 |
commit | 4667008acc2054fab15525198d7833459c2a1c63 (patch) | |
tree | 4a2b26b22bf074a8ce1d1a383574858afd6d166c | |
parent | e7d6baa6981edceff032b2d685d70b76c476828e (diff) |
Use the summary decode policy to select Inspector implementations.
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java index 8ffeecd71a8..2bdafecfaba 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java @@ -21,6 +21,7 @@ import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.result.Hit; import com.yahoo.slime.ArrayTraverser; import com.yahoo.slime.BinaryFormat; +import com.yahoo.slime.BinaryView; import java.util.Iterator; import java.util.List; @@ -49,6 +50,7 @@ public class RpcProtobufFillInvoker extends FillInvoker { private final boolean summaryNeedsQuery; private final String serverId; private final CompressPayload compressor; + private final DecodePolicy decodePolicy; private BlockingQueue<Pair<Client.ResponseOrError<ProtobufResponse>, List<FastHit>>> responses; @@ -65,6 +67,7 @@ public class RpcProtobufFillInvoker extends FillInvoker { this.serverId = serverId; this.summaryNeedsQuery = summaryNeedsQuery; this.compressor = compressor; + this.decodePolicy = decodePolicy; } @Override @@ -214,7 +217,9 @@ public class RpcProtobufFillInvoker extends FillInvoker { private int fill(Result result, List<FastHit> hits, String summaryClass, byte[] payload) { try { var protobuf = SearchProtocol.DocsumReply.parseFrom(payload); - var root = BinaryFormat.decode(protobuf.getSlimeSummaries().toByteArray()).get(); + var root = (decodePolicy == DecodePolicy.ONDEMAND) + ? BinaryView.inspect(protobuf.getSlimeSummaries().toByteArray()) + : BinaryFormat.decode(protobuf.getSlimeSummaries().toByteArray()).get(); var errors = root.field("errors"); boolean hasErrors = errors.valid() && (errors.entries() > 0); if (hasErrors) { |