From 4de8d3c62960013f9fafad40279df50ffc7381ad Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 25 Jan 2026 11:27:14 -0800 Subject: [PATCH] Handle null values in path and comma-separated options via stream filters --- .../rife/bld/operations/JavacOptions.java | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/src/main/java/rife/bld/operations/JavacOptions.java b/src/main/java/rife/bld/operations/JavacOptions.java index 2085a26..c04f828 100644 --- a/src/main/java/rife/bld/operations/JavacOptions.java +++ b/src/main/java/rife/bld/operations/JavacOptions.java @@ -11,6 +11,7 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Objects; import java.util.stream.Collectors; import static rife.bld.operations.CompileOperation.COMPILE_OPTION_MODULE_PATH; @@ -88,26 +89,34 @@ public class JavacOptions extends ArrayList { return collection != null && !collection.isEmpty(); } + /** + * Helper method to add delimited options + */ + private JavacOptions addDelimitedOption(String option, Collection values, String separator) { + if (isNotEmpty(values)) { + var joined = values.stream() + .filter(Objects::nonNull) + .collect(Collectors.joining(separator)); + if (!joined.isEmpty()) { + add(option); + add(joined); + } + } + return this; + } + /** * Helper method to add path-based options */ private JavacOptions addPathOption(String option, Collection paths) { - if (isNotEmpty(paths)) { - add(option); - add(String.join(File.pathSeparator, paths)); - } - return this; + return addDelimitedOption(option, paths, File.pathSeparator); } /** * Helper method to add comma-separated options */ private JavacOptions addCommaSeparatedOption(String option, Collection values) { - if (isNotEmpty(values)) { - add(option); - add(String.join(",", values)); - } - return this; + return addDelimitedOption(option, values, ","); } /** @@ -324,11 +333,7 @@ public class JavacOptions extends ArrayList { * @since 2.1 */ public JavacOptions endorsedDirsStrings(Collection dirs) { - if (isNotEmpty(dirs)) { - add("-endorseddirs"); - add(String.join(",", dirs)); - } - return this; + return addCommaSeparatedOption("-endorseddirs", dirs); } /** @@ -403,11 +408,7 @@ public class JavacOptions extends ArrayList { * @since 2.1 */ public JavacOptions extDirsStrings(Collection dirs) { - if (isNotEmpty(dirs)) { - add("-extdirs"); - add(String.join(",", dirs)); - } - return this; + return addCommaSeparatedOption("-extdirs", dirs); } /**