This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch 1.x
in repository https://gitbox.apache.org/repos/asf/commons-fileupload.git


The following commit(s) were added to refs/heads/1.x by this push:
     new 6b44674b Use IOUtils.copyLarge()
6b44674b is described below

commit 6b44674b3daf5f976d9dbfd321c0ed0b69820dcd
Author: Gary D. Gregory <garydgreg...@gmail.com>
AuthorDate: Sat Mar 1 10:58:18 2025 -0500

    Use IOUtils.copyLarge()
---
 .../apache/commons/fileupload/util/Streams.java    | 38 ++++------------------
 1 file changed, 6 insertions(+), 32 deletions(-)

diff --git a/src/main/java/org/apache/commons/fileupload/util/Streams.java 
b/src/main/java/org/apache/commons/fileupload/util/Streams.java
index 78d52295..c766951a 100644
--- a/src/main/java/org/apache/commons/fileupload/util/Streams.java
+++ b/src/main/java/org/apache/commons/fileupload/util/Streams.java
@@ -23,6 +23,7 @@ import java.io.OutputStream;
 
 import org.apache.commons.fileupload.InvalidFileNameException;
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.io.output.NullOutputStream;
 
 /**
  * Utility class for working with streams.
@@ -144,41 +145,14 @@ public final class Streams {
      * @return Number of bytes, which have been copied.
      * @throws IOException An I/O error occurred.
      */
-    public static long copy(final InputStream inputStream,
-            final OutputStream outputStream, final boolean closeOutputStream,
-            final byte[] buffer)
-    throws IOException {
-        OutputStream out = outputStream;
-        InputStream in = inputStream;
+    public static long copy(final InputStream inputStream, final OutputStream 
outputStream, final boolean closeOutputStream, final byte[] buffer)
+            throws IOException {
         try {
-            long total = 0;
-            for (;;) {
-                final int res = in.read(buffer);
-                if (res == -1) {
-                    break;
-                }
-                if (res > 0) {
-                    total += res;
-                    if (out != null) {
-                        out.write(buffer, 0, res);
-                    }
-                }
-            }
-            if (out != null) {
-                if (closeOutputStream) {
-                    out.close();
-                } else {
-                    out.flush();
-                }
-                out = null;
-            }
-            in.close();
-            in = null;
-            return total;
+            return IOUtils.copyLarge(inputStream, outputStream != null ? 
outputStream : NullOutputStream.INSTANCE, buffer);
         } finally {
-            IOUtils.closeQuietly(in);
+            IOUtils.closeQuietly(inputStream);
             if (closeOutputStream) {
-                IOUtils.closeQuietly(out);
+                IOUtils.closeQuietly(outputStream);
             }
         }
     }

Reply via email to