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-io.git
The following commit(s) were added to refs/heads/master by this push: new 49b13ef Initialize the message of an IOExceptionList to a default if null. 49b13ef is described below commit 49b13ef698bf15e57bdff66c5f67887e8e0eb865 Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Sat Nov 6 08:41:09 2021 -0400 Initialize the message of an IOExceptionList to a default if null. --- src/changes/changes.xml | 3 +++ src/main/java/org/apache/commons/io/IOExceptionList.java | 8 ++++++-- src/test/java/org/apache/commons/io/IOExceptionListTest.java | 9 +++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 5754e0f..33d75cb 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -123,6 +123,9 @@ The <action> type attribute can be add,update,fix,remove. <action issue="IO-756" dev="ggregory" type="fix" due-to="wodencafe, Gary Gregory, Bruno P. Kinoshita"> Update FileWriterWithEncoding to extend ProxyWriter #296. </action> + <action dev="ggregory" type="fix" due-to="Gary Gregory"> + Initialize the message of an IOExceptionList to a default if null. + </action> <!-- ADD --> <action dev="ggregory" type="add" due-to="Gary Gregory"> Add BrokenReader.INSTANCE. diff --git a/src/main/java/org/apache/commons/io/IOExceptionList.java b/src/main/java/org/apache/commons/io/IOExceptionList.java index d4dc326..6e394e9 100644 --- a/src/main/java/org/apache/commons/io/IOExceptionList.java +++ b/src/main/java/org/apache/commons/io/IOExceptionList.java @@ -33,6 +33,10 @@ import java.util.List; public class IOExceptionList extends IOException { private static final long serialVersionUID = 1L; + private static String toMessage(final List<? extends Throwable> causeList) { + return String.format("%,d exceptions: %s", causeList == null ? 0 : causeList.size(), causeList); + } + private final List<? extends Throwable> causeList; /** @@ -41,7 +45,7 @@ public class IOExceptionList extends IOException { * @param causeList a list of cause exceptions. */ public IOExceptionList(final List<? extends Throwable> causeList) { - this(String.format("%,d exceptions: %s", causeList == null ? 0 : causeList.size(), causeList), causeList); + this(toMessage(causeList), causeList); } /** @@ -52,7 +56,7 @@ public class IOExceptionList extends IOException { * @since 2.9.0 */ public IOExceptionList(final String message, final List<? extends Throwable> causeList) { - super(message, causeList == null || causeList.isEmpty() ? null : causeList.get(0)); + super(message != null ? message : toMessage(causeList), causeList == null || causeList.isEmpty() ? null : causeList.get(0)); this.causeList = causeList == null ? Collections.emptyList() : causeList; } diff --git a/src/test/java/org/apache/commons/io/IOExceptionListTest.java b/src/test/java/org/apache/commons/io/IOExceptionListTest.java index 476f531..7a41ee3 100644 --- a/src/test/java/org/apache/commons/io/IOExceptionListTest.java +++ b/src/test/java/org/apache/commons/io/IOExceptionListTest.java @@ -19,6 +19,7 @@ package org.apache.commons.io; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.EOFException; @@ -80,6 +81,14 @@ public class IOExceptionListTest { } @Test + public void testNullMessageArg() { + assertNotNull(new IOExceptionList(null, Collections.emptyList()).getMessage()); + assertNotNull(new IOExceptionList(null, null).getMessage()); + assertEquals("A", new IOExceptionList("A", Collections.emptyList()).getMessage()); + assertEquals("A", new IOExceptionList("A", null).getMessage()); + } + + @Test public void testPrintStackTrace() { final EOFException cause = new EOFException(); final List<EOFException> list = Collections.singletonList(cause);