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 ba9522b9 Javadoc
ba9522b9 is described below

commit ba9522b9bc5adcd8ec43156d82902b1ad0b3902f
Author: Gary Gregory <[email protected]>
AuthorDate: Sun Feb 8 10:10:14 2026 -0500

    Javadoc
---
 .../fileupload/disk/DiskFileItemFactory.java       | 111 ++++++++-------------
 1 file changed, 43 insertions(+), 68 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/fileupload/disk/DiskFileItemFactory.java 
b/src/main/java/org/apache/commons/fileupload/disk/DiskFileItemFactory.java
index 31cb64cb..6d3c1021 100644
--- a/src/main/java/org/apache/commons/fileupload/disk/DiskFileItemFactory.java
+++ b/src/main/java/org/apache/commons/fileupload/disk/DiskFileItemFactory.java
@@ -14,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.commons.fileupload.disk;
 
 import java.io.File;
@@ -23,47 +24,32 @@ import org.apache.commons.fileupload.FileItemFactory;
 import org.apache.commons.io.FileCleaningTracker;
 
 /**
- * <p>The default {@link org.apache.commons.fileupload.FileItemFactory}
- * implementation. This implementation creates
- * {@link org.apache.commons.fileupload.FileItem} instances which keep their
- * content either in memory, for smaller items, or in a temporary file on disk,
- * for larger items. The size threshold, above which content will be stored on
- * disk, is configurable, as is the directory in which temporary files will be
- * created.</p>
- *
- * <p>If not otherwise configured, the default configuration values are as
- * follows:</p>
+ * <p>
+ * The default {@link org.apache.commons.fileupload.FileItemFactory} 
implementation. This implementation creates {@link 
org.apache.commons.fileupload.FileItem}
+ * instances which keep their content either in memory, for smaller items, or 
in a temporary file on disk, for larger items. The size threshold, above which
+ * content will be stored on disk, is configurable, as is the directory in 
which temporary files will be created.
+ * </p>
+ * <p>
+ * If not otherwise configured, the default configuration values are as 
follows:
+ * </p>
  * <ul>
- *   <li>Size threshold is 10KB.</li>
- *   <li>Repository is the system default temp directory, as returned by
- *       {@code System.getProperty("java.io.tmpdir")}.</li>
+ * <li>Size threshold is 10KB.</li>
+ * <li>Repository is the system default temp directory, as returned by {@code 
System.getProperty("java.io.tmpdir")}.</li>
  * </ul>
  * <p>
- * <strong>NOTE</strong>: Files are created in the system default temp 
directory with
- * predictable names. This means that a local attacker with write access to 
that
- * directory can perform a TOUTOC attack to replace any uploaded file with a
- * file of the attackers choice. The implications of this will depend on how 
the
- * uploaded file is used but could be significant. When using this
- * implementation in an environment with local, untrusted users,
- * {@link #setRepository(File)} MUST be used to configure a repository location
- * that is not publicly writable. In a Servlet container the location 
identified
- * by the ServletContext attribute {@code javax.servlet.context.tempdir}
- * may be used.
+ * <strong>NOTE</strong>: Files are created in the system default temp 
directory with predictable names. This means that a local attacker with write 
access to
+ * that directory can perform a TOUTOC attack to replace any uploaded file 
with a file of the attackers choice. The implications of this will depend on 
how the
+ * uploaded file is used but could be significant. When using this 
implementation in an environment with local, untrusted users, {@link 
#setRepository(File)}
+ * MUST be used to configure a repository location that is not publicly 
writable. In a Servlet container the location identified by the ServletContext 
attribute
+ * {@code javax.servlet.context.tempdir} may be used.
+ * </p>
+ * <p>
+ * Temporary files, which are created for file items, should be deleted later 
on. The best way to do this is using a {@link FileCleaningTracker}, which you 
can
+ * set on the {@link DiskFileItemFactory}. However, if you do use such a 
tracker, then you must consider the following: Temporary files are automatically
+ * deleted as soon as they are no longer needed. (More precisely, when the 
corresponding instance of {@link java.io.File} is garbage collected.) This is 
done by
+ * the so-called reaper thread, which is started and stopped automatically by 
the {@link FileCleaningTracker} when there are files to be tracked. It might 
make
+ * sense to terminate that thread, for example, if your web application ends. 
See the section on "Resource cleanup" in the users guide of commons-fileupload.
  * </p>
- *
- * <p>Temporary files, which are created for file items, should be
- * deleted later on. The best way to do this is using a
- * {@link FileCleaningTracker}, which you can set on the
- * {@link DiskFileItemFactory}. However, if you do use such a tracker,
- * then you must consider the following: Temporary files are automatically
- * deleted as soon as they are no longer needed. (More precisely, when the
- * corresponding instance of {@link java.io.File} is garbage collected.)
- * This is done by the so-called reaper thread, which is started and stopped
- * automatically by the {@link FileCleaningTracker} when there are files to be
- * tracked.
- * It might make sense to terminate that thread, for example, if
- * your web application ends. See the section on "Resource cleanup"
- * in the users guide of commons-fileupload.</p>
  *
  * @since FileUpload 1.1
  */
@@ -85,21 +71,22 @@ public class DiskFileItemFactory implements FileItemFactory 
{
     private int sizeThreshold = DEFAULT_SIZE_THRESHOLD;
 
     /**
-     * <p>The instance of {@link FileCleaningTracker}, which is responsible
-     * for deleting temporary files.</p>
-     * <p>May be null, if tracking files is not required.</p>
+     * <p>
+     * The instance of {@link FileCleaningTracker}, which is responsible for 
deleting temporary files.
+     * </p>
+     * <p>
+     * May be null, if tracking files is not required.
+     * </p>
      */
     private FileCleaningTracker fileCleaningTracker;
 
     /**
-     * Default content charset to be used when no explicit charset
-     * parameter is provided by the sender.
+     * Default content charset to be used when no explicit charset parameter 
is provided by the sender.
      */
     private String defaultCharset = DiskFileItem.DEFAULT_CHARSET;
 
     /**
-     * Constructs an unconfigured instance of this class. The resulting factory
-     * may be configured by calling the appropriate setter methods.
+     * Constructs an unconfigured instance of this class. The resulting 
factory may be configured by calling the appropriate setter methods.
      */
     public DiskFileItemFactory() {
         this(DEFAULT_SIZE_THRESHOLD, null);
@@ -137,41 +124,35 @@ public class DiskFileItemFactory implements 
FileItemFactory {
     }
 
     /**
-     * Gets the default charset for use when no explicit charset
-     * parameter is provided by the sender.
+     * Gets the default charset for use when no explicit charset parameter is 
provided by the sender.
      *
-     * @return the default charset
+     * @return the default charset.
      */
     public String getDefaultCharset() {
         return defaultCharset;
     }
 
     /**
-     * Gets the tracker, which is responsible for deleting temporary
-     * files.
+     * Gets the tracker, which is responsible for deleting temporary files.
      *
-     * @return An instance of {@link FileCleaningTracker}, or null
-     *   (default), if temporary files aren't tracked.
+     * @return An instance of {@link FileCleaningTracker}, or null (default), 
if temporary files aren't tracked.
      */
     public FileCleaningTracker getFileCleaningTracker() {
         return fileCleaningTracker;
     }
 
     /**
-     * Gets the directory used to temporarily store files that are larger
-     * than the configured size threshold.
+     * Gets the directory used to temporarily store files that are larger than 
the configured size threshold.
      *
      * @return The directory in which temporary files will be located.
      * @see #setRepository(java.io.File)
-     *
      */
     public File getRepository() {
         return repository;
     }
 
     /**
-     * Gets the size threshold beyond which files are written directly to
-     * disk. The default value is 10240 bytes.
+     * Gets the size threshold beyond which files are written directly to 
disk. The default value is 10240 bytes.
      *
      * @return The size threshold, in bytes.
      * @see #setSizeThreshold(int)
@@ -181,34 +162,29 @@ public class DiskFileItemFactory implements 
FileItemFactory {
     }
 
     /**
-     * Sets the default charset for use when no explicit charset
-     * parameter is provided by the sender.
+     * Sets the default charset for use when no explicit charset parameter is 
provided by the sender.
      *
-     * @param charset the default charset
+     * @param charset the default charset.
      */
     public void setDefaultCharset(final String charset) {
         this.defaultCharset = charset;
     }
 
     /**
-     * Sets the tracker, which is responsible for deleting temporary
-     * files.
+     * Sets the tracker, which is responsible for deleting temporary files.
      *
-     * @param fileCleaningTracker An instance of {@link FileCleaningTracker},
-     *   which will from now on track the created files, or null
-     *   (default), to disable tracking.
+     * @param fileCleaningTracker An instance of {@link FileCleaningTracker}, 
which will from now on track the created files, or null (default), to disable
+     *                            tracking.
      */
     public void setFileCleaningTracker(final FileCleaningTracker 
fileCleaningTracker) {
         this.fileCleaningTracker = fileCleaningTracker;
     }
 
     /**
-     * Sets the directory used to temporarily store files that are larger
-     * than the configured size threshold.
+     * Sets the directory used to temporarily store files that are larger than 
the configured size threshold.
      *
      * @param repository The directory in which temporary files will be 
located.
      * @see #getRepository()
-     *
      */
     public void setRepository(final File repository) {
         this.repository = repository;
@@ -219,7 +195,6 @@ public class DiskFileItemFactory implements FileItemFactory 
{
      *
      * @param sizeThreshold The size threshold, in bytes.
      * @see #getSizeThreshold()
-     *
      */
     public void setSizeThreshold(final int sizeThreshold) {
         this.sizeThreshold = sizeThreshold;

Reply via email to