From 3310801f6906ec5242cbb5e6ba5ecbd0a59425ba Mon Sep 17 00:00:00 2001 From: John Bedell Date: Thu, 15 Feb 2024 12:44:07 -0500 Subject: [PATCH] Changes for the httpclient-4.0 instrumentation module. --- .../httpclient40/InboundWrapper.java | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/instrumentation/httpclient-4.0/src/main/java/com/nr/agent/instrumentation/httpclient40/InboundWrapper.java b/instrumentation/httpclient-4.0/src/main/java/com/nr/agent/instrumentation/httpclient40/InboundWrapper.java index 25b3ea1aec..e769ffd633 100644 --- a/instrumentation/httpclient-4.0/src/main/java/com/nr/agent/instrumentation/httpclient40/InboundWrapper.java +++ b/instrumentation/httpclient-4.0/src/main/java/com/nr/agent/instrumentation/httpclient40/InboundWrapper.java @@ -12,36 +12,38 @@ import org.apache.http.Header; import org.apache.http.HttpResponse; -import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; public class InboundWrapper extends ExtendedInboundHeaders { - private final HttpResponse delegate; + private final Header[] headers; public InboundWrapper(HttpResponse response) { - this.delegate = response; + this.headers = response == null ? null : response.getAllHeaders(); } @Override public String getHeader(String name) { - Header[] headers = delegate.getHeaders(name); - if (headers.length > 0) { - return headers[0].getValue(); - } - return null; + if (headers == null || name == null) return null; + + return Arrays.stream(headers) + .filter(h -> name.equals(h.getName())) + .map(h -> h.getValue()) + .findFirst() + .orElse(null); } @Override public List getHeaders(String name) { - Header[] headers = delegate.getHeaders(name); - if (headers.length > 0) { - List result = new ArrayList<>(headers.length); - for (Header header : headers) { - result.add(header.getValue()); - } - return result; - } - return null; + if (headers == null || name == null) return null; + + List result = Arrays.stream(headers) + .filter(h -> name.equals(h.getName())) + .map(h -> h.getValue()) + .collect(Collectors.toList()); + + return result.isEmpty() ? null : result; } @Override