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