This is an automated email from the ASF dual-hosted git repository.
jmclean 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 d06ceb537c [#7634] Improvement: Add null filter to ConfigEntry
seqToStr method (#7693)
d06ceb537c is described below
commit d06ceb537c34a13ff2896435a35a2ca099643d4c
Author: Reuben George <[email protected]>
AuthorDate: Tue Jul 15 11:06:35 2025 +0530
[#7634] Improvement: Add null filter to ConfigEntry seqToStr method (#7693)
### What changes were proposed in this pull request?
Add null filter to ConfigEntry seqToStr method
### Why are the changes needed?
Fix: #7634
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
Added a unit test
---
.../main/java/org/apache/gravitino/config/ConfigEntry.java | 7 ++++---
.../org/apache/gravitino/config/TestConfigEntryList.java | 13 +++++++++++++
2 files changed, 17 insertions(+), 3 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 44196e3f07..b32f1c33a3 100644
--- a/core/src/main/java/org/apache/gravitino/config/ConfigEntry.java
+++ b/core/src/main/java/org/apache/gravitino/config/ConfigEntry.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
+import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
@@ -172,9 +173,9 @@ public class ConfigEntry<T> {
* @return The converted string.
*/
public String seqToStr(List<T> seq, Function<T, String> converter) {
- List<String> valList =
seq.stream().map(converter).collect(Collectors.toList());
- String str = String.join(",", valList);
- return str;
+ List<String> valList =
+
seq.stream().filter(Objects::nonNull).map(converter).collect(Collectors.toList());
+ return String.join(",", valList);
}
/**
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 a5c8c6a91b..fc2326d34e 100644
--- a/core/src/test/java/org/apache/gravitino/config/TestConfigEntryList.java
+++ b/core/src/test/java/org/apache/gravitino/config/TestConfigEntryList.java
@@ -159,4 +159,17 @@ public class TestConfigEntryList {
Assertions.assertThrows(
IllegalArgumentException.class, () ->
testConfWithoutDefault.readFrom(configMap));
}
+
+ @Test
+ public void testSeqToStrWithNullElement() {
+ ConfigEntry<List<Integer>> testConf =
+ new ConfigBuilder("gravitino.seq.null")
+ .intConf()
+ .toSequence()
+ .createWithDefault(Lists.newArrayList());
+
+ Assertions.assertDoesNotThrow(
+ () -> testConf.writeTo(configMapEmpty, Lists.newArrayList(1, null,
2)));
+ Assertions.assertEquals("1,2", configMapEmpty.get("gravitino.seq.null"));
+ }
}