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 ee6c5fd  [IO-635] Add org.apache.commons.io.IOUtils.close(Closeable).
ee6c5fd is described below

commit ee6c5fd16d20e8c6ba1af776f6fdc30615a50c72
Author: Gary Gregory <gardgreg...@gmail.com>
AuthorDate: Tue Nov 5 10:45:13 2019 -0500

    [IO-635] Add org.apache.commons.io.IOUtils.close(Closeable).
---
 src/changes/changes.xml                          |  3 +
 src/main/java/org/apache/commons/io/IOUtils.java | 73 +++++++++++-------------
 2 files changed, 36 insertions(+), 40 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 09d6f2d..cb053b2 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -158,6 +158,9 @@ The <action> type attribute can be add,update,fix,remove.
       <action issue="IO-634" dev="ggregory" type="update" due-to="Václav 
Haisman, Bruno P. Kinoshita, Gary Gregory">
         Make getCause synchronized and use a Deque instead of a Stack #64.
       </action>
+      <action issue="IO-635" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add org.apache.commons.io.IOUtils.close(Closeable).
+      </action>
     </release>
 
     <release version="2.6" date="2017-10-15" description="Java 7 required, 
Java 9 supported.">
diff --git a/src/main/java/org/apache/commons/io/IOUtils.java 
b/src/main/java/org/apache/commons/io/IOUtils.java
index 56b83f0..597f224 100644
--- a/src/main/java/org/apache/commons/io/IOUtils.java
+++ b/src/main/java/org/apache/commons/io/IOUtils.java
@@ -302,18 +302,6 @@ public class IOUtils {
     }
 
     /**
-     * Closes a URLConnection.
-     *
-     * @param conn the connection to close.
-     * @since 2.4
-     */
-    public static void close(final URLConnection conn) {
-        if (conn instanceof HttpURLConnection) {
-            ((HttpURLConnection) conn).disconnect();
-        }
-    }
-
-    /**
      * Closes a <code>Closeable</code> unconditionally.
      * <p>
      * Equivalent to {@link Closeable#close()}, except any exceptions will be 
ignored. This is typically used in
@@ -355,15 +343,38 @@ public class IOUtils {
     @Deprecated
     public static void closeQuietly(final Closeable closeable) {
         try {
-            if (closeable != null) {
-                closeable.close();
-            }
+            close(closeable);
         } catch (final IOException ioe) {
             // ignore
         }
     }
 
     /**
+     * Closes the given {@link Closeable} as a null-safe operation.
+     *
+     * @param closeable The resource to close, may be null.
+     * @throws IOException if an I/O error occurs.
+     * @since 2.7
+     */
+    public static void close(final Closeable closeable) throws IOException {
+        if (closeable != null) {
+            closeable.close();
+        }
+    }
+
+    /**
+     * Closes a URLConnection.
+     *
+     * @param conn the connection to close.
+     * @since 2.4
+     */
+    public static void close(final URLConnection conn) {
+        if (conn instanceof HttpURLConnection) {
+            ((HttpURLConnection) conn).disconnect();
+        }
+    }
+
+    /**
      * Closes a <code>Closeable</code> unconditionally.
      * <p>
      * Equivalent to {@link Closeable#close()}, except any exceptions will be 
ignored.
@@ -546,13 +557,7 @@ public class IOUtils {
      */
     @Deprecated
     public static void closeQuietly(final Selector selector) {
-        if (selector != null) {
-            try {
-                selector.close();
-            } catch (final IOException ioe) {
-                // ignored
-            }
-        }
+        closeQuietly((Closeable) selector);
     }
 
     /**
@@ -575,7 +580,7 @@ public class IOUtils {
      *   }
      * </pre>
      *
-     * @param sock the ServerSocket to close, may be null or already closed
+     * @param serverSocket the ServerSocket to close, may be null or already 
closed
      * @since 2.2
      *
      * @deprecated As of 2.6 removed without replacement. Please use the 
try-with-resources statement or handle
@@ -583,14 +588,8 @@ public class IOUtils {
      * @see Throwable#addSuppressed(java.lang.Throwable)
      */
     @Deprecated
-    public static void closeQuietly(final ServerSocket sock) {
-        if (sock != null) {
-            try {
-                sock.close();
-            } catch (final IOException ioe) {
-                // ignored
-            }
-        }
+    public static void closeQuietly(final ServerSocket serverSocket) {
+        closeQuietly((Closeable) serverSocket);
     }
 
     /**
@@ -613,7 +612,7 @@ public class IOUtils {
      *   }
      * </pre>
      *
-     * @param sock the Socket to close, may be null or already closed
+     * @param socket the Socket to close, may be null or already closed
      * @since 2.0
      *
      * @deprecated As of 2.6 removed without replacement. Please use the 
try-with-resources statement or handle
@@ -621,14 +620,8 @@ public class IOUtils {
      * @see Throwable#addSuppressed(java.lang.Throwable)
      */
     @Deprecated
-    public static void closeQuietly(final Socket sock) {
-        if (sock != null) {
-            try {
-                sock.close();
-            } catch (final IOException ioe) {
-                // ignored
-            }
-        }
+    public static void closeQuietly(final Socket socket) {
+        closeQuietly((Closeable) socket);
     }
 
     /**

Reply via email to