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 {

Reply via email to