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 227c613  [IO-664] org.apache.commons.io.FileUtils.copyURLToFile(*) 
open but do not close streams.
227c613 is described below

commit 227c61391448559e21e7cee6833c75980595e9e5
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sun Apr 12 12:00:04 2020 -0400

    [IO-664] org.apache.commons.io.FileUtils.copyURLToFile(*) open but do
    not close streams.
---
 src/changes/changes.xml                            |  3 +++
 src/main/java/org/apache/commons/io/FileUtils.java | 10 +++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c0d891c..6ac8b74 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -204,6 +204,9 @@ The <action> type attribute can be add,update,fix,remove.
       <action issue="IO-662" dev="ggregory" type="add" due-to="Adam Retter, 
Gary Gregory">
          Refactor ByteArrayOutputStream into synchronized and unsynchronized 
versions #108.
       </action>
+      <action issue="IO-664" dev="ggregory" type="fix" due-to="Gary Gregory">
+         org.apache.commons.io.FileUtils.copyURLToFile(*) open but do not 
close streams.
+      </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/FileUtils.java 
b/src/main/java/org/apache/commons/io/FileUtils.java
index 5d59350..e5b1ee8 100644
--- a/src/main/java/org/apache/commons/io/FileUtils.java
+++ b/src/main/java/org/apache/commons/io/FileUtils.java
@@ -1022,7 +1022,9 @@ public class FileUtils {
      * @throws IOException if an IO error occurs during copying
      */
     public static void copyURLToFile(final URL source, final File destination) 
throws IOException {
-        copyInputStreamToFile(source.openStream(), destination);
+        try (final InputStream stream = source.openStream()) {
+            copyInputStreamToFile(stream, destination);
+        }
     }
 
     /**
@@ -1046,11 +1048,13 @@ public class FileUtils {
      * @since 2.0
      */
     public static void copyURLToFile(final URL source, final File destination,
-                                     final int connectionTimeout, final int 
readTimeout) throws IOException {
+        final int connectionTimeout, final int readTimeout) throws IOException 
{
         final URLConnection connection = source.openConnection();
         connection.setConnectTimeout(connectionTimeout);
         connection.setReadTimeout(readTimeout);
-        copyInputStreamToFile(connection.getInputStream(), destination);
+        try (final InputStream stream = connection.getInputStream()) {
+            copyInputStreamToFile(stream, destination);
+        }
     }
 
     /**

Reply via email to