From edb148089d93036e57ea40d10c1b4e4ffc0899f4 Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Tue, 28 Jun 2022 11:13:51 +0200 Subject: Ensure JsonRenderer is only used once --- .../search/rendering/JsonRendererTestCase.java | 29 +++++++++++----------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'container-search') 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 83d04c4cc6d..7ddc087feb7 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 @@ -116,8 +116,10 @@ public class JsonRendererTestCase { @After public void deconstructClone() { - renderer.deconstruct(); - renderer = null; + if (renderer != null) { + renderer.deconstruct(); + renderer = null; + } } @AfterClass @@ -436,10 +438,7 @@ public class JsonRendererTestCase { e2.search(subQuery); subQuery.trace("yellow", 1); q.trace("marker", 1); - ByteArrayOutputStream bs = new ByteArrayOutputStream(); - CompletableFuture f = renderer.renderResponse(bs, r, execution, null); - assertTrue(f.get()); - String summary = Utf8.toString(bs.toByteArray()); + String summary = render(execution, r); assertEqualJson(expected, summary); } @@ -478,10 +477,7 @@ public class JsonRendererTestCase { execution.search(q); new Execution(new Chain<>(), execution.context()); - ByteArrayOutputStream bs = new ByteArrayOutputStream(); - CompletableFuture f = renderer.renderResponse(bs, r, execution, null); - assertTrue(f.get()); - String summary = Utf8.toString(bs.toByteArray()); + String summary = render(execution, r); ObjectMapper m = new ObjectMapper(); Map exp = m.readValue(expected, Map.class); @@ -1478,10 +1474,15 @@ public class JsonRendererTestCase { } private String render(Execution execution, Result r) throws InterruptedException, ExecutionException { - ByteArrayOutputStream bs = new ByteArrayOutputStream(); - CompletableFuture f = renderer.renderResponse(bs, r, execution, null); - assertTrue(f.get()); - return Utf8.toString(bs.toByteArray()); + if (renderer == null) createClone(); + try { + ByteArrayOutputStream bs = new ByteArrayOutputStream(); + CompletableFuture f = renderer.renderResponse(bs, r, execution, null); + assertTrue(f.get()); + return Utf8.toString(bs.toByteArray()); + } finally { + deconstructClone(); + } } @SuppressWarnings("unchecked") -- cgit v1.2.3