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-fileupload.git


The following commit(s) were added to refs/heads/master by this push:
     new 8139581  Reuse Files.readAllBytes()
8139581 is described below

commit 81395819e68af46016ee0bbe74c5d11a6fd4a163
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Thu May 25 09:28:35 2023 -0400

    Reuse Files.readAllBytes()
---
 .../org/apache/commons/fileupload2/disk/DiskFileItem.java  | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git 
a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
 
b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
index ee44756..3072203 100644
--- 
a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
+++ 
b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
@@ -35,7 +35,7 @@ import org.apache.commons.fileupload2.FileUploadException;
 import org.apache.commons.fileupload2.InvalidFileNameException;
 import org.apache.commons.fileupload2.ParameterParser;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
+import org.apache.commons.io.function.Uncheck;
 import org.apache.commons.io.output.DeferredFileOutputStream;
 
 /**
@@ -222,7 +222,7 @@ public class DiskFileItem implements FileItem {
      *
      * @return The contents of the file as an array of bytes or {@code null} 
if the data cannot be read.
      * @throws UncheckedIOException if an I/O error occurs.
-     * @throws ArithmeticException if the file {@code size} overflows an int.
+     * @throws OutOfMemoryError     if an array of the required size cannot be 
allocated, for example the file is larger that {@code 2GB}
      */
     @Override
     public byte[] get() throws UncheckedIOException {
@@ -232,15 +232,7 @@ public class DiskFileItem implements FileItem {
             }
             return cachedContent != null ? cachedContent.clone() : new byte[0];
         }
-
-        final byte[] fileData = new byte[Math.toIntExact(getSize())];
-
-        try (InputStream fis = Files.newInputStream(dfos.getFile().toPath())) {
-            IOUtils.readFully(fis, fileData);
-        } catch (final IOException e) {
-            throw new UncheckedIOException(e);
-        }
-        return fileData;
+        return Uncheck.get(() -> Files.readAllBytes(dfos.getFile().toPath()));
     }
 
     /**

Reply via email to