From b175b60fd61d982688a3b8e03405710faffd930b Mon Sep 17 00:00:00 2001 From: brianandle <106392082+brianandle@users.noreply.github.com> Date: Sat, 21 Feb 2026 11:53:54 -0800 Subject: [PATCH] WW-5616 - JakartaStreamMultiPartRequest warns on file delete if the file doesnt exist * 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+ --- .../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 542469ead3..4e552637ab 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 void cleanUp() { 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 3d0cdb8d7e..b934b3eaf0 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 void cleanUp() { 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);