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

yuqi4733 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 68302c862b [#7702] improvement(core) : Update strToSeq to return empty 
lists for empty strings (#7755)
68302c862b is described below

commit 68302c862b5f68f18f9f0e44d61bc1f77172ee25
Author: Reuben George <[email protected]>
AuthorDate: Fri Jul 25 07:03:11 2025 +0530

    [#7702] improvement(core) : Update strToSeq to return empty lists for empty 
strings (#7755)
    
    ### What changes were proposed in this pull request?
    Update strToSeq to return empty lists for empty strings
    
    ### Why are the changes needed?
    Fix: #7702
    
    ### Does this PR introduce _any_ user-facing change?
    
    No
    
    ### How was this patch tested?
    
    Added a unit test
---
 .../java/org/apache/gravitino/config/ConfigEntry.java     |  8 +++++---
 .../java/org/apache/gravitino/config/TestConfigEntry.java | 15 +++++++++++++++
 .../org/apache/gravitino/config/TestConfigEntryList.java  |  2 +-
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/core/src/main/java/org/apache/gravitino/config/ConfigEntry.java 
b/core/src/main/java/org/apache/gravitino/config/ConfigEntry.java
index b32f1c33a3..e33a1661ca 100644
--- a/core/src/main/java/org/apache/gravitino/config/ConfigEntry.java
+++ b/core/src/main/java/org/apache/gravitino/config/ConfigEntry.java
@@ -19,6 +19,7 @@
 package org.apache.gravitino.config;
 
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
@@ -159,10 +160,11 @@ public class ConfigEntry<T> {
    * @return The list of converted type.
    */
   public List<T> strToSeq(String str, Function<String, T> converter) {
+    if (str == null || str.isEmpty()) {
+      return Collections.emptyList();
+    }
     List<String> strList = Arrays.asList(str.split(","));
-    List<T> valList = 
strList.stream().map(converter).collect(Collectors.toList());
-
-    return valList;
+    return strList.stream().map(converter).collect(Collectors.toList());
   }
 
   /**
diff --git 
a/core/src/test/java/org/apache/gravitino/config/TestConfigEntry.java 
b/core/src/test/java/org/apache/gravitino/config/TestConfigEntry.java
index 89f2088c33..cccef9607e 100644
--- a/core/src/test/java/org/apache/gravitino/config/TestConfigEntry.java
+++ b/core/src/test/java/org/apache/gravitino/config/TestConfigEntry.java
@@ -19,6 +19,7 @@
 package org.apache.gravitino.config;
 
 import com.google.common.collect.Lists;
+import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Objects;
 import java.util.Optional;
@@ -168,4 +169,18 @@ public class TestConfigEntry {
     Assertions.assertThrows(
         IllegalArgumentException.class, () -> 
testConfOptional.readFrom(configMap));
   }
+
+  @Test
+  public void testStrToSeqEmptyString() {
+    ConfigEntry<String> conf = new 
ConfigBuilder("gravitino.test.seq").stringConf().create();
+    List<String> result = conf.strToSeq("", s -> s);
+    Assertions.assertTrue(result.isEmpty());
+  }
+
+  @Test
+  public void testStrToSeqNullValue() {
+    ConfigEntry<String> conf = new 
ConfigBuilder("gravitino.test.seq").stringConf().create();
+    List<String> result = conf.strToSeq(null, s -> s);
+    Assertions.assertTrue(result.isEmpty());
+  }
 }
diff --git 
a/core/src/test/java/org/apache/gravitino/config/TestConfigEntryList.java 
b/core/src/test/java/org/apache/gravitino/config/TestConfigEntryList.java
index fc2326d34e..ce95ffbf06 100644
--- a/core/src/test/java/org/apache/gravitino/config/TestConfigEntryList.java
+++ b/core/src/test/java/org/apache/gravitino/config/TestConfigEntryList.java
@@ -155,7 +155,7 @@ public class TestConfigEntryList {
             .checkValue(value -> !value.isEmpty(), "error")
             .toSequence()
             .create();
-    testConfWithoutDefault.writeTo(configMap, Lists.newArrayList(""));
+    testConfWithoutDefault.writeTo(configMap, Lists.newArrayList("valid", "", 
"another"));
     Assertions.assertThrows(
         IllegalArgumentException.class, () -> 
testConfWithoutDefault.readFrom(configMap));
   }

Reply via email to