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"));
+ }
}