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);