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

Reply via email to