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