@Test void testNullHeaders() throws IOException { Transaction transaction = new Transaction(mock(ElasticApmTracer.class)); transaction.getContext().getRequest().addHeader("foo", (String) null); transaction.getContext().getRequest().addHeader("baz", (Enumeration<String>) null); transaction.getContext().getRequest().getHeaders().add("bar", null); JsonNode jsonNode = objectMapper.readTree(serializer.toJsonString(transaction)); System.out.println(jsonNode); // calling addHeader with a null value ignores the header assertThat(jsonNode.get("context").get("request").get("headers").get("foo")).isNull(); assertThat(jsonNode.get("context").get("request").get("headers").get("baz")).isNull(); // should a null value sneak in, it should not break assertThat(jsonNode.get("context").get("request").get("headers").get("bar").isNull()).isTrue(); }
.withEncrypted(true) .withRemoteAddress("12.53.12.1"); request.addHeader("user-agent", "Mozilla Chrome Edge"); request.addHeader("content-type", "text/html"); request.addHeader("cookie", "c1=v1; c2=v2"); request.addHeader("some-other-header", "foo"); request.addHeader("array", "foo, bar, baz"); request.getCookies().add("c1", "v1"); request.getCookies().add("c2", "v2");
.withEncrypted(true) .withRemoteAddress("12.53.12.1"); request.addHeader("user-agent", "Mozilla Chrome Edge"); request.addHeader("content-type", "text/html"); request.addHeader("cookie", "c1=v1; c2=v2"); request.addHeader("some-other-header", "foo"); request.addHeader("array", "foo, bar, baz"); request.getCookies().add("c1", "v1"); request.getCookies().add("c2", "v2");
private void innerRecordExceptionWithTrace(boolean sampled) { reporter.reset(); Transaction transaction = tracerImpl.startTransaction(TraceContext.asRoot(), null, ConstantSampler.of(sampled), -1); transaction.withType("test-type"); try (Scope scope = transaction.activateInScope()) { transaction.getContext().getRequest() .addHeader("foo", "bar") .withMethod("GET") .getUrl() .withPathname("/foo"); tracerImpl.currentTransaction().captureException(new Exception("from transaction")); ErrorCapture error = validateError(transaction, sampled, transaction); assertThat(error.getContext().getRequest().getHeaders().get("foo")).isEqualTo("bar"); reporter.reset(); Span span = transaction.createSpan().activate(); span.captureException(new Exception("from span")); validateError(span, sampled, transaction); span.deactivate().end(); transaction.end(); } }