WW-4456 - Got NPE when File Upload Limitation exceeds in portal env. Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/bc8d3746 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/bc8d3746 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/bc8d3746
Branch: refs/heads/master Commit: bc8d37464756bf821acae003c6a140af6dcbaf09 Parents: c167d6c Author: Victor Sosa <victorns...@gmail.com> Authored: Tue Jan 19 08:54:15 2016 -0400 Committer: Victor Sosa <victorns...@gmail.com> Committed: Tue Jan 19 08:54:15 2016 -0400 ---------------------------------------------------------------------- .../dispatcher/multipart/JakartaMultiPartRequest.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts/blob/bc8d3746/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java ---------------------------------------------------------------------- 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 e9ac67f..643d73d 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 @@ -83,9 +83,17 @@ public class JakartaMultiPartRequest implements MultiPartRequest { try { setLocale(request); processUpload(request, saveDir); - } catch (FileUploadBase.SizeLimitExceededException e) { + } catch (FileUploadException e) { LOG.warn("Request exceeded size limit!", e); - String errorMessage = buildErrorMessage(e, new Object[]{e.getPermittedSize(), e.getActualSize()}); + String errorMessage = null; + + if(e instanceof FileUploadBase.SizeLimitExceededException) { + FileUploadBase.SizeLimitExceededException ex = (FileUploadBase.SizeLimitExceededException) e; + errorMessage = buildErrorMessage(e, new Object[]{ex.getPermittedSize(), ex.getActualSize()}); + } else { + errorMessage = buildErrorMessage(e, new Object[]{}); + } + if (!errors.contains(errorMessage)) { errors.add(errorMessage); }