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

lukaszlenart pushed a commit to branch release/struts-6-8-x
in repository https://gitbox.apache.org/repos/asf/struts.git


The following commit(s) were added to refs/heads/release/struts-6-8-x by this 
push:
     new d4a549672 WW-5616 - JakartaStreamMultiPartRequest warns on file delete 
if the file doesnt exist (#1591)
d4a549672 is described below

commit d4a549672f1c3e5c0ac51acc08e941457439b7d1
Author: brianandle <[email protected]>
AuthorDate: Sat Feb 21 23:40:15 2026 -0800

    WW-5616 - JakartaStreamMultiPartRequest warns on file delete if the file 
doesnt exist (#1591)
    
    * Pull aspects into alignment with main/7.x+ AbstractMultiPartRequest.java
    * Update JakartaMultiPartRequest and JakartaStreamMultiPartRequest to use 
isFile()
    * Update cleanup text to mirror main/7.x+
---
 .../dispatcher/multipart/JakartaMultiPartRequest.java      | 12 ++++++++----
 .../multipart/JakartaStreamMultiPartRequest.java           | 14 ++++++++++----
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
index 542469ead..4e552637a 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
@@ -373,10 +373,14 @@ public class JakartaMultiPartRequest extends 
AbstractMultiPartRequest {
                     if (item instanceof DiskFileItem) {
                         DiskFileItem diskItem = (DiskFileItem) item;
                         File storeLocation = diskItem.getStoreLocation();
-                        if (storeLocation != null && storeLocation.exists()) {
-                            LOG.debug("Deleting temporary file: [{}]", 
storeLocation.getName());
-                            if (!storeLocation.delete()) {
-                                LOG.warn("Unable to delete temporary file: 
[{}]", storeLocation.getName());
+                        if (storeLocation != null) {
+                            if(storeLocation.isFile()) {
+                                LOG.debug("Deleting file: {}", 
storeLocation.getName());
+                                if (!storeLocation.delete()) {
+                                    LOG.warn("There was a problem attempting 
to delete file: {}", storeLocation.getName());
+                                }
+                            } else {
+                                LOG.debug("File: {} already deleted", 
storeLocation.getName());
                             }
                         }
                     }
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
index 3d0cdb8d7..b934b3eaf 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
@@ -79,10 +79,16 @@ public class JakartaStreamMultiPartRequest extends 
AbstractMultiPartRequest {
                 try {
                     // catch any exceptions during cleanup to ensure all files 
are deleted.
                     File file = fileInfo.getFile();
-                    LOG.debug("Deleting file '{}'.", file.getName());
-                    if (!file.delete()) {
-                        LOG.warn("There was a problem attempting to delete 
file [{}].",
-                            file.getName());
+                    if(file != null) {
+                        if(file.isFile()) {
+                            LOG.debug("Deleting file: {}", file.getName());
+                            if (!file.delete()) {
+                                LOG.warn("There was a problem attempting to 
delete file: {}",
+                                    file.getName());
+                            }
+                        } else {
+                            LOG.debug("File: {} already deleted", 
file.getName());
+                        }
                     }
                 } catch (Exception e) {
                     LOG.warn("Error during cleanup of file item: [{}]", 
normalizeSpace(fileInfo.getOriginalName()), e);

Reply via email to