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/08 20:55:53 UTC

[commons-fileupload] branch master updated: Add and use ProgressListener.NOP

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 3fbc96a  Add and use ProgressListener.NOP
3fbc96a is described below

commit 3fbc96a6c860efeeabab465c49144b99089ac1db
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Jun 8 16:55:48 2023 -0400

    Add and use ProgressListener.NOP
---
 .../org/apache/commons/fileupload2/AbstractFileUpload.java     | 10 +++++-----
 .../java/org/apache/commons/fileupload2/MultipartStream.java   |  6 ++----
 .../java/org/apache/commons/fileupload2/ProgressListener.java  |  8 ++++++++
 3 files changed, 15 insertions(+), 9 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 6d23ea2..fae053b 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
@@ -123,7 +123,7 @@ public abstract class AbstractFileUpload {
     /**
      * The progress listener.
      */
-    private ProgressListener listener;
+    private ProgressListener progressListener = ProgressListener.NOP;
 
     /**
      * Gets the boundary from the {@code Content-type} header.
@@ -316,7 +316,7 @@ public abstract class AbstractFileUpload {
      * @return The progress listener, if any, or null.
      */
     public ProgressListener getProgressListener() {
-        return listener;
+        return progressListener;
     }
 
     /**
@@ -490,10 +490,10 @@ public abstract class AbstractFileUpload {
     /**
      * Sets the progress listener.
      *
-     * @param listener The progress listener, if any. Defaults to null.
+     * @param progressListener The progress listener, if any. Defaults to null.
      */
-    public void setProgressListener(final ProgressListener listener) {
-        this.listener = listener;
+    public void setProgressListener(final ProgressListener progressListener) {
+        this.progressListener = progressListener != null ? progressListener : ProgressListener.NOP;
     }
 
     /**
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/MultipartStream.java
index 8640e82..8faa754 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/MultipartStream.java
@@ -401,7 +401,7 @@ public class MultipartStream {
          * @param contentLength    The expected content length.
          */
         public ProgressNotifier(final ProgressListener progressListener, final long contentLength) {
-            this.progressListener = progressListener;
+            this.progressListener = progressListener != null ? progressListener : ProgressListener.NOP;
             this.contentLength = contentLength;
         }
 
@@ -430,9 +430,7 @@ public class MultipartStream {
          * Called for notifying the listener.
          */
         private void notifyListener() {
-            if (progressListener != null) {
-                progressListener.update(bytesRead, contentLength, items);
-            }
+            progressListener.update(bytesRead, contentLength, items);
         }
 
     }
diff --git a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/ProgressListener.java b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/ProgressListener.java
index d426871..07fee61 100644
--- a/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/ProgressListener.java
+++ b/commons-fileupload2-core/src/main/java/org/apache/commons/fileupload2/ProgressListener.java
@@ -19,8 +19,16 @@ package org.apache.commons.fileupload2;
 /**
  * Receives progress information. May be used to display a progress bar.
  */
+@FunctionalInterface
 public interface ProgressListener {
 
+    /**
+     * Nop implementation.
+     */
+    ProgressListener NOP = (bytesRead, contentLength, items) -> {
+        // nop
+    };
+
     /**
      * Updates the listeners status information.
      *