You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/08/07 13:27:26 UTC

[commons-io] branch master updated: Null-guard IOUtils.close(Closeable, IOConsumer).

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 f382ada  Null-guard IOUtils.close(Closeable, IOConsumer).
f382ada is described below

commit f382ada1a767b9198fb9adf8cd2260a68cd6b8cd
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Aug 7 09:27:12 2020 -0400

    Null-guard IOUtils.close(Closeable, IOConsumer).
---
 src/changes/changes.xml                          | 3 +++
 src/main/java/org/apache/commons/io/IOUtils.java | 4 +++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index df461c5..bd2f091 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -89,6 +89,9 @@ The <action> type attribute can be add,update,fix,remove.
       <action dev="ggregory" type="add" due-to="Gary Gregory">
         Add PathUtils.getAclEntryList(Path).
       </action>
+      <action dev="ggregory" type="add" due-to="Gary Gregory">
+        Null-guard IOUtils.close(Closeable, IOConsumer).
+      </action>
       <action dev="ggregory" type="fix" due-to="Gary Gregory">
         Replace FindBugs with SpotBugs.
       </action>
diff --git a/src/main/java/org/apache/commons/io/IOUtils.java b/src/main/java/org/apache/commons/io/IOUtils.java
index a9b1122..73a2bb9 100644
--- a/src/main/java/org/apache/commons/io/IOUtils.java
+++ b/src/main/java/org/apache/commons/io/IOUtils.java
@@ -372,9 +372,11 @@ public class IOUtils {
      * @since 2.7
      */
     public static void close(final Closeable... closeables) throws IOException {
-            for(Closeable closeable : closeables) {
+        if (closeables != null) {
+            for (Closeable closeable : closeables) {
                 if (closeable != null) {
                     closeable.close();
+                }
             }
         }
     }


Re: [commons-io] branch master updated: Null-guard IOUtils.close(Closeable, IOConsumer).

Posted by sebb <se...@gmail.com>.
On Fri, 7 Aug 2020 at 14:27, <gg...@apache.org> wrote:
>
> 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 f382ada  Null-guard IOUtils.close(Closeable, IOConsumer).
> f382ada is described below
>
> commit f382ada1a767b9198fb9adf8cd2260a68cd6b8cd
> Author: Gary Gregory <ga...@gmail.com>
> AuthorDate: Fri Aug 7 09:27:12 2020 -0400
>
>     Null-guard IOUtils.close(Closeable, IOConsumer).
> ---
>  src/changes/changes.xml                          | 3 +++
>  src/main/java/org/apache/commons/io/IOUtils.java | 4 +++-
>  2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> index df461c5..bd2f091 100644
> --- a/src/changes/changes.xml
> +++ b/src/changes/changes.xml
> @@ -89,6 +89,9 @@ The <action> type attribute can be add,update,fix,remove.
>        <action dev="ggregory" type="add" due-to="Gary Gregory">
>          Add PathUtils.getAclEntryList(Path).
>        </action>
> +      <action dev="ggregory" type="add" due-to="Gary Gregory">
> +        Null-guard IOUtils.close(Closeable, IOConsumer).
> +      </action>
>        <action dev="ggregory" type="fix" due-to="Gary Gregory">
>          Replace FindBugs with SpotBugs.
>        </action>
> diff --git a/src/main/java/org/apache/commons/io/IOUtils.java b/src/main/java/org/apache/commons/io/IOUtils.java
> index a9b1122..73a2bb9 100644
> --- a/src/main/java/org/apache/commons/io/IOUtils.java
> +++ b/src/main/java/org/apache/commons/io/IOUtils.java
> @@ -372,9 +372,11 @@ public class IOUtils {
>       * @since 2.7
>       */
>      public static void close(final Closeable... closeables) throws IOException {
> -            for(Closeable closeable : closeables) {
> +        if (closeables != null) {
> +            for (Closeable closeable : closeables) {
>                  if (closeable != null) {
>                      closeable.close();
> +                }

Are you sure this is necessary?
AFAICT there is already a test that calls the method with null:

IOUtilsTestCase.testCloseMulti
assertDoesNotThrow(() -> IOUtils.close((Closeable[]) null));

I tried to cause an NPE and failed, so I did not add the outer Null check.
Is there a test case which shows the need for the check?


>              }
>          }
>      }
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org