This is an automated email from the ASF dual-hosted git repository.

corgy pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new b898a3225c [Bug] [seatunnel-connector-http-base] An NPE 
(NullPointerException) will occur when the pageField is null  (#9498)
b898a3225c is described below

commit b898a3225cad7604d9599675a7ea710b45c44b92
Author: alberne wang <[email protected]>
AuthorDate: Mon Jun 30 16:28:33 2025 +0800

    [Bug] [seatunnel-connector-http-base] An NPE (NullPointerException) will 
occur when the pageField is null  (#9498)
    
    Co-authored-by: xinlong <[email protected]>
---
 .../seatunnel/http/source/HttpSourceReader.java    |  2 +-
 .../HttpSourceReaderUpdateRequestParamTest.java    | 23 ++++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git 
a/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
 
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
index b82fe3fe0c..a9ed773a29 100644
--- 
a/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
+++ 
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/source/HttpSourceReader.java
@@ -269,7 +269,7 @@ public class HttpSourceReader extends 
AbstractSingleSplitReader<SeaTunnelRow> {
                 }
             }
             map.putAll(updatedMap);
-        } else if (map.containsKey(pageField)) {
+        } else if (pageField != null && map.containsKey(pageField)) {
             // Key-based replacement
             map.put(pageField, pageValue);
         }
diff --git 
a/seatunnel-connectors-v2/connector-http/connector-http-base/src/test/java/org/apache/seatunnel/connectors/seatunnel/http/HttpSourceReaderUpdateRequestParamTest.java
 
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/test/java/org/apache/seatunnel/connectors/seatunnel/http/HttpSourceReaderUpdateRequestParamTest.java
index eedcbfec9f..fd207857b5 100644
--- 
a/seatunnel-connectors-v2/connector-http/connector-http-base/src/test/java/org/apache/seatunnel/connectors/seatunnel/http/HttpSourceReaderUpdateRequestParamTest.java
+++ 
b/seatunnel-connectors-v2/connector-http/connector-http-base/src/test/java/org/apache/seatunnel/connectors/seatunnel/http/HttpSourceReaderUpdateRequestParamTest.java
@@ -504,4 +504,27 @@ public class HttpSourceReaderUpdateRequestParamTest {
         Assertions.assertEquals("5", filters.get("code"));
         Assertions.assertEquals(10, bodyMap.get("limit"));
     }
+
+    @Test
+    public void testUpdateRequestParamWithHeaderOnlyPageNumberOccurNPE() 
throws Exception {
+        // Setup test data
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json;utf-8");
+        headers.put("Authorization", "Bearer token-123");
+        headers.put("page", "0");
+        httpParameter.setHeaders(headers);
+
+        PageInfo pageInfo = new PageInfo();
+        pageInfo.setPageField("page");
+        pageInfo.setPageIndex(5L);
+
+        // Call updateRequestParam method directly, update headers with 
pageInfo
+        httpSourceReader.updateRequestParam(pageInfo, false);
+
+        // Verify the headers were updated correctly, and no occur NPE without 
cursor pageField
+        Map<String, String> updatedHeaders = httpParameter.getHeaders();
+        Assertions.assertEquals("5", updatedHeaders.get("page"));
+        Assertions.assertEquals("Bearer token-123", 
updatedHeaders.get("Authorization"));
+        Assertions.assertEquals("application/json;utf-8", 
updatedHeaders.get("Content-Type"));
+    }
 }

Reply via email to