From cc0e12720c0ab138e60df5c3d509fdc020543928 Mon Sep 17 00:00:00 2001 From: Vichym Date: Tue, 17 Jun 2025 16:31:10 -0700 Subject: [PATCH 1/6] fix build failure. --- .../proxy/internal/servlet/AwsHttpServletRequest.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java index bde53961f..c52a17d07 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java @@ -517,7 +517,10 @@ protected Map> getMultipartFormParametersMap() { newPart.setContentType(item.getContentType()); newPart.setSize(item.getSize()); item.getHeaders().getHeaderNames().forEachRemaining(h -> { - newPart.addHeader(h, item.getHeaders().getHeader(h)); + String headerValue = item.getHeaders().getHeader(h); + if (headerValue != null) { + newPart.addHeader(h, headerValue); + } }); addPart(multipartFormParameters, item.getFieldName(), newPart); From 29072d3d138ce001a2b00a533b670b277d0a23d4 Mon Sep 17 00:00:00 2001 From: Vichym Date: Tue, 17 Jun 2025 16:01:32 -0700 Subject: [PATCH 2/6] update commons-fileupload2-jakarta-servlet6 to 2.0.0-M4 This is to update dependency on commons-fileupload2-core from 2.0.0-M2 to 2.0.0-M4 --- aws-serverless-java-container-core/pom.xml | 2 +- .../servlet/AwsHttpServletRequest.java | 29 ++++++++++--------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index fa34e8d88..9fe565eea 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -54,7 +54,7 @@ org.apache.commons commons-fileupload2-jakarta-servlet6 - 2.0.0-M2 + 2.0.0-M4 diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java index c52a17d07..1807fcd37 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java @@ -493,7 +493,7 @@ public Part getPart(String s) } @SuppressFBWarnings({"FILE_UPLOAD_FILENAME", "WEAK_FILENAMEUTILS"}) - protected Map> getMultipartFormParametersMap() { + protected Map> getMultipartFormParametersMap() throws RuntimeException { if (multipartFormParameters != null) { return multipartFormParameters; } @@ -511,19 +511,20 @@ protected Map> getMultipartFormParametersMap() { List items = upload.parseRequest(this); for (FileItem item : items) { String fileName = FilenameUtils.getName(item.getName()); - AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get()); - newPart.setName(item.getFieldName()); - newPart.setSubmittedFileName(fileName); - newPart.setContentType(item.getContentType()); - newPart.setSize(item.getSize()); - item.getHeaders().getHeaderNames().forEachRemaining(h -> { - String headerValue = item.getHeaders().getHeader(h); - if (headerValue != null) { - newPart.addHeader(h, headerValue); - } - }); - - addPart(multipartFormParameters, item.getFieldName(), newPart); + try { + AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get()); + newPart.setName(item.getFieldName()); + newPart.setSubmittedFileName(fileName); + newPart.setContentType(item.getContentType()); + newPart.setSize(item.getSize()); + item.getHeaders().getHeaderNames().forEachRemaining(h -> { + newPart.addHeader(h, item.getHeaders().getHeader(h)); + }); + addPart(multipartFormParameters, item.getFieldName(), newPart); + } catch (Exception e) { + log.error("Encounter issue adding form multipart", e); + throw new RuntimeException(e); + } } } catch (FileUploadException e) { Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); From db4aaa070951c8968fe37d677b16cfd2b606c597 Mon Sep 17 00:00:00 2001 From: vicheey <181402101+vicheey@users.noreply.github.com> Date: Tue, 17 Jun 2025 17:48:49 -0700 Subject: [PATCH 3/6] Update aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java --- .../proxy/internal/servlet/AwsHttpServletRequest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java index 1807fcd37..68a339bd5 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java @@ -521,7 +521,7 @@ protected Map> getMultipartFormParametersMap() throws Runtime newPart.addHeader(h, item.getHeaders().getHeader(h)); }); addPart(multipartFormParameters, item.getFieldName(), newPart); - } catch (Exception e) { + } catch (IOException e) { log.error("Encounter issue adding form multipart", e); throw new RuntimeException(e); } From 8b7e7ff9a0f4278874658781199dcbc2debb71c1 Mon Sep 17 00:00:00 2001 From: Vichym Date: Wed, 18 Jun 2025 06:52:31 -0700 Subject: [PATCH 4/6] update to rethrow IOException --- .../proxy/internal/servlet/AwsHttpServletRequest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java index 68a339bd5..43e03f60b 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java @@ -493,7 +493,7 @@ public Part getPart(String s) } @SuppressFBWarnings({"FILE_UPLOAD_FILENAME", "WEAK_FILENAMEUTILS"}) - protected Map> getMultipartFormParametersMap() throws RuntimeException { + protected Map> getMultipartFormParametersMap() throws IOException { if (multipartFormParameters != null) { return multipartFormParameters; } @@ -523,7 +523,7 @@ protected Map> getMultipartFormParametersMap() throws Runtime addPart(multipartFormParameters, item.getFieldName(), newPart); } catch (IOException e) { log.error("Encounter issue adding form multipart", e); - throw new RuntimeException(e); + throw new IOException(e); } } } catch (FileUploadException e) { From d7d4b9dd28a0759a5f194779bb74e9f32f41cc64 Mon Sep 17 00:00:00 2001 From: Vichym Date: Wed, 18 Jun 2025 09:26:39 -0700 Subject: [PATCH 5/6] remove try-catch block --- .../proxy/internal/servlet/AwsHttpServletRequest.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java index 43e03f60b..10fd6fd10 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java @@ -511,7 +511,6 @@ protected Map> getMultipartFormParametersMap() throws IOExcep List items = upload.parseRequest(this); for (FileItem item : items) { String fileName = FilenameUtils.getName(item.getName()); - try { AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get()); newPart.setName(item.getFieldName()); newPart.setSubmittedFileName(fileName); @@ -521,10 +520,6 @@ protected Map> getMultipartFormParametersMap() throws IOExcep newPart.addHeader(h, item.getHeaders().getHeader(h)); }); addPart(multipartFormParameters, item.getFieldName(), newPart); - } catch (IOException e) { - log.error("Encounter issue adding form multipart", e); - throw new IOException(e); - } } } catch (FileUploadException e) { Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); From 1011155dd43a7709204e872df6298255b14a0fdf Mon Sep 17 00:00:00 2001 From: Vichym Date: Wed, 18 Jun 2025 12:57:43 -0700 Subject: [PATCH 6/6] reset white space. --- .../servlet/AwsHttpServletRequest.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java index 10fd6fd10..0029ee2d4 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java @@ -511,15 +511,15 @@ protected Map> getMultipartFormParametersMap() throws IOExcep List items = upload.parseRequest(this); for (FileItem item : items) { String fileName = FilenameUtils.getName(item.getName()); - AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get()); - newPart.setName(item.getFieldName()); - newPart.setSubmittedFileName(fileName); - newPart.setContentType(item.getContentType()); - newPart.setSize(item.getSize()); - item.getHeaders().getHeaderNames().forEachRemaining(h -> { - newPart.addHeader(h, item.getHeaders().getHeader(h)); - }); - addPart(multipartFormParameters, item.getFieldName(), newPart); + AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get()); + newPart.setName(item.getFieldName()); + newPart.setSubmittedFileName(fileName); + newPart.setContentType(item.getContentType()); + newPart.setSize(item.getSize()); + item.getHeaders().getHeaderNames().forEachRemaining(h -> { + newPart.addHeader(h, item.getHeaders().getHeader(h)); + }); + addPart(multipartFormParameters, item.getFieldName(), newPart); } } catch (FileUploadException e) { Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS");