This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-cli.git
commit 50b149a00b89d846897bb30645534fb599584e6c Author: Gary D. Gregory <[email protected]> AuthorDate: Tue Jul 29 11:17:00 2025 -0400 Simplify and test MissingOptionException message construction --- .../org/apache/commons/cli/MissingOptionException.java | 17 ++++------------- .../apache/commons/cli/MissingOptionExceptionTest.java | 10 ++++++++++ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/apache/commons/cli/MissingOptionException.java b/src/main/java/org/apache/commons/cli/MissingOptionException.java index 9c29a582..7ab19656 100644 --- a/src/main/java/org/apache/commons/cli/MissingOptionException.java +++ b/src/main/java/org/apache/commons/cli/MissingOptionException.java @@ -17,13 +17,13 @@ package org.apache.commons.cli; -import java.util.Iterator; import java.util.List; /** * Thrown when a required option has not been provided. */ public class MissingOptionException extends ParseException { + /** This exception {@code serialVersionUID}. */ private static final long serialVersionUID = 8161889051578563249L; @@ -34,18 +34,9 @@ public class MissingOptionException extends ParseException { */ private static String createMessage(final List<?> missingOptions) { final StringBuilder buf = new StringBuilder("Missing required option"); - buf.append(missingOptions.size() == 1 ? "" : "s"); - buf.append(": "); - - final Iterator<?> it = missingOptions.iterator(); - while (it.hasNext()) { - buf.append(it.next()); - if (it.hasNext()) { - buf.append(", "); - } - } - - return buf.toString(); + buf.append(missingOptions.size() == 1 ? "" : "s").append(": "); + final String string = missingOptions.toString(); + return buf.append(string.substring(1, string.length() - 1)).toString(); } /** The list of missing options and groups */ diff --git a/src/test/java/org/apache/commons/cli/MissingOptionExceptionTest.java b/src/test/java/org/apache/commons/cli/MissingOptionExceptionTest.java index 107b7bd4..e0644c12 100644 --- a/src/test/java/org/apache/commons/cli/MissingOptionExceptionTest.java +++ b/src/test/java/org/apache/commons/cli/MissingOptionExceptionTest.java @@ -30,6 +30,16 @@ import org.junit.jupiter.api.Test; */ public class MissingOptionExceptionTest { + @Test + void testGetMessage() { + final List<String> originalList = new ArrayList<>(); + originalList.add("optA"); + originalList.add("optB"); + final MissingOptionException exception = new MissingOptionException(originalList); + assertEquals("Missing required options: optA, optB", exception.getMessage()); + assertEquals("Missing required options: ", new MissingOptionException(new ArrayList<>()).getMessage()); + } + @Test void testGetMissingOptions() { final List<String> originalList = new ArrayList<>();
