From c42c515d67cc07eac90ef07a9c3ef113441810b9 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Wed, 6 Mar 2019 21:06:00 +0100 Subject: Put all backend traces in an array. --- .../com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java | 7 +++++-- .../com/yahoo/search/rendering/JsonRendererTestCase.java | 12 ++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'container-search') diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java index 55df050e915..f4d98b73a0d 100644 --- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java @@ -2,6 +2,7 @@ package com.yahoo.prelude.fastsearch; import com.yahoo.collections.TinyIdentitySet; +import com.yahoo.data.access.simple.Value; import com.yahoo.data.access.slime.SlimeAdapter; import com.yahoo.fs4.DocsumPacket; import com.yahoo.fs4.DocumentInfo; @@ -418,14 +419,16 @@ public abstract class VespaBackEndSearcher extends PingableSearcher { private void addBackendTrace(Query query, QueryResultPacket resultPacket) { if (resultPacket.propsArray == null) return; + Value.ArrayValue traces = new Value.ArrayValue(); for (FS4Properties properties : resultPacket.propsArray) { if ( ! properties.getName().startsWith("trace")) continue; for (FS4Properties.Entry entry : properties.getEntries()) { if (!entry.key.equals("slime")) continue; - SlimeAdapter adapter = new SlimeAdapter(BinaryFormat.decode(entry.getValue()).get()); - query.trace(adapter, query.getTraceLevel()); + traces.add(new SlimeAdapter(BinaryFormat.decode(entry.getValue()).get())); + } } + query.trace(traces, query.getTraceLevel()); } void addMetaInfo(Query query, QueryPacketData queryPacketData, QueryResultPacket resultPacket, Result result) { diff --git a/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java b/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java index 012cf0f351b..9fb2e627e9c 100644 --- a/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java @@ -255,7 +255,10 @@ public class JsonRendererTestCase { + " {" + " \"children\": [" + " {" - + " \"message\": { \"colour\": \"yellow\"}" + + " \"message\": [" + + " { \"colour\": \"yellow\"}," + + " { \"colour\": \"green\"}" + + " ]" + " }" + " ]" + " }," @@ -277,9 +280,14 @@ public class JsonRendererTestCase { Execution e2 = new Execution(new Chain(), execution.context()); Query subQuery = new Query("/?query=b&tracelevel=1"); e2.search(subQuery); + Value.ArrayValue access = new Value.ArrayValue(); Slime slime = new Slime(); slime.setObject().setString("colour","yellow"); - subQuery.trace(new SlimeAdapter(slime.get()), 1); + access.add(new SlimeAdapter(slime.get())); + slime = new Slime(); + slime.setObject().setString("colour","green"); + access.add(new SlimeAdapter(slime.get())); + subQuery.trace(access, 1); q.trace("marker", 1); String summary = render(execution, r); assertEqualJson(expected, summary); -- cgit v1.2.3