Skip to content

Commit ccbffdb

Browse files
committed
Update Apache getRequestHeader and getResponseHeader
1 parent dad5213 commit ccbffdb

File tree

3 files changed

+60
-18
lines changed

3 files changed

+60
-18
lines changed

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

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,16 @@ protected int status(final HttpContext context) {
6060

6161
@Override
6262
protected String getRequestHeader(HttpUriRequest request, String headerName) {
63-
Header header = request.getFirstHeader(headerName);
64-
if (header != null) {
65-
return header.getValue();
63+
Header[] headers = request.getHeaders(headerName);
64+
if (headers.length > 0) {
65+
StringBuilder result = new StringBuilder();
66+
for (int i = 0; i < headers.length; i++) {
67+
result.append(headers[i].getValue());
68+
if (i + 1 < headers.length) {
69+
result.append(",");
70+
}
71+
}
72+
return result.toString();
6673
}
6774
return null;
6875
}
@@ -71,9 +78,16 @@ protected String getRequestHeader(HttpUriRequest request, String headerName) {
7178
protected String getResponseHeader(HttpContext context, String headerName) {
7279
final Object responseObject = context.getAttribute(HttpCoreContext.HTTP_RESPONSE);
7380
if (responseObject instanceof HttpResponse) {
74-
Header header = ((HttpResponse) responseObject).getFirstHeader(headerName);
75-
if (header != null) {
76-
return header.getValue();
81+
Header[] headers = ((HttpResponse) responseObject).getHeaders(headerName);
82+
if (headers.length > 0) {
83+
StringBuilder result = new StringBuilder();
84+
for (int i = 0; i < headers.length; i++) {
85+
result.append(headers[i].getValue());
86+
if (i + 1 < headers.length) {
87+
result.append(",");
88+
}
89+
}
90+
return result.toString();
7791
}
7892
}
7993
return null;

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

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,32 @@ protected int status(final HttpResponse httpResponse) {
4646

4747
@Override
4848
protected String getRequestHeader(HttpUriRequest request, String headerName) {
49-
Header header = request.getFirstHeader(headerName);
50-
if (null != header) {
51-
return header.getValue();
49+
Header[] headers = request.getHeaders(headerName);
50+
if (headers.length > 0) {
51+
StringBuilder result = new StringBuilder();
52+
for (int i = 0; i < headers.length; i++) {
53+
result.append(headers[i].getValue());
54+
if (i + 1 < headers.length) {
55+
result.append(",");
56+
}
57+
}
58+
return result.toString();
5259
}
5360
return null;
5461
}
5562

5663
@Override
5764
protected String getResponseHeader(HttpResponse response, String headerName) {
58-
Header header = response.getFirstHeader(headerName);
59-
if (null != header) {
60-
return header.getValue();
65+
Header[] headers = response.getHeaders(headerName);
66+
if (headers.length > 0) {
67+
StringBuilder result = new StringBuilder();
68+
for (int i = 0; i < headers.length; i++) {
69+
result.append(headers[i].getValue());
70+
if (i + 1 < headers.length) {
71+
result.append(",");
72+
}
73+
}
74+
return result.toString();
6175
}
6276
return null;
6377
}

dd-java-agent/instrumentation/apache-httpclient-5/src/main/java/datadog/trace/instrumentation/apachehttpclient5/ApacheHttpClientDecorator.java

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,32 @@ protected int status(final HttpResponse httpResponse) {
5454

5555
@Override
5656
protected String getRequestHeader(HttpRequest request, String headerName) {
57-
Header header = request.getFirstHeader(headerName);
58-
if (null != header) {
59-
return header.getValue();
57+
Header[] headers = request.getHeaders(headerName);
58+
if (headers.length > 0) {
59+
StringBuilder result = new StringBuilder();
60+
for (int i = 0; i < headers.length; i++) {
61+
result.append(headers[i].getValue());
62+
if (i + 1 < headers.length) {
63+
result.append(",");
64+
}
65+
}
66+
return result.toString();
6067
}
6168
return null;
6269
}
6370

6471
@Override
6572
protected String getResponseHeader(HttpResponse response, String headerName) {
66-
Header header = response.getFirstHeader(headerName);
67-
if (null != header) {
68-
return header.getValue();
73+
Header[] headers = response.getHeaders(headerName);
74+
if (headers.length > 0) {
75+
StringBuilder result = new StringBuilder();
76+
for (int i = 0; i < headers.length; i++) {
77+
result.append(headers[i].getValue());
78+
if (i + 1 < headers.length) {
79+
result.append(",");
80+
}
81+
}
82+
return result.toString();
6983
}
7084
return null;
7185
}

0 commit comments

Comments
 (0)