This is an automated email from the ASF dual-hosted git repository.
jmclean pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push:
new 83ad1af14c [#7589] fix (clients): check null before adding request
headers in HTTPClient (#7601)
83ad1af14c is described below
commit 83ad1af14c92752d493f28e7469cc777be321e75
Author: Reuben George <[email protected]>
AuthorDate: Fri Jul 11 06:15:16 2025 +0530
[#7589] fix (clients): check null before adding request headers in
HTTPClient (#7601)
### What changes were proposed in this pull request?
Added a null check for empty headers before adding request headers in
HTTPClient.
Closes: [#7589](https://github.com/apache/gravitino/issues/7589)
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
Added a unit test.
---
.../java/org/apache/gravitino/client/HTTPClient.java | 4 +++-
.../java/org/apache/gravitino/client/TestHTTPClient.java | 16 ++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git
a/clients/client-java/src/main/java/org/apache/gravitino/client/HTTPClient.java
b/clients/client-java/src/main/java/org/apache/gravitino/client/HTTPClient.java
index 058d04c82d..f63dff555f 100644
---
a/clients/client-java/src/main/java/org/apache/gravitino/client/HTTPClient.java
+++
b/clients/client-java/src/main/java/org/apache/gravitino/client/HTTPClient.java
@@ -673,7 +673,9 @@ public class HTTPClient implements RESTClient {
// avoid failures.
request.setHeader(HttpHeaders.CONTENT_TYPE, bodyMimeType);
request.setHeader(HttpHeaders.ACCEPT, VERSION_HEADER);
- requestHeaders.forEach(request::setHeader);
+ if (requestHeaders != null) {
+ requestHeaders.forEach(request::setHeader);
+ }
}
/**
diff --git
a/clients/client-java/src/test/java/org/apache/gravitino/client/TestHTTPClient.java
b/clients/client-java/src/test/java/org/apache/gravitino/client/TestHTTPClient.java
index 0312abe752..741ffc65ac 100644
---
a/clients/client-java/src/test/java/org/apache/gravitino/client/TestHTTPClient.java
+++
b/clients/client-java/src/test/java/org/apache/gravitino/client/TestHTTPClient.java
@@ -127,6 +127,22 @@ public class TestHTTPClient {
testHttpMethodOnFailure(Method.HEAD, false, false);
}
+ @Test
+ public void testNullHeadersDoNotCauseNPE() throws Exception {
+ Item body = new Item(0L, "hank");
+ int statusCode = 200;
+
+ ErrorHandler onError = mock(ErrorHandler.class);
+ doThrow(new RuntimeException("Failure
response")).when(onError).accept(any());
+
+ String path = addRequestTestCaseAndGetPath(Method.GET, body, statusCode,
false, true);
+
+ Item response = restClient.get(path, Item.class, (Map<String, String>)
null, onError);
+
+ Assertions.assertEquals(body, response);
+ verify(onError, never()).accept(any());
+ }
+
public static void testHttpMethodOnSuccess(
Method method, boolean hasRequestBody, boolean hasResponseBody)
throws JsonProcessingException {