Skip to content

Commit f54d547

Browse files
committed
Update Apache, Synapse, v2/AwsSdk
1 parent c4bc3cc commit f54d547

File tree

6 files changed

+73
-25
lines changed

6 files changed

+73
-25
lines changed

dd-java-agent/instrumentation/apache-httpclient-4/src/main/java/datadog/trace/instrumentation/apachehttpclient/ApacheHttpClientDecorator.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString;
44
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
55
import java.net.URI;
6+
import java.util.ArrayList;
7+
import java.util.List;
68
import org.apache.http.Header;
79
import org.apache.http.HttpResponse;
810
import org.apache.http.client.methods.HttpUriRequest;
@@ -46,18 +48,26 @@ protected int status(final HttpResponse httpResponse) {
4648

4749
@Override
4850
protected String getRequestHeader(HttpUriRequest request, String headerName) {
49-
Header header = request.getFirstHeader(headerName);
50-
if (null != header) {
51-
return header.getValue();
51+
Header[] headers = request.getHeaders(headerName);
52+
List<String> values = new ArrayList<>();
53+
if (null != headers) {
54+
for (Header header : headers) {
55+
values.add(header.getValue());
56+
}
57+
return String.join(", ", values);
5258
}
5359
return null;
5460
}
5561

5662
@Override
5763
protected String getResponseHeader(HttpResponse response, String headerName) {
58-
Header header = response.getFirstHeader(headerName);
59-
if (null != header) {
60-
return header.getValue();
64+
Header[] headers = response.getHeaders(headerName);
65+
List<String> values = new ArrayList<>();
66+
if (null != headers) {
67+
for (Header header : headers) {
68+
values.add(header.getValue());
69+
}
70+
return String.join(", ", values);
6171
}
6272
return null;
6373
}

dd-java-agent/instrumentation/apache-httpclient-5/src/main/java/datadog/trace/instrumentation/apachehttpclient5/ApacheHttpClientDecorator.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.hc.core5.http.Header;
810
import org.apache.hc.core5.http.HttpRequest;
911
import org.apache.hc.core5.http.HttpResponse;
@@ -49,18 +51,26 @@ protected int status(final HttpResponse httpResponse) {
4951

5052
@Override
5153
protected String getRequestHeader(HttpRequest request, String headerName) {
52-
Header header = request.getFirstHeader(headerName);
53-
if (null != header) {
54-
return header.getValue();
54+
Header[] headers = request.getHeaders(headerName);
55+
List<String> values = new ArrayList<>();
56+
if (null != headers) {
57+
for (Header header : headers) {
58+
values.add(header.getValue());
59+
}
60+
return String.join(", ", values);
5561
}
5662
return null;
5763
}
5864

5965
@Override
6066
protected String getResponseHeader(HttpResponse response, String headerName) {
61-
Header header = response.getFirstHeader(headerName);
62-
if (null != header) {
63-
return header.getValue();
67+
Header[] headers = response.getHeaders(headerName);
68+
List<String> values = new ArrayList<>();
69+
if (null != headers) {
70+
for (Header header : headers) {
71+
values.add(header.getValue());
72+
}
73+
return String.join(", ", values);
6474
}
6575
return null;
6676
}

dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsSdkClientDecorator.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -450,12 +450,20 @@ public void set(SdkHttpRequest.Builder carrier, String key, String value) {
450450

451451
@Override
452452
protected String getRequestHeader(SdkHttpRequest request, String headerName) {
453-
return request.firstMatchingHeader(headerName).orElse(null);
453+
List<String> headers = request.headers().get(headerName);
454+
if (headers != null) {
455+
return String.join(", ", headers);
456+
}
457+
return null;
454458
}
455459

456460
@Override
457461
protected String getResponseHeader(SdkHttpResponse response, String headerName) {
458-
return response.firstMatchingHeader(headerName).orElse(null);
462+
List<String> headers = response.headers().get(headerName);
463+
if (headers != null) {
464+
return String.join(", ", headers);
465+
}
466+
return null;
459467
}
460468

461469
private void awsPojoToTags(AgentSpan span, String tagsPrefix, Object pojo) {

dd-java-agent/instrumentation/commons-httpclient-2/src/main/java/datadog/trace/instrumentation/commonshttpclient/CommonsHttpClientDecorator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ protected String getRequestHeader(HttpMethod request, String headerName) {
6363

6464
@Override
6565
protected String getResponseHeader(HttpMethod response, String headerName) {
66-
Header header = response.getResponseHeader(headerName);
66+
Header header = response.getRequestHeader(headerName);
6767
if (null != header) {
6868
return header.getValue();
6969
}

dd-java-agent/instrumentation/jax-rs-client-1.1/src/main/java/datadog/trace/instrumentation/jaxrs/v1/JaxRsClientV1Decorator.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString;
66
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
77
import java.net.URI;
8+
import java.util.ArrayList;
9+
import java.util.List;
810

911
public class JaxRsClientV1Decorator extends HttpClientDecorator<ClientRequest, ClientResponse> {
1012

@@ -41,15 +43,23 @@ protected int status(final ClientResponse clientResponse) {
4143

4244
@Override
4345
protected String getRequestHeader(ClientRequest request, String headerName) {
44-
Object headerValue = request.getHeaders().getFirst(headerName);
45-
if (null != headerValue) {
46-
return headerValue.toString();
46+
List<Object> headers = request.getHeaders().get(headerName);
47+
if (null != headers) {
48+
List<String> result = new ArrayList<>();
49+
for (Object header : headers) {
50+
result.add(header.toString());
51+
}
52+
return String.join(", ", result);
4753
}
4854
return null;
4955
}
5056

5157
@Override
5258
protected String getResponseHeader(ClientResponse response, String headerName) {
53-
return response.getHeaders().getFirst(headerName);
59+
List<String> headers = response.getHeaders().get(headerName);
60+
if (null != headers) {
61+
return String.join(", ", headers);
62+
}
63+
return null;
5464
}
5565
}

dd-java-agent/instrumentation/synapse-3/src/main/java/datadog/trace/instrumentation/synapse3/SynapseClientDecorator.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString;
66
import datadog.trace.bootstrap.instrumentation.decorator.HttpClientDecorator;
77
import java.net.URI;
8+
import java.util.ArrayList;
9+
import java.util.List;
810
import org.apache.http.Header;
911
import org.apache.http.HttpRequest;
1012
import org.apache.http.HttpResponse;
@@ -47,18 +49,26 @@ protected int status(final HttpResponse response) {
4749

4850
@Override
4951
protected String getRequestHeader(HttpRequest request, String headerName) {
50-
Header header = request.getFirstHeader(headerName);
51-
if (null != header) {
52-
return header.getValue();
52+
Header[] headers = request.getHeaders(headerName);
53+
List<String> values = new ArrayList<>();
54+
if (null != headers) {
55+
for (Header header : headers) {
56+
values.add(header.getValue());
57+
}
58+
return String.join(", ", values);
5359
}
5460
return null;
5561
}
5662

5763
@Override
5864
protected String getResponseHeader(HttpResponse response, String headerName) {
59-
Header header = response.getFirstHeader(headerName);
60-
if (null != header) {
61-
return header.getValue();
65+
Header[] headers = response.getHeaders(headerName);
66+
List<String> values = new ArrayList<>();
67+
if (null != headers) {
68+
for (Header header : headers) {
69+
values.add(header.getValue());
70+
}
71+
return String.join(", ", values);
6272
}
6373
return null;
6474
}

0 commit comments

Comments
 (0)