This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new d09f10f46f [core] RESTCatalog: fix npe when merge conf (#5525)
d09f10f46f is described below
commit d09f10f46f1b762df70e8ba2bfef0a8829ccad8a
Author: jerry <[email protected]>
AuthorDate: Thu Apr 24 17:09:13 2025 +0800
[core] RESTCatalog: fix npe when merge conf (#5525)
---
paimon-core/src/main/java/org/apache/paimon/rest/RESTUtil.java | 8 ++++++--
.../src/test/java/org/apache/paimon/rest/RESTUtilTest.java | 8 ++++++++
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/paimon-core/src/main/java/org/apache/paimon/rest/RESTUtil.java
b/paimon-core/src/main/java/org/apache/paimon/rest/RESTUtil.java
index e5c8c38bf5..73b90f4ed8 100644
--- a/paimon-core/src/main/java/org/apache/paimon/rest/RESTUtil.java
+++ b/paimon-core/src/main/java/org/apache/paimon/rest/RESTUtil.java
@@ -61,11 +61,15 @@ public class RESTUtil {
}
ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
for (Map.Entry<String, String> entry : targets.entrySet()) {
- if (!updates.containsKey(entry.getKey())) {
+ if (!updates.containsKey(entry.getKey()) && entry.getValue() !=
null) {
+ builder.put(entry.getKey(), entry.getValue());
+ }
+ }
+ for (Map.Entry<String, String> entry : updates.entrySet()) {
+ if (entry.getValue() != null) {
builder.put(entry.getKey(), entry.getValue());
}
}
- updates.forEach(builder::put);
return builder.build();
}
diff --git a/paimon-core/src/test/java/org/apache/paimon/rest/RESTUtilTest.java
b/paimon-core/src/test/java/org/apache/paimon/rest/RESTUtilTest.java
index e8f7c1977d..025610ac50 100644
--- a/paimon-core/src/test/java/org/apache/paimon/rest/RESTUtilTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/rest/RESTUtilTest.java
@@ -78,5 +78,13 @@ public class RESTUtilTest {
Map<String, String> result = RESTUtil.merge(targets, updates);
assertEquals(result.size(), 0);
}
+ {
+ Map<String, String> targets = new HashMap<>();
+ targets.put("key3", null);
+ Map<String, String> updates = new HashMap<>();
+ updates.put("key2", null);
+ Map<String, String> result = RESTUtil.merge(targets, updates);
+ assertEquals(result.size(), 0);
+ }
}
}