Skip to content

Commit a8ade65

Browse files
committed
Update ApacheHttpAsync, Client, SpringWebfluxHttp
1 parent 0e39440 commit a8ade65

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

dd-java-agent/instrumentation/apache-httpasyncclient-4/src/main/java/datadog/trace/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientDecorator.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
55
import java.net.URI;
66
import java.net.URISyntaxException;
7+
import java.util.ArrayList;
8+
import java.util.List;
79
import org.apache.http.Header;
810
import org.apache.http.HttpResponse;
911
import org.apache.http.StatusLine;
@@ -55,9 +57,13 @@ protected int status(final HttpContext context) {
5557

5658
@Override
5759
protected String getRequestHeader(HttpUriRequest request, String headerName) {
58-
Header header = request.getFirstHeader(headerName);
59-
if (header != null) {
60-
return header.getValue();
60+
Header[] headers = request.getHeaders(headerName);
61+
List<String> values = new ArrayList<>();
62+
if (null != headers) {
63+
for (Header header : headers) {
64+
values.add(header.getValue());
65+
}
66+
return String.join(", ", values);
6167
}
6268
return null;
6369
}
@@ -66,9 +72,13 @@ protected String getRequestHeader(HttpUriRequest request, String headerName) {
6672
protected String getResponseHeader(HttpContext context, String headerName) {
6773
final Object responseObject = context.getAttribute(HttpCoreContext.HTTP_RESPONSE);
6874
if (responseObject instanceof HttpResponse) {
69-
Header header = ((HttpResponse) responseObject).getFirstHeader(headerName);
70-
if (header != null) {
71-
return header.getValue();
75+
Header[] headers = ((HttpResponse) responseObject).getHeaders(headerName);
76+
List<String> values = new ArrayList<>();
77+
if (null != headers) {
78+
for (Header header : headers) {
79+
values.add(header.getValue());
80+
}
81+
return String.join(", ", values);
7282
}
7383
}
7484
return null;

dd-java-agent/instrumentation/grizzly-client-1.9/src/main/java/datadog/trace/instrumentation/grizzly/client/ClientDecorator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ protected int status(final Response response) {
4242

4343
@Override
4444
protected String getRequestHeader(Request request, String headerName) {
45-
return request.getHeaders().getFirstValue(headerName);
45+
return request.getHeaders().getJoinedValue(headerName, ", ");
4646
}
4747

4848
@Override

dd-java-agent/instrumentation/spring-webflux-5/src/main/java/datadog/trace/instrumentation/springwebflux/client/SpringWebfluxHttpClientDecorator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ protected int status(final ClientResponse httpResponse) {
5353

5454
@Override
5555
protected String getRequestHeader(ClientRequest request, String headerName) {
56-
return request.headers().getFirst(headerName);
56+
return String.join(",", request.headers().getValuesAsList(headerName));
5757
}
5858

5959
@Override
6060
protected String getResponseHeader(ClientResponse response, String headerName) {
61-
return response.headers().asHttpHeaders().getFirst(headerName);
61+
return String.join(", ", response.headers().asHttpHeaders().getValuesAsList(headerName));
6262
}
6363
}

0 commit comments

Comments
 (0)