You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2022/11/29 15:29:37 UTC

[tomcat] branch 8.5.x updated: Update internal fork of Apache Commons FileUpload

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

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
     new 8d21b9ef4a Update internal fork of Apache Commons FileUpload
8d21b9ef4a is described below

commit 8d21b9ef4ae30f6f6474f00a72887338a5b745ac
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Nov 29 15:20:39 2022 +0000

    Update internal fork of Apache Commons FileUpload
---
 MERGE.txt                                          |  2 +-
 .../util/http/fileupload/FileUploadBase.java       |  2 +-
 .../util/http/fileupload/MultipartStream.java      |  2 +-
 .../util/http/fileupload/RequestContext.java       |  2 +-
 .../util/http/fileupload/disk/DiskFileItem.java    | 40 +++++++---------------
 .../http/fileupload/disk/DiskFileItemFactory.java  |  2 +-
 webapps/docs/changelog.xml                         |  4 +++
 7 files changed, 21 insertions(+), 33 deletions(-)

diff --git a/MERGE.txt b/MERGE.txt
index f0fa5d7dd5..885bbabe7e 100644
--- a/MERGE.txt
+++ b/MERGE.txt
@@ -51,7 +51,7 @@ FileUpload
 Sub-tree:
 src/main/java/org/apache/commons/fileupload2
 The SHA1 ID / tag for the most recent commit to be merged to Tomcat is:
-33d2d79230bb851642435821b380904d24752ee1 (2021-09-01)
+aa8eff6f04c939fd99834360415b1ddb2f637cb1 (2022-11-29)
 
 Note: Tomcat's copy of fileupload also includes classes copied manually from
       Commons IO.
diff --git a/java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java b/java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java
index e159e6a6bf..267a5ae9d1 100644
--- a/java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java
+++ b/java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java
@@ -367,7 +367,7 @@ public abstract class FileUploadBase {
         if (boundaryStr == null) {
             return null;
         }
-        byte[] boundary;
+        final byte[] boundary;
         boundary = boundaryStr.getBytes(StandardCharsets.ISO_8859_1);
         return boundary;
     }
diff --git a/java/org/apache/tomcat/util/http/fileupload/MultipartStream.java b/java/org/apache/tomcat/util/http/fileupload/MultipartStream.java
index ab6e8e58ad..137185aa77 100644
--- a/java/org/apache/tomcat/util/http/fileupload/MultipartStream.java
+++ b/java/org/apache/tomcat/util/http/fileupload/MultipartStream.java
@@ -401,7 +401,7 @@ public class MultipartStream {
     public boolean readBoundary()
             throws FileUploadIOException, MalformedStreamException {
         final byte[] marker = new byte[2];
-        boolean nextChunk;
+        final boolean nextChunk;
 
         head += boundaryLength;
         try {
diff --git a/java/org/apache/tomcat/util/http/fileupload/RequestContext.java b/java/org/apache/tomcat/util/http/fileupload/RequestContext.java
index 8fb222ce2b..9c00856032 100644
--- a/java/org/apache/tomcat/util/http/fileupload/RequestContext.java
+++ b/java/org/apache/tomcat/util/http/fileupload/RequestContext.java
@@ -24,7 +24,7 @@ import java.io.InputStream;
  * interface should be implemented for each type of request that may be
  * handled by FileUpload, such as servlets and portlets.</p>
  *
- * @since FileUpload 1.1
+ * @since 1.1
  */
 public interface RequestContext {
 
diff --git a/java/org/apache/tomcat/util/http/fileupload/disk/DiskFileItem.java b/java/org/apache/tomcat/util/http/fileupload/disk/DiskFileItem.java
index e9a16211e7..228a061de7 100644
--- a/java/org/apache/tomcat/util/http/fileupload/disk/DiskFileItem.java
+++ b/java/org/apache/tomcat/util/http/fileupload/disk/DiskFileItem.java
@@ -55,7 +55,7 @@ import org.apache.tomcat.util.http.fileupload.util.Streams;
  * <p>Temporary files, which are created for file items, should be
  * deleted later on.</p>
  *
- * @since FileUpload 1.1
+ * @since 1.1
  */
 public class DiskFileItem
     implements FileItem {
@@ -300,7 +300,7 @@ public class DiskFileItem
             return cachedContent != null ? cachedContent.clone() : new byte[0];
         }
 
-        byte[] fileData = new byte[(int) getSize()];
+        final byte[] fileData = new byte[(int) getSize()];
 
         try (InputStream fis = Files.newInputStream(dfos.getFile().toPath())) {
             IOUtils.readFully(fis, fileData);
@@ -338,14 +338,14 @@ public class DiskFileItem
     @Override
     public String getString() {
         try {
-            byte[] rawData = get();
+            final byte[] rawData = get();
             String charset = getCharSet();
             if (charset == null) {
                 charset = defaultCharset;
             }
             return new String(rawData, charset);
         } catch (final IOException e) {
-            return new String(new byte[0]);
+            return "";
         }
     }
 
@@ -374,7 +374,7 @@ public class DiskFileItem
         if (isInMemory()) {
             try (OutputStream fout = Files.newOutputStream(file.toPath())) {
                 fout.write(get());
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 throw new IOException("Unexpected output data");
             }
         } else {
@@ -415,18 +415,18 @@ public class DiskFileItem
     }
 
     /**
-     * Deletes the underlying storage for a file item, including deleting any
-     * associated temporary disk file. Although this storage will be deleted
-     * automatically when the {@code FileItem} instance is garbage
-     * collected, this method can be used to ensure that this is done at an
-     * earlier time, thus preserving system resources.
+     * Deletes the underlying storage for a file item, including deleting any associated temporary disk file.
+     * This method can be used to ensure that this is done at an earlier time, thus preserving system resources.
      */
     @Override
     public void delete() {
         cachedContent = null;
         final File outputFile = getStoreLocation();
         if (outputFile != null && !isInMemory() && outputFile.exists()) {
-            outputFile.delete();
+            if (!outputFile.delete()) {
+                final String desc = "Cannot delete " + outputFile.toString();
+                throw new IllegalStateException(desc, new IOException(desc));
+            }
         }
     }
 
@@ -436,7 +436,7 @@ public class DiskFileItem
      *
      * @return The name of the form field.
      *
-     * @see #setFieldName(java.lang.String)
+     * @see #setFieldName(String)
      *
      */
     @Override
@@ -531,22 +531,6 @@ public class DiskFileItem
 
     // ------------------------------------------------------ Protected methods
 
-    /**
-     * Removes the file contents from the temporary storage.
-     */
-    @Override
-    protected void finalize() throws Throwable {
-        if (dfos == null || dfos.isInMemory()) {
-            return;
-        }
-        final File outputFile = dfos.getFile();
-
-        if (outputFile != null && outputFile.exists()) {
-            outputFile.delete();
-        }
-        super.finalize();
-    }
-
     /**
      * Creates and returns a {@link java.io.File File} representing a uniquely
      * named temporary file in the configured repository path. The lifetime of
diff --git a/java/org/apache/tomcat/util/http/fileupload/disk/DiskFileItemFactory.java b/java/org/apache/tomcat/util/http/fileupload/disk/DiskFileItemFactory.java
index 6fb8f77deb..f19c5c3af6 100644
--- a/java/org/apache/tomcat/util/http/fileupload/disk/DiskFileItemFactory.java
+++ b/java/org/apache/tomcat/util/http/fileupload/disk/DiskFileItemFactory.java
@@ -54,7 +54,7 @@ import org.apache.tomcat.util.http.fileupload.FileItemFactory;
  * <p>Temporary files, which are created for file items, should be
  * deleted later on.</p>
  *
- * @since FileUpload 1.1
+ * @since 1.1
  */
 public class DiskFileItemFactory implements FileItemFactory {
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index cc34efd544..d5fac37a12 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -155,6 +155,10 @@
       <update>
         Update to Commons Daemon 1.3.3. (markt)
       </update>
+      <update>
+        Update the internal fork of Apache Commons FileUpload to aa8eff6
+        (2022-11-29, 2.0-SNAPSHOT). (markt)
+      </update>
     </changelog>
   </subsection>
 </section>


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