Skip to content

Commit 097e5ee

Browse files
committed
refactor: update responseHeadersReceived to use Map<String, Object> and simplify parseContentLength
1 parent 960ddd1 commit 097e5ee

3 files changed

Lines changed: 12 additions & 21 deletions

File tree

gax-java/gax-httpjson/src/test/java/com/google/api/gax/httpjson/testing/TestApiTracer.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -96,28 +96,24 @@ public void responseReceived() {
9696
}
9797

9898
@Override
99-
public void responseHeadersReceived(java.util.Map<String, ?> headers) {
99+
public void responseHeadersReceived(java.util.Map<String, Object> headers) {
100100
long contentLength = extractContentLength(headers);
101101
if (contentLength >= 0) {
102102
responseReceivedSize.addAndGet(contentLength);
103103
}
104104
}
105105

106-
private long extractContentLength(java.util.Map<String, ?> headers) {
106+
private long extractContentLength(java.util.Map<String, Object> headers) {
107107
if (headers == null) {
108108
return -1;
109109
}
110-
for (java.util.Map.Entry<String, ?> entry : headers.entrySet()) {
110+
for (java.util.Map.Entry<String, Object> entry : headers.entrySet()) {
111111
if ("Content-Length".equalsIgnoreCase(entry.getKey())) {
112112
Object value = entry.getValue();
113113
if (value != null) {
114114
try {
115-
String contentLengthStr =
116-
value instanceof java.util.List
117-
? ((java.util.List<?>) value).get(0).toString()
118-
: value.toString();
119-
return Long.parseLong(contentLengthStr);
120-
} catch (NumberFormatException | IndexOutOfBoundsException e) {
115+
return Long.parseLong(String.valueOf(value));
116+
} catch (NumberFormatException e) {
121117
// Ignore invalid Content-Length
122118
}
123119
}

gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ default void responseReceived() {}
180180
;
181181

182182
/** Adds an annotation that a streaming response has been received with its headers. */
183-
default void responseHeadersReceived(java.util.Map<String, ?> headers) {}
183+
default void responseHeadersReceived(java.util.Map<String, Object> headers) {}
184184
;
185185

186186
/** Adds an annotation that a streaming request has been sent. */

gax-java/gax/src/main/java/com/google/api/gax/tracing/SpanTracer.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public void attemptSucceeded() {
121121
}
122122

123123
@Override
124-
public void responseHeadersReceived(java.util.Map<String, ?> headers) {
124+
public void responseHeadersReceived(java.util.Map<String, Object> headers) {
125125
if (attemptSpan != null) {
126126
long contentLength = extractContentLength(headers);
127127
if (contentLength >= 0) {
@@ -136,11 +136,11 @@ public void responseHeadersReceived(java.util.Map<String, ?> headers) {
136136
* @param headers the map of response headers.
137137
* @return the content length in bytes, or -1 if the header is missing or malformed.
138138
*/
139-
private long extractContentLength(java.util.Map<String, ?> headers) {
139+
private long extractContentLength(java.util.Map<String, Object> headers) {
140140
if (headers == null) {
141141
return -1;
142142
}
143-
for (Map.Entry<String, ?> entry : headers.entrySet()) {
143+
for (Map.Entry<String, Object> entry : headers.entrySet()) {
144144
if ("Content-Length".equalsIgnoreCase(entry.getKey())) {
145145
return parseContentLength(entry.getValue());
146146
}
@@ -149,8 +149,7 @@ private long extractContentLength(java.util.Map<String, ?> headers) {
149149
}
150150

151151
/**
152-
* Safely parses the content length Object representation (e.g. List or String) into a long
153-
* integer.
152+
* Safely parses the content length Object representation into a long integer.
154153
*
155154
* @param value the header value to parse.
156155
* @return the parsed content length value, or -1 if it was null or failed to parse.
@@ -160,12 +159,8 @@ private long parseContentLength(Object value) {
160159
return -1;
161160
}
162161
try {
163-
String contentLengthStr =
164-
value instanceof java.util.List
165-
? ((java.util.List<?>) value).get(0).toString()
166-
: value.toString();
167-
return Long.parseLong(contentLengthStr);
168-
} catch (NumberFormatException | IndexOutOfBoundsException e) {
162+
return Long.parseLong(String.valueOf(value));
163+
} catch (NumberFormatException e) {
169164
// Ignore invalid Content-Length
170165
return -1;
171166
}

0 commit comments

Comments
 (0)