You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/06/11 21:33:14 UTC

[commons-fileupload] 02/04: Use "Input" instead of "Stream" in class names

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

commit 24ec422670696f2497809684184de991bd2cdb00
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Jun 11 17:14:06 2023 -0400

    Use "Input" instead of "Stream" in class names
    
    The classes are neither a Stream or InputStream.
---
 .../commons/fileupload2/AbstractFileUpload.java    | 22 ++++-----
 .../commons/fileupload2/FileItemHeadersImpl.java   |  3 +-
 .../fileupload2/FileItemHeadersSupport.java        |  6 +--
 .../{FileItemStream.java => FileItemInput.java}    |  8 ++--
 ...eItemStreamImpl.java => FileItemInputImpl.java} | 22 ++++-----
 ...temIterator.java => FileItemInputIterator.java} | 10 ++--
 ...torImpl.java => FileItemInputIteratorImpl.java} | 56 +++++++++++-----------
 .../org/apache/commons/fileupload2/FileUpload.java |  4 +-
 .../{MultipartStream.java => MultipartInput.java}  | 39 ++++++++-------
 .../fileupload2/AbstractProgressListenerTest.java  |  6 +--
 .../commons/fileupload2/AbstractSizesTest.java     |  6 +--
 .../commons/fileupload2/AbstractStreamingTest.java | 10 ++--
 .../commons/fileupload2/MultipartStreamTest.java   | 16 +++----
 .../jakarta/JakartaServletFileUpload.java          |  6 +--
 .../fileupload2/javax/JavaxServletFileUpload.java  |  6 +--
 .../portlet/JavaxPortletFileUpload.java            |  6 +--
 16 files changed, 112 insertions(+), 114 deletions(-)

diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/AbstractFileUpload.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/AbstractFileUpload.java
index 7c30e6e..e0e0085 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/AbstractFileUpload.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/AbstractFileUpload.java
@@ -259,13 +259,13 @@ public abstract class AbstractFileUpload {
      * Gets an <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a> compliant {@code multipart/form-data} stream.
      *
      * @param ctx The context for the request to be parsed.
-     * @return An iterator to instances of {@code FileItemStream} parsed from the request, in the order that they were transmitted.
+     * @return An iterator to instances of {@code FileItemInput} parsed from the request, in the order that they were transmitted.
      * @throws FileUploadException if there are problems reading/parsing the request or storing files.
      * @throws IOException         An I/O error occurred. This may be a network error while communicating with the client or a problem while storing the
      *                             uploaded content.
      */
-    public FileItemIterator getItemIterator(final RequestContext ctx) throws FileUploadException, IOException {
-        return new FileItemIteratorImpl(this, ctx);
+    public FileItemInputIterator getItemIterator(final RequestContext ctx) throws FileUploadException, IOException {
+        return new FileItemInputIteratorImpl(this, ctx);
     }
 
     /**
@@ -409,7 +409,7 @@ public abstract class AbstractFileUpload {
         final List<FileItem> itemList = new ArrayList<>();
         boolean successful = false;
         try {
-            final FileItemIterator iter = getItemIterator(requestContext);
+            final FileItemInputIterator iter = getItemIterator(requestContext);
             final FileItemFactory fileItemFactory = Objects.requireNonNull(getFileItemFactory(), "No FileItemFactory has been set.");
             final byte[] buffer = new byte[IOUtils.DEFAULT_BUFFER_SIZE];
             while (iter.hasNext()) {
@@ -417,20 +417,20 @@ public abstract class AbstractFileUpload {
                     // The next item will exceed the limit.
                     throw new FileUploadFileCountLimitException(ATTACHMENT, getFileCountMax(), itemList.size());
                 }
-                final FileItemStream fileItemStream = iter.next();
+                final FileItemInput fileItemInput = iter.next();
                 // Don't use getName() here to prevent an InvalidFileNameException.
-                final String fileName = fileItemStream.getName();
+                final String fileName = fileItemInput.getName();
                 // @formatter:off
                 final FileItem fileItem = fileItemFactory.fileItemBuilder()
-                    .setFieldName(fileItemStream.getFieldName())
-                    .setContentType(fileItemStream.getContentType())
-                    .setFormField(fileItemStream.isFormField())
+                    .setFieldName(fileItemInput.getFieldName())
+                    .setContentType(fileItemInput.getContentType())
+                    .setFormField(fileItemInput.isFormField())
                     .setFileName(fileName)
-                    .setFileItemHeaders(fileItemStream.getHeaders())
+                    .setFileItemHeaders(fileItemInput.getHeaders())
                     .get();
                 // @formatter:on
                 itemList.add(fileItem);
-                try (InputStream inputStream = fileItemStream.getInputStream();
+                try (InputStream inputStream = fileItemInput.getInputStream();
                         OutputStream outputStream = fileItem.getOutputStream()) {
                     IOUtils.copyLarge(inputStream, outputStream, buffer);
                 } catch (final FileUploadException e) {
diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemHeadersImpl.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemHeadersImpl.java
index 9edba7d..e803758 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemHeadersImpl.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemHeadersImpl.java
@@ -41,8 +41,7 @@ class FileItemHeadersImpl implements FileItemHeaders {
      * @param value value of this header
      */
     public synchronized void addHeader(final String name, final String value) {
-        final List<String> headerValueList = headerNameToValueListMap.computeIfAbsent(toLowerCase(name), k -> new ArrayList<>());
-        headerValueList.add(value);
+        headerNameToValueListMap.computeIfAbsent(toLowerCase(name), k -> new ArrayList<>()).add(value);
     }
 
     /**
diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemHeadersSupport.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemHeadersSupport.java
index 4928efc..7f69be1 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemHeadersSupport.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemHeadersSupport.java
@@ -20,7 +20,7 @@ package org.apache.commons.fileupload2;
  * Accepts headers for an item type.
  *
  * @see FileItem
- * @see FileItemStream
+ * @see FileItemInput
  */
 public interface FileItemHeadersSupport {
 
@@ -32,8 +32,8 @@ public interface FileItemHeadersSupport {
     FileItemHeaders getHeaders();
 
     /**
-     * Sets the headers read from within an item. Implementations of {@link FileItem} or {@link FileItemStream} should implement this interface to be able to
-     * get the raw headers found within the item header block.
+     * Sets the headers read from within an item. Implementations of {@link FileItem} or {@link FileItemInput} should implement this interface to be able
+     * to get the raw headers found within the item header block.
      *
      * @param headers the instance that holds onto the headers for this instance.
      */
diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemStream.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInput.java
similarity index 92%
rename from commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemStream.java
rename to commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInput.java
index 62b3442..6fb0cd5 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemStream.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInput.java
@@ -28,16 +28,16 @@ import java.io.InputStream;
  * Instances of this class are created by accessing the iterator, returned by {@link AbstractFileUpload#getItemIterator(RequestContext)}.
  * </p>
  * <p>
- * <em>Note</em>: There is an interaction between the iterator and its associated instances of {@link FileItemStream}: By invoking
+ * <em>Note</em>: There is an interaction between the iterator and its associated instances of {@link FileItemInput}: By invoking
  * {@link java.util.Iterator#hasNext()} on the iterator, you discard all data, which hasn't been read so far from the previous data.
  * </p>
  */
-public interface FileItemStream extends FileItemHeadersSupport {
+public interface FileItemInput extends FileItemHeadersSupport {
 
     /**
      * This exception is thrown, if an attempt is made to read data from the {@link InputStream}, which has been returned by
-     * {@link FileItemStream#getInputStream()}, after {@link java.util.Iterator#hasNext()} has been invoked on the iterator, which created the
-     * {@link FileItemStream}.
+     * {@link FileItemInput#getInputStream()}, after {@link java.util.Iterator#hasNext()} has been invoked on the iterator, which created the
+     * {@link FileItemInput}.
      */
     class ItemSkippedException extends FileUploadException {
 
diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemStreamImpl.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInputImpl.java
similarity index 86%
rename from commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemStreamImpl.java
rename to commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInputImpl.java
index 634f35b..a559fb6 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemStreamImpl.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInputImpl.java
@@ -20,21 +20,21 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.nio.file.InvalidPathException;
 
-import org.apache.commons.fileupload2.MultipartStream.ItemInputStream;
+import org.apache.commons.fileupload2.MultipartInput.ItemInputStream;
 import org.apache.commons.fileupload2.disk.DiskFileItem;
 import org.apache.commons.io.input.BoundedInputStream;
 
 /**
- * Default implementation of {@link FileItemStream}.
+ * Default implementation of {@link FileItemInput}.
  */
-class FileItemStreamImpl implements FileItemStream {
+class FileItemInputImpl implements FileItemInput {
 
     /**
      * The File Item iterator implementation.
      *
-     * @see FileItemIteratorImpl
+     * @see FileItemInputIteratorImpl
      */
-    private final FileItemIteratorImpl fileItemIteratorImpl;
+    private final FileItemInputIteratorImpl fileItemInputIteratorImpl;
 
     /**
      * The file items content type.
@@ -74,7 +74,7 @@ class FileItemStreamImpl implements FileItemStream {
     /**
      * Creates a new instance.
      *
-     * @param fileItemIterator The {@link FileItemIteratorImpl iterator}, which returned this file item.
+     * @param fileItemIterator The {@link FileItemInputIteratorImpl iterator}, which returned this file item.
      * @param fileName         The items file name, or null.
      * @param fieldName        The items field name.
      * @param contentType      The items content type, or null.
@@ -83,20 +83,20 @@ class FileItemStreamImpl implements FileItemStream {
      * @throws IOException         Creating the file item failed.
      * @throws FileUploadException Parsing the incoming data stream failed.
      */
-    FileItemStreamImpl(final FileItemIteratorImpl fileItemIterator, final String fileName, final String fieldName, final String contentType,
+    FileItemInputImpl(final FileItemInputIteratorImpl fileItemIterator, final String fileName, final String fieldName, final String contentType,
             final boolean formField, final long contentLength) throws FileUploadException, IOException {
-        this.fileItemIteratorImpl = fileItemIterator;
+        this.fileItemInputIteratorImpl = fileItemIterator;
         this.fileName = fileName;
         this.fieldName = fieldName;
         this.contentType = contentType;
         this.formField = formField;
-        final long fileSizeMax = fileItemIteratorImpl.getFileSizeMax();
+        final long fileSizeMax = fileItemInputIteratorImpl.getFileSizeMax();
         if (fileSizeMax != -1 && contentLength != -1 && contentLength > fileSizeMax) {
             throw new FileUploadByteCountLimitException(String.format("The field %s exceeds its maximum permitted size of %s bytes.", fieldName, fileSizeMax),
                     contentLength, fileSizeMax, fileName, fieldName);
         }
         // OK to construct stream now
-        final ItemInputStream itemInputStream = fileItemIteratorImpl.getMultiPartStream().newInputStream();
+        final ItemInputStream itemInputStream = fileItemInputIteratorImpl.getMultiPartStream().newInputStream();
         InputStream istream = itemInputStream;
         if (fileSizeMax != -1) {
             istream = new BoundedInputStream(istream, fileSizeMax) {
@@ -161,7 +161,7 @@ class FileItemStreamImpl implements FileItemStream {
     @Override
     public InputStream getInputStream() throws IOException {
         if (inputStreamClosed) {
-            throw new FileItemStream.ItemSkippedException("getInputStream()");
+            throw new FileItemInput.ItemSkippedException("getInputStream()");
         }
         return inputStream;
     }
diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemIterator.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInputIterator.java
similarity index 93%
rename from commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemIterator.java
rename to commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInputIterator.java
index 19c8337..a9ddc31 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemIterator.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInputIterator.java
@@ -24,7 +24,7 @@ import javax.naming.SizeLimitExceededException;
 /**
  * An iterator, as returned by {@link AbstractFileUpload#getItemIterator(RequestContext)}.
  */
-public interface FileItemIterator {
+public interface FileItemInputIterator {
 
     List<FileItem> getFileItems() throws FileUploadException, IOException;
 
@@ -47,7 +47,7 @@ public interface FileItemIterator {
     long getSizeMax();
 
     /**
-     * Tests whether another instance of {@link FileItemStream} is available.
+     * Tests whether another instance of {@link FileItemInput} is available.
      *
      * @throws FileUploadException Parsing or processing the file item failed.
      * @throws IOException         Reading the file item failed.
@@ -56,14 +56,14 @@ public interface FileItemIterator {
     boolean hasNext() throws FileUploadException, IOException;
 
     /**
-     * Returns the next available {@link FileItemStream}.
+     * Returns the next available {@link FileItemInput}.
      *
      * @throws java.util.NoSuchElementException No more items are available. Use {@link #hasNext()} to prevent this exception.
      * @throws FileUploadException              Parsing or processing the file item failed.
      * @throws IOException                      Reading the file item failed.
-     * @return FileItemStream instance, which provides access to the next file item.
+     * @return FileItemInput instance, which provides access to the next file item.
      */
-    FileItemStream next() throws FileUploadException, IOException;
+    FileItemInput next() throws FileUploadException, IOException;
 
     /**
      * Sets the maximum size of a single file. An {@link FileUploadByteCountLimitException} will be thrown, if there is an uploaded file, which is exceeding
diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemIteratorImpl.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInputIteratorImpl.java
similarity index 81%
rename from commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemIteratorImpl.java
rename to commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInputIteratorImpl.java
index 503c56d..2b6dc7a 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemIteratorImpl.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileItemInputIteratorImpl.java
@@ -28,16 +28,16 @@ import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.input.BoundedInputStream;
 
 /**
- * The iterator, which is returned by {@link AbstractFileUpload#getItemIterator(RequestContext)}.
+ * The iterator returned by {@link AbstractFileUpload#getItemIterator(RequestContext)}.
  */
-class FileItemIteratorImpl implements FileItemIterator {
+class FileItemInputIteratorImpl implements FileItemInputIterator {
 
     /**
      * The file uploads processing utility.
      *
      * @see AbstractFileUpload
      */
-    private final AbstractFileUpload fileUploadBase;
+    private final AbstractFileUpload fileUpload;
 
     /**
      * The request context.
@@ -59,12 +59,12 @@ class FileItemIteratorImpl implements FileItemIterator {
     /**
      * The multi part stream to process.
      */
-    private MultipartStream multiPartStream;
+    private MultipartInput multiPartStream;
 
     /**
      * The notifier, which used for triggering the {@link ProgressListener}.
      */
-    private MultipartStream.ProgressNotifier progressNotifier;
+    private MultipartInput.ProgressNotifier progressNotifier;
 
     /**
      * The boundary, which separates the various parts.
@@ -74,7 +74,7 @@ class FileItemIteratorImpl implements FileItemIterator {
     /**
      * The item, which we currently process.
      */
-    private FileItemStreamImpl currentItem;
+    private FileItemInputImpl currentItem;
 
     /**
      * The current items field name.
@@ -104,8 +104,8 @@ class FileItemIteratorImpl implements FileItemIterator {
      * @throws FileUploadException An error occurred while parsing the request.
      * @throws IOException         An I/O error occurred.
      */
-    FileItemIteratorImpl(final AbstractFileUpload fileUploadBase, final RequestContext requestContext) throws FileUploadException, IOException {
-        this.fileUploadBase = fileUploadBase;
+    FileItemInputIteratorImpl(final AbstractFileUpload fileUploadBase, final RequestContext requestContext) throws FileUploadException, IOException {
+        this.fileUpload = fileUploadBase;
         this.sizeMax = fileUploadBase.getSizeMax();
         this.fileSizeMax = fileUploadBase.getFileSizeMax();
         this.ctx = Objects.requireNonNull(requestContext, "requestContext");
@@ -127,7 +127,7 @@ class FileItemIteratorImpl implements FileItemIterator {
             currentItem.close();
             currentItem = null;
         }
-        final MultipartStream multi = getMultiPartStream();
+        final MultipartInput multi = getMultiPartStream();
         for (;;) {
             final boolean nextPart;
             if (skipPreamble) {
@@ -146,22 +146,22 @@ class FileItemIteratorImpl implements FileItemIterator {
                 currentFieldName = null;
                 continue;
             }
-            final FileItemHeaders headers = fileUploadBase.getParsedHeaders(multi.readHeaders());
+            final FileItemHeaders headers = fileUpload.getParsedHeaders(multi.readHeaders());
             if (currentFieldName == null) {
                 // We're parsing the outer multipart
-                final String fieldName = fileUploadBase.getFieldName(headers);
+                final String fieldName = fileUpload.getFieldName(headers);
                 if (fieldName != null) {
                     final String subContentType = headers.getHeader(AbstractFileUpload.CONTENT_TYPE);
                     if (subContentType != null && subContentType.toLowerCase(Locale.ENGLISH).startsWith(AbstractFileUpload.MULTIPART_MIXED)) {
                         currentFieldName = fieldName;
                         // Multiple files associated with this field name
-                        final byte[] subBoundary = fileUploadBase.getBoundary(subContentType);
+                        final byte[] subBoundary = fileUpload.getBoundary(subContentType);
                         multi.setBoundary(subBoundary);
                         skipPreamble = true;
                         continue;
                     }
-                    final String fileName = fileUploadBase.getFileName(headers);
-                    currentItem = new FileItemStreamImpl(this, fileName, fieldName, headers.getHeader(AbstractFileUpload.CONTENT_TYPE), fileName == null,
+                    final String fileName = fileUpload.getFileName(headers);
+                    currentItem = new FileItemInputImpl(this, fileName, fieldName, headers.getHeader(AbstractFileUpload.CONTENT_TYPE), fileName == null,
                             getContentLength(headers));
                     currentItem.setHeaders(headers);
                     progressNotifier.noteItem();
@@ -169,9 +169,9 @@ class FileItemIteratorImpl implements FileItemIterator {
                     return true;
                 }
             } else {
-                final String fileName = fileUploadBase.getFileName(headers);
+                final String fileName = fileUpload.getFileName(headers);
                 if (fileName != null) {
-                    currentItem = new FileItemStreamImpl(this, fileName, currentFieldName, headers.getHeader(AbstractFileUpload.CONTENT_TYPE), false,
+                    currentItem = new FileItemInputImpl(this, fileName, currentFieldName, headers.getHeader(AbstractFileUpload.CONTENT_TYPE), false,
                             getContentLength(headers));
                     currentItem.setHeaders(headers);
                     progressNotifier.noteItem();
@@ -195,9 +195,9 @@ class FileItemIteratorImpl implements FileItemIterator {
     public List<FileItem> getFileItems() throws FileUploadException, IOException {
         final List<FileItem> items = new ArrayList<>();
         while (hasNext()) {
-            final FileItemStream fis = next();
+            final FileItemInput fis = next();
             // @formatter:off
-            final FileItem fileItem = fileUploadBase.getFileItemFactory().fileItemBuilder()
+            final FileItem fileItem = fileUpload.getFileItemFactory().fileItemBuilder()
                     .setFieldName(fis.getFieldName())
                     .setContentType(fis.getContentType())
                     .setFormField(fis.isFormField())
@@ -214,9 +214,9 @@ class FileItemIteratorImpl implements FileItemIterator {
         return fileSizeMax;
     }
 
-    public MultipartStream getMultiPartStream() throws FileUploadException, IOException {
+    public MultipartInput getMultiPartStream() throws FileUploadException, IOException {
         if (multiPartStream == null) {
-            init(fileUploadBase, ctx);
+            init(fileUpload, ctx);
         }
         return multiPartStream;
     }
@@ -227,7 +227,7 @@ class FileItemIteratorImpl implements FileItemIterator {
     }
 
     /**
-     * Tests whether another instance of {@link FileItemStream} is available.
+     * Tests whether another instance of {@link FileItemInput} is available.
      *
      * @throws FileUploadException Parsing or processing the file item failed.
      * @throws IOException         Reading the file item failed.
@@ -258,14 +258,14 @@ class FileItemIteratorImpl implements FileItemIterator {
                                  : contentLengthInt;
                                  // CHECKSTYLE:ON
         // @formatter:on
-        final InputStream input; // N.B. this is eventually closed in MultipartStream processing
+        final InputStream input; // N.B. this is eventually closed in MultipartInput processing
         if (sizeMax >= 0) {
             if (requestSize != -1 && requestSize > sizeMax) {
                 throw new FileUploadSizeException(
                         String.format("the request was rejected because its size (%s) exceeds the configured maximum (%s)", requestSize, sizeMax), sizeMax,
                         requestSize);
             }
-            // N.B. this is eventually closed in MultipartStream processing
+            // N.B. this is eventually closed in MultipartInput processing
             input = new BoundedInputStream(ctx.getInputStream(), sizeMax) {
                 @Override
                 protected void onMaxLength(final long maxLen, final long count) throws IOException {
@@ -288,9 +288,9 @@ class FileItemIteratorImpl implements FileItemIterator {
             throw new FileUploadException("the request was rejected because no multipart boundary was found");
         }
 
-        progressNotifier = new MultipartStream.ProgressNotifier(fileUploadBase.getProgressListener(), requestSize);
+        progressNotifier = new MultipartInput.ProgressNotifier(fileUploadBase.getProgressListener(), requestSize);
         try {
-            multiPartStream = MultipartStream.builder().setInputStream(input).setBoundary(multiPartBoundary).setProgressNotifier(progressNotifier).get();
+            multiPartStream = MultipartInput.builder().setInputStream(input).setBoundary(multiPartBoundary).setProgressNotifier(progressNotifier).get();
         } catch (final IllegalArgumentException e) {
             IOUtils.closeQuietly(input); // avoid possible resource leak
             throw new FileUploadContentTypeException(String.format("The boundary specified in the %s header is too long", AbstractFileUpload.CONTENT_TYPE), e);
@@ -299,15 +299,15 @@ class FileItemIteratorImpl implements FileItemIterator {
     }
 
     /**
-     * Returns the next available {@link FileItemStream}.
+     * Returns the next available {@link FileItemInput}.
      *
      * @throws java.util.NoSuchElementException No more items are available. Use {@link #hasNext()} to prevent this exception.
      * @throws FileUploadException              Parsing or processing the file item failed.
      * @throws IOException                      Reading the file item failed.
-     * @return FileItemStream instance, which provides access to the next file item.
+     * @return FileItemInput instance, which provides access to the next file item.
      */
     @Override
-    public FileItemStream next() throws FileUploadException, IOException {
+    public FileItemInput next() throws FileUploadException, IOException {
         if (eof || !itemValid && !hasNext()) {
             throw new NoSuchElementException();
         }
diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileUpload.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileUpload.java
index a8c3fd5..c00175d 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileUpload.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/FileUpload.java
@@ -73,12 +73,12 @@ public abstract class FileUpload<T> extends AbstractFileUpload {
      * Gets a file item iterator.
      *
      * @param request The servlet request to be parsed.
-     * @return An iterator to instances of {@code FileItemStream} parsed from the request, in the order that they were transmitted.
+     * @return An iterator to instances of {@code FileItemInput} parsed from the request, in the order that they were transmitted.
      * @throws FileUploadException if there are problems reading/parsing the request or storing files.
      * @throws IOException         An I/O error occurred. This may be a network error while communicating with the client or a problem while storing the
      *                             uploaded content.
      */
-    public abstract FileItemIterator getItemIterator(T request) throws FileUploadException, IOException;
+    public abstract FileItemInputIterator getItemIterator(T request) throws FileUploadException, IOException;
 
     /**
      * Parses an <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a> compliant {@code multipart/form-data} stream.
diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/MultipartStream.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/MultipartInput.java
similarity index 96%
rename from commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/MultipartStream.java
rename to commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/MultipartInput.java
index 4dda7cb..827fae3 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/MultipartStream.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/MultipartInput.java
@@ -23,7 +23,7 @@ import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
 
-import org.apache.commons.fileupload2.FileItemStream.ItemSkippedException;
+import org.apache.commons.fileupload2.FileItemInput.ItemSkippedException;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.build.AbstractOrigin;
 import org.apache.commons.io.build.AbstractStreamBuilder;
@@ -64,7 +64,7 @@ import org.apache.commons.io.output.NullOutputStream;
  *
  * <pre>
  * try {
- *     MultipartStream multipartStream = new MultipartStream(input, boundary);
+ *     MultipartInput multipartStream = new MultipartInput(input, boundary);
  *     boolean nextPart = multipartStream.skipPreamble();
  *     OutputStream output;
  *     while (nextPart) {
@@ -74,30 +74,30 @@ import org.apache.commons.io.output.NullOutputStream;
  *         multipartStream.readBodyData(output);
  *         nextPart = multipartStream.readBoundary();
  *     }
- * } catch (MultipartStream.MalformedStreamException e) {
+ * } catch (MultipartInput.MalformedStreamException e) {
  *     // the stream failed to follow required syntax
  * } catch (IOException e) {
  *     // a read or write error occurred
  * }
  * </pre>
  */
-public final class MultipartStream {
+public final class MultipartInput {
 
     /**
-     * Builds a new {@link MultipartStream} instance.
+     * Builds a new {@link MultipartInput} instance.
      * <p>
      * For example:
      * </p>
      *
      * <pre>{@code
-     * MultipartStream factory = MultipartStream.builder()
+     * MultipartInput factory = MultipartInput.builder()
      *    .setPath(path)
      *    .setBufferSize(DEFAULT_THRESHOLD)
      *    .get();
      * }
      * </pre>
      */
-    public static class Builder extends AbstractStreamBuilder<MultipartStream, Builder> {
+    public static class Builder extends AbstractStreamBuilder<MultipartInput, Builder> {
 
         /**
          * Boundary.
@@ -129,8 +129,8 @@ public final class MultipartStream {
          * @see AbstractOrigin#getReader(Charset)
          */
         @Override
-        public MultipartStream get() throws IOException {
-            return new MultipartStream(getInputStream(), boundary, getBufferSize(), progressNotifier);
+        public MultipartInput get() throws IOException {
+            return new MultipartInput(getInputStream(), boundary, getBufferSize(), progressNotifier);
         }
 
         /**
@@ -231,7 +231,7 @@ public final class MultipartStream {
 
         private void checkOpen() throws ItemSkippedException {
             if (closed) {
-                throw new FileItemStream.ItemSkippedException("checkOpen()");
+                throw new FileItemInput.ItemSkippedException("checkOpen()");
             }
         }
 
@@ -277,7 +277,7 @@ public final class MultipartStream {
          * Called for finding the separator.
          */
         private void findSeparator() {
-            pos = MultipartStream.this.findSeparator();
+            pos = MultipartInput.this.findSeparator();
             if (pos == -1) {
                 if (tail - head > keepRegion) {
                     pad = keepRegion;
@@ -642,7 +642,7 @@ public final class MultipartStream {
     private final ProgressNotifier notifier;
 
     /**
-     * Constructs a {@code MultipartStream} with a custom size buffer.
+     * Constructs a {@code MultipartInput} with a custom size buffer.
      * <p>
      * Note that the buffer must be at least big enough to contain the boundary string, plus 4 characters for CR/LF and double dash, plus at least one byte of
      * data. Too small a buffer size setting will degrade performance.
@@ -654,7 +654,7 @@ public final class MultipartStream {
      * @param notifier   The notifier, which is used for calling the progress listener, if any.
      * @throws IllegalArgumentException If the buffer size is too small.
      */
-    private MultipartStream(final InputStream input, final byte[] boundary, final int bufferSize, final ProgressNotifier notifier) {
+    private MultipartInput(final InputStream input, final byte[] boundary, final int bufferSize, final ProgressNotifier notifier) {
         if (boundary == null) {
             throw new IllegalArgumentException("boundary may not be null");
         }
@@ -662,7 +662,7 @@ public final class MultipartStream {
         // body-data tokens.
         this.boundaryLength = boundary.length + BOUNDARY_PREFIX.length;
         if (bufferSize < this.boundaryLength + 1) {
-            throw new IllegalArgumentException("The buffer size specified for the MultipartStream is too small");
+            throw new IllegalArgumentException("The buffer size specified for the MultipartInput is too small");
         }
 
         this.input = input;
@@ -782,7 +782,7 @@ public final class MultipartStream {
      * Reads {@code body-data} from the current {@code encapsulation} and writes its contents into the output {@code Stream}.
      * <p>
      * Arbitrary large amounts of data can be processed by this method using a constant size buffer. (see
-     * {@link MultipartStream#builder()}).
+     * {@link MultipartInput#builder()}).
      * </p>
      *
      * @param output The {@code Stream} to write data into. May be null, in which case this method is equivalent to {@link #discardBodyData()}.
@@ -903,8 +903,7 @@ public final class MultipartStream {
             try {
                 headers = baos.toString(headerEncoding);
             } catch (final UnsupportedEncodingException e) {
-                // Fall back to platform default if specified encoding is not
-                // supported.
+                // Fall back to platform default if specified encoding is not supported.
                 headers = baos.toString();
             }
         } else {
@@ -941,10 +940,10 @@ public final class MultipartStream {
      * Sets the character encoding to be used when reading the headers of individual parts. When not specified, or {@code null}, the platform default encoding
      * is used.
      *
-     * @param encoding The encoding used to read part headers.
+     * @param headerEncoding The encoding used to read part headers.
      */
-    public void setHeaderEncoding(final String encoding) {
-        headerEncoding = encoding;
+    public void setHeaderEncoding(final String headerEncoding) {
+        this.headerEncoding = headerEncoding;
     }
 
     /**
diff --git a/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractProgressListenerTest.java b/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractProgressListenerTest.java
index c66f470..fa24c38 100644
--- a/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractProgressListenerTest.java
+++ b/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractProgressListenerTest.java
@@ -72,11 +72,11 @@ public abstract class AbstractProgressListenerTest<F extends FileUpload<R>, R> e
         final F upload = newFileUpload();
         final ProgressListenerImpl listener = new ProgressListenerImpl(contentLength, itemCount);
         upload.setProgressListener(listener);
-        final FileItemIterator iter = upload.getItemIterator(request);
+        final FileItemInputIterator iter = upload.getItemIterator(request);
         for (int i = 0; i < itemCount; i++) {
             final int idxI = i;
-            final FileItemStream fileItemStream = iter.next();
-            try (final InputStream inputStream = fileItemStream.getInputStream()) {
+            final FileItemInput fileItemInput = iter.next();
+            try (final InputStream inputStream = fileItemInput.getInputStream()) {
                 for (int j = 0; j < 16_384 + i; j++) {
                     final int idxJ = j;
                     //
diff --git a/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractSizesTest.java b/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractSizesTest.java
index 995b4ab..fba7cdb 100644
--- a/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractSizesTest.java
+++ b/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractSizesTest.java
@@ -209,10 +209,10 @@ public abstract class AbstractSizesTest<F extends FileUpload<R>, R> extends Abst
 
         final R req = newMockHttpServletRequest(request, -1L, 10);
 
-        final FileItemIterator it = upload.getItemIterator(req);
+        final FileItemInputIterator it = upload.getItemIterator(req);
         assertTrue(it.hasNext());
 
-        final FileItemStream item = it.next();
+        final FileItemInput item = it.next();
         assertFalse(item.isFormField());
         assertEquals("file1", item.getFieldName());
         assertEquals("foo1.tab", item.getName());
@@ -230,7 +230,7 @@ public abstract class AbstractSizesTest<F extends FileUpload<R>, R> extends Abst
         assertTrue(it.hasNext());
 
         assertThrows(FileUploadException.class, () -> {
-            final FileItemStream item2 = it.next();
+            final FileItemInput item2 = it.next();
             try (final ByteArrayOutputStream baos = new ByteArrayOutputStream();
                     final InputStream stream = item2.getInputStream()) {
                 IOUtils.copy(stream, baos);
diff --git a/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractStreamingTest.java b/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractStreamingTest.java
index ffbdcd0..8e21112 100644
--- a/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractStreamingTest.java
+++ b/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/AbstractStreamingTest.java
@@ -103,7 +103,7 @@ public abstract class AbstractStreamingTest<F extends FileUpload<R>, R, C extend
         return upload.parseRequest(newServletRequestContext(request));
     }
 
-    protected FileItemIterator parseUpload(final int length, final InputStream inputStream) throws FileUploadException, IOException {
+    protected FileItemInputIterator parseUpload(final int length, final InputStream inputStream) throws FileUploadException, IOException {
         final String contentType = "multipart/form-data; boundary=---1234";
 
         final AbstractFileUpload upload = newFileUpload();
@@ -187,7 +187,7 @@ public abstract class AbstractStreamingTest<F extends FileUpload<R>, R, C extend
             parseUpload(invalidRequest);
             fail("Expected EndOfStreamException");
         } catch (final FileUploadException e) {
-            assertTrue(e.getSuppressed()[0] instanceof MultipartStream.MalformedStreamException, e.toString());
+            assertTrue(e.getSuppressed()[0] instanceof MultipartInput.MalformedStreamException, e.toString());
         }
     }
 
@@ -223,10 +223,10 @@ public abstract class AbstractStreamingTest<F extends FileUpload<R>, R, C extend
         // @formatter:on
         final byte[] reqBytes = request.getBytes(StandardCharsets.US_ASCII);
 
-        final FileItemIterator fileItemIter = parseUpload(reqBytes.length, new ByteArrayInputStream(reqBytes));
-        final FileItemStream fileItemStream = fileItemIter.next();
+        final FileItemInputIterator fileItemIter = parseUpload(reqBytes.length, new ByteArrayInputStream(reqBytes));
+        final FileItemInput fileItemInput = fileItemIter.next();
         try {
-            fileItemStream.getName();
+            fileItemInput.getName();
             fail("Expected exception");
         } catch (final InvalidPathException e) {
             assertEquals(fileName, e.getInput());
diff --git a/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java b/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java
index d850141..9aef4b3 100644
--- a/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java
+++ b/commons-fileupload2-core/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java
@@ -25,7 +25,7 @@ import java.io.InputStream;
 import org.junit.jupiter.api.Test;
 
 /**
- * Unit tests {@link MultipartStream}.
+ * Unit tests {@link MultipartInput}.
  */
 public class MultipartStreamTest {
 
@@ -38,8 +38,8 @@ public class MultipartStreamTest {
         final InputStream input = new ByteArrayInputStream(contents);
         final byte[] boundary = BOUNDARY_TEXT.getBytes();
         final int iBufSize = 1;
-        assertThrows(IllegalArgumentException.class, () -> MultipartStream.builder().setInputStream(input).setBoundary(boundary).setBufferSize(iBufSize)
-                .setProgressNotifier(new MultipartStream.ProgressNotifier(null, contents.length)).get());
+        assertThrows(IllegalArgumentException.class, () -> MultipartInput.builder().setInputStream(input).setBoundary(boundary).setBufferSize(iBufSize)
+                .setProgressNotifier(new MultipartInput.ProgressNotifier(null, contents.length)).get());
     }
 
     @Test
@@ -48,9 +48,9 @@ public class MultipartStreamTest {
         final byte[] contents = strData.getBytes();
         final InputStream input = new ByteArrayInputStream(contents);
         final byte[] boundary = BOUNDARY_TEXT.getBytes();
-        final int iBufSize = boundary.length + MultipartStream.BOUNDARY_PREFIX.length + 1;
-        final MultipartStream ms = MultipartStream.builder().setInputStream(input).setBoundary(boundary).setBufferSize(iBufSize)
-                .setProgressNotifier(new MultipartStream.ProgressNotifier(null, contents.length)).get();
+        final int iBufSize = boundary.length + MultipartInput.BOUNDARY_PREFIX.length + 1;
+        final MultipartInput ms = MultipartInput.builder().setInputStream(input).setBoundary(boundary).setBufferSize(iBufSize)
+                .setProgressNotifier(new MultipartInput.ProgressNotifier(null, contents.length)).get();
         assertNotNull(ms);
     }
 
@@ -60,8 +60,8 @@ public class MultipartStreamTest {
         final byte[] contents = strData.getBytes();
         final InputStream input = new ByteArrayInputStream(contents);
         final byte[] boundary = BOUNDARY_TEXT.getBytes();
-        final MultipartStream ms = MultipartStream.builder().setInputStream(input).setBoundary(boundary)
-                .setProgressNotifier(new MultipartStream.ProgressNotifier(null, contents.length)).get();
+        final MultipartInput ms = MultipartInput.builder().setInputStream(input).setBoundary(boundary)
+                .setProgressNotifier(new MultipartInput.ProgressNotifier(null, contents.length)).get();
         assertNotNull(ms);
     }
 
diff --git a/commons-fileupload2-jakarta/src/main/java/org/apache/commons/fileupload2/jakarta/JakartaServletFileUpload.java b/commons-fileupload2-jakarta/src/main/java/org/apache/commons/fileupload2/jakarta/JakartaServletFileUpload.java
index 1f62ac8..6a3e36c 100644
--- a/commons-fileupload2-jakarta/src/main/java/org/apache/commons/fileupload2/jakarta/JakartaServletFileUpload.java
+++ b/commons-fileupload2-jakarta/src/main/java/org/apache/commons/fileupload2/jakarta/JakartaServletFileUpload.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import org.apache.commons.fileupload2.AbstractFileUpload;
 import org.apache.commons.fileupload2.FileItem;
 import org.apache.commons.fileupload2.FileItemFactory;
-import org.apache.commons.fileupload2.FileItemIterator;
+import org.apache.commons.fileupload2.FileItemInputIterator;
 import org.apache.commons.fileupload2.FileUpload;
 import org.apache.commons.fileupload2.FileUploadException;
 
@@ -81,13 +81,13 @@ public class JakartaServletFileUpload extends FileUpload<HttpServletRequest> {
      * Gets an <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a> compliant {@code multipart/form-data} file item iterator.
      *
      * @param request The servlet request to be parsed.
-     * @return An iterator to instances of {@code FileItemStream} parsed from the request, in the order that they were transmitted.
+     * @return An iterator to instances of {@code FileItemInput} parsed from the request, in the order that they were transmitted.
      * @throws FileUploadException if there are problems reading/parsing the request or storing files.
      * @throws IOException         An I/O error occurred. This may be a network error while communicating with the client or a problem while storing the
      *                             uploaded content.
      */
     @Override
-    public FileItemIterator getItemIterator(final HttpServletRequest request) throws FileUploadException, IOException {
+    public FileItemInputIterator getItemIterator(final HttpServletRequest request) throws FileUploadException, IOException {
         return super.getItemIterator(new JakartaServletRequestContext(request));
     }
 
diff --git a/commons-fileupload2-javax/src/main/java/org/apache/commons/fileupload2/javax/JavaxServletFileUpload.java b/commons-fileupload2-javax/src/main/java/org/apache/commons/fileupload2/javax/JavaxServletFileUpload.java
index 389ec0b..d0d478b 100644
--- a/commons-fileupload2-javax/src/main/java/org/apache/commons/fileupload2/javax/JavaxServletFileUpload.java
+++ b/commons-fileupload2-javax/src/main/java/org/apache/commons/fileupload2/javax/JavaxServletFileUpload.java
@@ -25,7 +25,7 @@ import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.fileupload2.AbstractFileUpload;
 import org.apache.commons.fileupload2.FileItem;
 import org.apache.commons.fileupload2.FileItemFactory;
-import org.apache.commons.fileupload2.FileItemIterator;
+import org.apache.commons.fileupload2.FileItemInputIterator;
 import org.apache.commons.fileupload2.FileUpload;
 import org.apache.commons.fileupload2.FileUploadException;
 
@@ -81,13 +81,13 @@ public class JavaxServletFileUpload extends FileUpload<HttpServletRequest> {
      * Gets an <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a> compliant {@code multipart/form-data} file item iterator.
      *
      * @param request The servlet request to be parsed.
-     * @return An iterator to instances of {@code FileItemStream} parsed from the request, in the order that they were transmitted.
+     * @return An iterator to instances of {@code FileItemInput} parsed from the request, in the order that they were transmitted.
      * @throws FileUploadException if there are problems reading/parsing the request or storing files.
      * @throws IOException         An I/O error occurred. This may be a network error while communicating with the client or a problem while storing the
      *                             uploaded content.
      */
     @Override
-    public FileItemIterator getItemIterator(final HttpServletRequest request) throws FileUploadException, IOException {
+    public FileItemInputIterator getItemIterator(final HttpServletRequest request) throws FileUploadException, IOException {
         return super.getItemIterator(new JavaxServletRequestContext(request));
     }
 
diff --git a/commons-fileupload2-portlet/src/main/java/org/apache/commons/fileupload2/portlet/JavaxPortletFileUpload.java b/commons-fileupload2-portlet/src/main/java/org/apache/commons/fileupload2/portlet/JavaxPortletFileUpload.java
index 0c1053c..7cab2c5 100644
--- a/commons-fileupload2-portlet/src/main/java/org/apache/commons/fileupload2/portlet/JavaxPortletFileUpload.java
+++ b/commons-fileupload2-portlet/src/main/java/org/apache/commons/fileupload2/portlet/JavaxPortletFileUpload.java
@@ -25,7 +25,7 @@ import javax.portlet.ActionRequest;
 import org.apache.commons.fileupload2.AbstractFileUpload;
 import org.apache.commons.fileupload2.FileItem;
 import org.apache.commons.fileupload2.FileItemFactory;
-import org.apache.commons.fileupload2.FileItemIterator;
+import org.apache.commons.fileupload2.FileItemInputIterator;
 import org.apache.commons.fileupload2.FileUpload;
 import org.apache.commons.fileupload2.FileUploadException;
 import org.apache.commons.fileupload2.javax.JavaxServletFileUpload;
@@ -76,13 +76,13 @@ public class JavaxPortletFileUpload extends FileUpload<ActionRequest> {
      * Gets an <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a> compliant {@code multipart/form-data} file item iterator.
      *
      * @param request The portlet request to be parsed.
-     * @return An iterator to instances of {@code FileItemStream} parsed from the request, in the order that they were transmitted.
+     * @return An iterator to instances of {@code FileItemInput} parsed from the request, in the order that they were transmitted.
      * @throws FileUploadException if there are problems reading/parsing the request or storing files.
      * @throws IOException         An I/O error occurred. This may be a network error while communicating with the client or a problem while storing the
      *                             uploaded content.
      */
     @Override
-    public FileItemIterator getItemIterator(final ActionRequest request) throws FileUploadException, IOException {
+    public FileItemInputIterator getItemIterator(final ActionRequest request) throws FileUploadException, IOException {
         return super.getItemIterator(new PortletRequestContext(request));
     }